~ubuntu-branches/ubuntu/oneiric/samba/oneiric-security

« back to all changes in this revision

Viewing changes to .pc/CVE-2012-1182-2.patch/librpc/gen_ndr/ndr_netlogon.c

  • Committer: Package Import Robot
  • Author(s): Tyler Hicks
  • Date: 2012-04-12 05:28:44 UTC
  • mfrom: (147.1.1 oneiric-proposed)
  • Revision ID: package-import@ubuntu.com-20120412052844-348q6l4dcb303sdu
Tags: 2:3.5.11~dfsg-1ubuntu2.2
* SECURITY UPDATE: Unauthenticated remote code execution via
  RPC calls (LP: #978458)
  - debian/patches/CVE-2012-1182-1.patch: Fix PIDL compiler to generate code
    that uses the same value for array allocation and array length checks.
    Based on upstream patch.
  - debian/patches/CVE-2012-1182-2.patch: Regenerate PIDL generated files with
    the patched PIDL compiler
  - CVE-2012-1182

Show diffs side-by-side

added added

removed removed

Lines of Context:
 
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_misc.h"
 
7
#include "librpc/gen_ndr/ndr_lsa.h"
 
8
#include "librpc/gen_ndr/ndr_samr.h"
 
9
#include "librpc/gen_ndr/ndr_security.h"
 
10
#include "librpc/gen_ndr/ndr_nbt.h"
 
11
static enum ndr_err_code ndr_push_netr_UasInfo(struct ndr_push *ndr, int ndr_flags, const struct netr_UasInfo *r)
 
12
{
 
13
        if (ndr_flags & NDR_SCALARS) {
 
14
                NDR_CHECK(ndr_push_align(ndr, 5));
 
15
                NDR_CHECK(ndr_push_unique_ptr(ndr, r->account_name));
 
16
                NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->priv));
 
17
                NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->auth_flags));
 
18
                NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->logon_count));
 
19
                NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->bad_pw_count));
 
20
                NDR_CHECK(ndr_push_time_t(ndr, NDR_SCALARS, r->last_logon));
 
21
                NDR_CHECK(ndr_push_time_t(ndr, NDR_SCALARS, r->last_logoff));
 
22
                NDR_CHECK(ndr_push_time_t(ndr, NDR_SCALARS, r->logoff_time));
 
23
                NDR_CHECK(ndr_push_time_t(ndr, NDR_SCALARS, r->kickoff_time));
 
24
                NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->password_age));
 
25
                NDR_CHECK(ndr_push_time_t(ndr, NDR_SCALARS, r->pw_can_change));
 
26
                NDR_CHECK(ndr_push_time_t(ndr, NDR_SCALARS, r->pw_must_change));
 
27
                NDR_CHECK(ndr_push_unique_ptr(ndr, r->computer));
 
28
                NDR_CHECK(ndr_push_unique_ptr(ndr, r->domain));
 
29
                NDR_CHECK(ndr_push_unique_ptr(ndr, r->script_path));
 
30
                NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->unknown));
 
31
                NDR_CHECK(ndr_push_trailer_align(ndr, 5));
 
32
        }
 
33
        if (ndr_flags & NDR_BUFFERS) {
 
34
                if (r->account_name) {
 
35
                        NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->account_name, CH_UTF16)));
 
36
                        NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, 0));
 
37
                        NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->account_name, CH_UTF16)));
 
38
                        NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->account_name, ndr_charset_length(r->account_name, CH_UTF16), sizeof(uint16_t), CH_UTF16));
 
39
                }
 
40
                if (r->computer) {
 
41
                        NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->computer, CH_UTF16)));
 
42
                        NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, 0));
 
43
                        NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->computer, CH_UTF16)));
 
44
                        NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->computer, ndr_charset_length(r->computer, CH_UTF16), sizeof(uint16_t), CH_UTF16));
 
45
                }
 
46
                if (r->domain) {
 
47
                        NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->domain, CH_UTF16)));
 
48
                        NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, 0));
 
49
                        NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->domain, CH_UTF16)));
 
50
                        NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->domain, ndr_charset_length(r->domain, CH_UTF16), sizeof(uint16_t), CH_UTF16));
 
51
                }
 
52
                if (r->script_path) {
 
53
                        NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->script_path, CH_UTF16)));
 
54
                        NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, 0));
 
55
                        NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->script_path, CH_UTF16)));
 
56
                        NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->script_path, ndr_charset_length(r->script_path, CH_UTF16), sizeof(uint16_t), CH_UTF16));
 
57
                }
 
58
        }
 
59
        return NDR_ERR_SUCCESS;
 
60
}
 
61
 
 
62
static enum ndr_err_code ndr_pull_netr_UasInfo(struct ndr_pull *ndr, int ndr_flags, struct netr_UasInfo *r)
 
63
{
 
64
        uint32_t _ptr_account_name;
 
65
        TALLOC_CTX *_mem_save_account_name_0;
 
66
        uint32_t _ptr_computer;
 
67
        TALLOC_CTX *_mem_save_computer_0;
 
68
        uint32_t _ptr_domain;
 
69
        TALLOC_CTX *_mem_save_domain_0;
 
70
        uint32_t _ptr_script_path;
 
71
        TALLOC_CTX *_mem_save_script_path_0;
 
72
        if (ndr_flags & NDR_SCALARS) {
 
73
                NDR_CHECK(ndr_pull_align(ndr, 5));
 
74
                NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_account_name));
 
75
                if (_ptr_account_name) {
 
76
                        NDR_PULL_ALLOC(ndr, r->account_name);
 
77
                } else {
 
78
                        r->account_name = NULL;
 
79
                }
 
80
                NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->priv));
 
81
                NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->auth_flags));
 
82
                NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->logon_count));
 
83
                NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->bad_pw_count));
 
84
                NDR_CHECK(ndr_pull_time_t(ndr, NDR_SCALARS, &r->last_logon));
 
85
                NDR_CHECK(ndr_pull_time_t(ndr, NDR_SCALARS, &r->last_logoff));
 
86
                NDR_CHECK(ndr_pull_time_t(ndr, NDR_SCALARS, &r->logoff_time));
 
87
                NDR_CHECK(ndr_pull_time_t(ndr, NDR_SCALARS, &r->kickoff_time));
 
88
                NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->password_age));
 
89
                NDR_CHECK(ndr_pull_time_t(ndr, NDR_SCALARS, &r->pw_can_change));
 
90
                NDR_CHECK(ndr_pull_time_t(ndr, NDR_SCALARS, &r->pw_must_change));
 
91
                NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_computer));
 
92
                if (_ptr_computer) {
 
93
                        NDR_PULL_ALLOC(ndr, r->computer);
 
94
                } else {
 
95
                        r->computer = NULL;
 
96
                }
 
97
                NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_domain));
 
98
                if (_ptr_domain) {
 
99
                        NDR_PULL_ALLOC(ndr, r->domain);
 
100
                } else {
 
101
                        r->domain = NULL;
 
102
                }
 
103
                NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_script_path));
 
104
                if (_ptr_script_path) {
 
105
                        NDR_PULL_ALLOC(ndr, r->script_path);
 
106
                } else {
 
107
                        r->script_path = NULL;
 
108
                }
 
109
                NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->unknown));
 
110
                NDR_CHECK(ndr_pull_trailer_align(ndr, 5));
 
111
        }
 
112
        if (ndr_flags & NDR_BUFFERS) {
 
113
                if (r->account_name) {
 
114
                        _mem_save_account_name_0 = NDR_PULL_GET_MEM_CTX(ndr);
 
115
                        NDR_PULL_SET_MEM_CTX(ndr, r->account_name, 0);
 
116
                        NDR_CHECK(ndr_pull_array_size(ndr, &r->account_name));
 
117
                        NDR_CHECK(ndr_pull_array_length(ndr, &r->account_name));
 
118
                        if (ndr_get_array_length(ndr, &r->account_name) > ndr_get_array_size(ndr, &r->account_name)) {
 
119
                                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));
 
120
                        }
 
121
                        NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->account_name), sizeof(uint16_t)));
 
122
                        NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->account_name, ndr_get_array_length(ndr, &r->account_name), sizeof(uint16_t), CH_UTF16));
 
123
                        NDR_PULL_SET_MEM_CTX(ndr, _mem_save_account_name_0, 0);
 
124
                }
 
125
                if (r->computer) {
 
126
                        _mem_save_computer_0 = NDR_PULL_GET_MEM_CTX(ndr);
 
127
                        NDR_PULL_SET_MEM_CTX(ndr, r->computer, 0);
 
128
                        NDR_CHECK(ndr_pull_array_size(ndr, &r->computer));
 
129
                        NDR_CHECK(ndr_pull_array_length(ndr, &r->computer));
 
130
                        if (ndr_get_array_length(ndr, &r->computer) > ndr_get_array_size(ndr, &r->computer)) {
 
131
                                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));
 
132
                        }
 
133
                        NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->computer), sizeof(uint16_t)));
 
134
                        NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->computer, ndr_get_array_length(ndr, &r->computer), sizeof(uint16_t), CH_UTF16));
 
135
                        NDR_PULL_SET_MEM_CTX(ndr, _mem_save_computer_0, 0);
 
136
                }
 
137
                if (r->domain) {
 
138
                        _mem_save_domain_0 = NDR_PULL_GET_MEM_CTX(ndr);
 
139
                        NDR_PULL_SET_MEM_CTX(ndr, r->domain, 0);
 
140
                        NDR_CHECK(ndr_pull_array_size(ndr, &r->domain));
 
141
                        NDR_CHECK(ndr_pull_array_length(ndr, &r->domain));
 
142
                        if (ndr_get_array_length(ndr, &r->domain) > ndr_get_array_size(ndr, &r->domain)) {
 
143
                                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));
 
144
                        }
 
145
                        NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->domain), sizeof(uint16_t)));
 
146
                        NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->domain, ndr_get_array_length(ndr, &r->domain), sizeof(uint16_t), CH_UTF16));
 
147
                        NDR_PULL_SET_MEM_CTX(ndr, _mem_save_domain_0, 0);
 
148
                }
 
149
                if (r->script_path) {
 
150
                        _mem_save_script_path_0 = NDR_PULL_GET_MEM_CTX(ndr);
 
151
                        NDR_PULL_SET_MEM_CTX(ndr, r->script_path, 0);
 
152
                        NDR_CHECK(ndr_pull_array_size(ndr, &r->script_path));
 
153
                        NDR_CHECK(ndr_pull_array_length(ndr, &r->script_path));
 
154
                        if (ndr_get_array_length(ndr, &r->script_path) > ndr_get_array_size(ndr, &r->script_path)) {
 
155
                                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));
 
156
                        }
 
157
                        NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->script_path), sizeof(uint16_t)));
 
158
                        NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->script_path, ndr_get_array_length(ndr, &r->script_path), sizeof(uint16_t), CH_UTF16));
 
159
                        NDR_PULL_SET_MEM_CTX(ndr, _mem_save_script_path_0, 0);
 
160
                }
 
161
        }
 
162
        return NDR_ERR_SUCCESS;
 
163
}
 
164
 
 
165
_PUBLIC_ void ndr_print_netr_UasInfo(struct ndr_print *ndr, const char *name, const struct netr_UasInfo *r)
 
166
{
 
167
        ndr_print_struct(ndr, name, "netr_UasInfo");
 
168
        ndr->depth++;
 
169
        ndr_print_ptr(ndr, "account_name", r->account_name);
 
170
        ndr->depth++;
 
171
        if (r->account_name) {
 
172
                ndr_print_string(ndr, "account_name", r->account_name);
 
173
        }
 
174
        ndr->depth--;
 
175
        ndr_print_uint32(ndr, "priv", r->priv);
 
176
        ndr_print_uint32(ndr, "auth_flags", r->auth_flags);
 
177
        ndr_print_uint32(ndr, "logon_count", r->logon_count);
 
178
        ndr_print_uint32(ndr, "bad_pw_count", r->bad_pw_count);
 
179
        ndr_print_time_t(ndr, "last_logon", r->last_logon);
 
180
        ndr_print_time_t(ndr, "last_logoff", r->last_logoff);
 
181
        ndr_print_time_t(ndr, "logoff_time", r->logoff_time);
 
182
        ndr_print_time_t(ndr, "kickoff_time", r->kickoff_time);
 
183
        ndr_print_uint32(ndr, "password_age", r->password_age);
 
184
        ndr_print_time_t(ndr, "pw_can_change", r->pw_can_change);
 
185
        ndr_print_time_t(ndr, "pw_must_change", r->pw_must_change);
 
186
        ndr_print_ptr(ndr, "computer", r->computer);
 
187
        ndr->depth++;
 
188
        if (r->computer) {
 
189
                ndr_print_string(ndr, "computer", r->computer);
 
190
        }
 
191
        ndr->depth--;
 
192
        ndr_print_ptr(ndr, "domain", r->domain);
 
193
        ndr->depth++;
 
194
        if (r->domain) {
 
195
                ndr_print_string(ndr, "domain", r->domain);
 
196
        }
 
197
        ndr->depth--;
 
198
        ndr_print_ptr(ndr, "script_path", r->script_path);
 
199
        ndr->depth++;
 
200
        if (r->script_path) {
 
201
                ndr_print_string(ndr, "script_path", r->script_path);
 
202
        }
 
203
        ndr->depth--;
 
204
        ndr_print_uint32(ndr, "unknown", r->unknown);
 
205
        ndr->depth--;
 
206
}
 
207
 
 
208
static enum ndr_err_code ndr_push_netr_UasLogoffInfo(struct ndr_push *ndr, int ndr_flags, const struct netr_UasLogoffInfo *r)
 
209
{
 
210
        if (ndr_flags & NDR_SCALARS) {
 
211
                NDR_CHECK(ndr_push_align(ndr, 4));
 
212
                NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->duration));
 
213
                NDR_CHECK(ndr_push_uint16(ndr, NDR_SCALARS, r->logon_count));
 
214
                NDR_CHECK(ndr_push_trailer_align(ndr, 4));
 
215
        }
 
216
        if (ndr_flags & NDR_BUFFERS) {
 
217
        }
 
218
        return NDR_ERR_SUCCESS;
 
219
}
 
220
 
 
221
static enum ndr_err_code ndr_pull_netr_UasLogoffInfo(struct ndr_pull *ndr, int ndr_flags, struct netr_UasLogoffInfo *r)
 
222
{
 
223
        if (ndr_flags & NDR_SCALARS) {
 
224
                NDR_CHECK(ndr_pull_align(ndr, 4));
 
225
                NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->duration));
 
226
                NDR_CHECK(ndr_pull_uint16(ndr, NDR_SCALARS, &r->logon_count));
 
227
                NDR_CHECK(ndr_pull_trailer_align(ndr, 4));
 
228
        }
 
229
        if (ndr_flags & NDR_BUFFERS) {
 
230
        }
 
231
        return NDR_ERR_SUCCESS;
 
232
}
 
233
 
 
234
_PUBLIC_ void ndr_print_netr_UasLogoffInfo(struct ndr_print *ndr, const char *name, const struct netr_UasLogoffInfo *r)
 
235
{
 
236
        ndr_print_struct(ndr, name, "netr_UasLogoffInfo");
 
237
        ndr->depth++;
 
238
        ndr_print_uint32(ndr, "duration", r->duration);
 
239
        ndr_print_uint16(ndr, "logon_count", r->logon_count);
 
240
        ndr->depth--;
 
241
}
 
242
 
 
243
_PUBLIC_ enum ndr_err_code ndr_push_netr_AcctLockStr(struct ndr_push *ndr, int ndr_flags, const struct netr_AcctLockStr *r)
 
244
{
 
245
        if (ndr_flags & NDR_SCALARS) {
 
246
                NDR_CHECK(ndr_push_align(ndr, 4));
 
247
                NDR_CHECK(ndr_push_dlong(ndr, NDR_SCALARS, r->lockout_duration));
 
248
                NDR_CHECK(ndr_push_udlong(ndr, NDR_SCALARS, r->reset_count));
 
249
                NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->bad_attempt_lockout));
 
250
                NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->dummy));
 
251
                NDR_CHECK(ndr_push_trailer_align(ndr, 4));
 
252
        }
 
253
        if (ndr_flags & NDR_BUFFERS) {
 
254
        }
 
255
        return NDR_ERR_SUCCESS;
 
256
}
 
257
 
 
258
_PUBLIC_ enum ndr_err_code ndr_pull_netr_AcctLockStr(struct ndr_pull *ndr, int ndr_flags, struct netr_AcctLockStr *r)
 
259
{
 
260
        if (ndr_flags & NDR_SCALARS) {
 
261
                NDR_CHECK(ndr_pull_align(ndr, 4));
 
262
                NDR_CHECK(ndr_pull_dlong(ndr, NDR_SCALARS, &r->lockout_duration));
 
263
                NDR_CHECK(ndr_pull_udlong(ndr, NDR_SCALARS, &r->reset_count));
 
264
                NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->bad_attempt_lockout));
 
265
                NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->dummy));
 
266
                NDR_CHECK(ndr_pull_trailer_align(ndr, 4));
 
267
        }
 
268
        if (ndr_flags & NDR_BUFFERS) {
 
269
        }
 
270
        return NDR_ERR_SUCCESS;
 
271
}
 
272
 
 
273
_PUBLIC_ void ndr_print_netr_AcctLockStr(struct ndr_print *ndr, const char *name, const struct netr_AcctLockStr *r)
 
274
{
 
275
        ndr_print_struct(ndr, name, "netr_AcctLockStr");
 
276
        ndr->depth++;
 
277
        ndr_print_dlong(ndr, "lockout_duration", r->lockout_duration);
 
278
        ndr_print_udlong(ndr, "reset_count", r->reset_count);
 
279
        ndr_print_uint32(ndr, "bad_attempt_lockout", r->bad_attempt_lockout);
 
280
        ndr_print_uint32(ndr, "dummy", r->dummy);
 
281
        ndr->depth--;
 
282
}
 
283
 
 
284
_PUBLIC_ enum ndr_err_code ndr_push_netr_LogonParameterControl(struct ndr_push *ndr, int ndr_flags, uint32_t r)
 
285
{
 
286
        NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r));
 
287
        return NDR_ERR_SUCCESS;
 
288
}
 
289
 
 
290
_PUBLIC_ enum ndr_err_code ndr_pull_netr_LogonParameterControl(struct ndr_pull *ndr, int ndr_flags, uint32_t *r)
 
291
{
 
292
        uint32_t v;
 
293
        NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &v));
 
294
        *r = v;
 
295
        return NDR_ERR_SUCCESS;
 
296
}
 
297
 
 
298
_PUBLIC_ void ndr_print_netr_LogonParameterControl(struct ndr_print *ndr, const char *name, uint32_t r)
 
299
{
 
300
        ndr_print_uint32(ndr, name, r);
 
301
        ndr->depth++;
 
302
        ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "MSV1_0_CLEARTEXT_PASSWORD_ALLOWED", MSV1_0_CLEARTEXT_PASSWORD_ALLOWED, r);
 
303
        ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "MSV1_0_UPDATE_LOGON_STATISTICS", MSV1_0_UPDATE_LOGON_STATISTICS, r);
 
304
        ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "MSV1_0_RETURN_USER_PARAMETERS", MSV1_0_RETURN_USER_PARAMETERS, r);
 
305
        ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "MSV1_0_DONT_TRY_GUEST_ACCOUNT", MSV1_0_DONT_TRY_GUEST_ACCOUNT, r);
 
306
        ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "MSV1_0_ALLOW_SERVER_TRUST_ACCOUNT", MSV1_0_ALLOW_SERVER_TRUST_ACCOUNT, r);
 
307
        ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "MSV1_0_RETURN_PASSWORD_EXPIRY", MSV1_0_RETURN_PASSWORD_EXPIRY, r);
 
308
        ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "MSV1_0_USE_CLIENT_CHALLENGE", MSV1_0_USE_CLIENT_CHALLENGE, r);
 
309
        ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "MSV1_0_TRY_GUEST_ACCOUNT_ONLY", MSV1_0_TRY_GUEST_ACCOUNT_ONLY, r);
 
310
        ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "MSV1_0_RETURN_PROFILE_PATH", MSV1_0_RETURN_PROFILE_PATH, r);
 
311
        ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "MSV1_0_TRY_SPECIFIED_DOMAIN_ONLY", MSV1_0_TRY_SPECIFIED_DOMAIN_ONLY, r);
 
312
        ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "MSV1_0_ALLOW_WORKSTATION_TRUST_ACCOUNT", MSV1_0_ALLOW_WORKSTATION_TRUST_ACCOUNT, r);
 
313
        ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "MSV1_0_DISABLE_PERSONAL_FALLBACK", MSV1_0_DISABLE_PERSONAL_FALLBACK, r);
 
314
        ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "MSV1_0_ALLOW_FORCE_GUEST", MSV1_0_ALLOW_FORCE_GUEST, r);
 
315
        ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "MSV1_0_CLEARTEXT_PASSWORD_SUPPLIED", MSV1_0_CLEARTEXT_PASSWORD_SUPPLIED, r);
 
316
        ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "MSV1_0_USE_DOMAIN_FOR_ROUTING_ONLY", MSV1_0_USE_DOMAIN_FOR_ROUTING_ONLY, r);
 
317
        ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "MSV1_0_ALLOW_MSVCHAPV2", MSV1_0_ALLOW_MSVCHAPV2, r);
 
318
        ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "MSV1_0_S4U2SELF", MSV1_0_S4U2SELF, r);
 
319
        ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "MSV1_0_CHECK_LOGONHOURS_FOR_S4U", MSV1_0_CHECK_LOGONHOURS_FOR_S4U, r);
 
320
        ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "MSV1_0_SUBAUTHENTICATION_DLL_EX", MSV1_0_SUBAUTHENTICATION_DLL_EX, r);
 
321
        ndr->depth--;
 
322
}
 
323
 
 
324
static enum ndr_err_code ndr_push_netr_IdentityInfo(struct ndr_push *ndr, int ndr_flags, const struct netr_IdentityInfo *r)
 
325
{
 
326
        if (ndr_flags & NDR_SCALARS) {
 
327
                NDR_CHECK(ndr_push_align(ndr, 5));
 
328
                NDR_CHECK(ndr_push_lsa_String(ndr, NDR_SCALARS, &r->domain_name));
 
329
                NDR_CHECK(ndr_push_netr_LogonParameterControl(ndr, NDR_SCALARS, r->parameter_control));
 
330
                NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->logon_id_low));
 
331
                NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->logon_id_high));
 
332
                NDR_CHECK(ndr_push_lsa_String(ndr, NDR_SCALARS, &r->account_name));
 
333
                NDR_CHECK(ndr_push_lsa_String(ndr, NDR_SCALARS, &r->workstation));
 
334
                NDR_CHECK(ndr_push_trailer_align(ndr, 5));
 
335
        }
 
336
        if (ndr_flags & NDR_BUFFERS) {
 
337
                NDR_CHECK(ndr_push_lsa_String(ndr, NDR_BUFFERS, &r->domain_name));
 
338
                NDR_CHECK(ndr_push_lsa_String(ndr, NDR_BUFFERS, &r->account_name));
 
339
                NDR_CHECK(ndr_push_lsa_String(ndr, NDR_BUFFERS, &r->workstation));
 
340
        }
 
341
        return NDR_ERR_SUCCESS;
 
342
}
 
343
 
 
344
static enum ndr_err_code ndr_pull_netr_IdentityInfo(struct ndr_pull *ndr, int ndr_flags, struct netr_IdentityInfo *r)
 
345
{
 
346
        if (ndr_flags & NDR_SCALARS) {
 
347
                NDR_CHECK(ndr_pull_align(ndr, 5));
 
348
                NDR_CHECK(ndr_pull_lsa_String(ndr, NDR_SCALARS, &r->domain_name));
 
349
                NDR_CHECK(ndr_pull_netr_LogonParameterControl(ndr, NDR_SCALARS, &r->parameter_control));
 
350
                NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->logon_id_low));
 
351
                NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->logon_id_high));
 
352
                NDR_CHECK(ndr_pull_lsa_String(ndr, NDR_SCALARS, &r->account_name));
 
353
                NDR_CHECK(ndr_pull_lsa_String(ndr, NDR_SCALARS, &r->workstation));
 
354
                NDR_CHECK(ndr_pull_trailer_align(ndr, 5));
 
355
        }
 
356
        if (ndr_flags & NDR_BUFFERS) {
 
357
                NDR_CHECK(ndr_pull_lsa_String(ndr, NDR_BUFFERS, &r->domain_name));
 
358
                NDR_CHECK(ndr_pull_lsa_String(ndr, NDR_BUFFERS, &r->account_name));
 
359
                NDR_CHECK(ndr_pull_lsa_String(ndr, NDR_BUFFERS, &r->workstation));
 
360
        }
 
361
        return NDR_ERR_SUCCESS;
 
362
}
 
363
 
 
364
_PUBLIC_ void ndr_print_netr_IdentityInfo(struct ndr_print *ndr, const char *name, const struct netr_IdentityInfo *r)
 
365
{
 
366
        ndr_print_struct(ndr, name, "netr_IdentityInfo");
 
367
        ndr->depth++;
 
368
        ndr_print_lsa_String(ndr, "domain_name", &r->domain_name);
 
369
        ndr_print_netr_LogonParameterControl(ndr, "parameter_control", r->parameter_control);
 
370
        ndr_print_uint32(ndr, "logon_id_low", r->logon_id_low);
 
371
        ndr_print_uint32(ndr, "logon_id_high", r->logon_id_high);
 
372
        ndr_print_lsa_String(ndr, "account_name", &r->account_name);
 
373
        ndr_print_lsa_String(ndr, "workstation", &r->workstation);
 
374
        ndr->depth--;
 
375
}
 
376
 
 
377
static enum ndr_err_code ndr_push_netr_PasswordInfo(struct ndr_push *ndr, int ndr_flags, const struct netr_PasswordInfo *r)
 
378
{
 
379
        if (ndr_flags & NDR_SCALARS) {
 
380
                NDR_CHECK(ndr_push_align(ndr, 5));
 
381
                NDR_CHECK(ndr_push_netr_IdentityInfo(ndr, NDR_SCALARS, &r->identity_info));
 
382
                NDR_CHECK(ndr_push_samr_Password(ndr, NDR_SCALARS, &r->lmpassword));
 
383
                NDR_CHECK(ndr_push_samr_Password(ndr, NDR_SCALARS, &r->ntpassword));
 
384
                NDR_CHECK(ndr_push_trailer_align(ndr, 5));
 
385
        }
 
386
        if (ndr_flags & NDR_BUFFERS) {
 
387
                NDR_CHECK(ndr_push_netr_IdentityInfo(ndr, NDR_BUFFERS, &r->identity_info));
 
388
        }
 
389
        return NDR_ERR_SUCCESS;
 
390
}
 
391
 
 
392
static enum ndr_err_code ndr_pull_netr_PasswordInfo(struct ndr_pull *ndr, int ndr_flags, struct netr_PasswordInfo *r)
 
393
{
 
394
        if (ndr_flags & NDR_SCALARS) {
 
395
                NDR_CHECK(ndr_pull_align(ndr, 5));
 
396
                NDR_CHECK(ndr_pull_netr_IdentityInfo(ndr, NDR_SCALARS, &r->identity_info));
 
397
                NDR_CHECK(ndr_pull_samr_Password(ndr, NDR_SCALARS, &r->lmpassword));
 
398
                NDR_CHECK(ndr_pull_samr_Password(ndr, NDR_SCALARS, &r->ntpassword));
 
399
                NDR_CHECK(ndr_pull_trailer_align(ndr, 5));
 
400
        }
 
401
        if (ndr_flags & NDR_BUFFERS) {
 
402
                NDR_CHECK(ndr_pull_netr_IdentityInfo(ndr, NDR_BUFFERS, &r->identity_info));
 
403
        }
 
404
        return NDR_ERR_SUCCESS;
 
405
}
 
406
 
 
407
_PUBLIC_ void ndr_print_netr_PasswordInfo(struct ndr_print *ndr, const char *name, const struct netr_PasswordInfo *r)
 
408
{
 
409
        ndr_print_struct(ndr, name, "netr_PasswordInfo");
 
410
        ndr->depth++;
 
411
        ndr_print_netr_IdentityInfo(ndr, "identity_info", &r->identity_info);
 
412
        ndr_print_samr_Password(ndr, "lmpassword", &r->lmpassword);
 
413
        ndr_print_samr_Password(ndr, "ntpassword", &r->ntpassword);
 
414
        ndr->depth--;
 
415
}
 
416
 
 
417
static enum ndr_err_code ndr_push_netr_ChallengeResponse(struct ndr_push *ndr, int ndr_flags, const struct netr_ChallengeResponse *r)
 
418
{
 
419
        {
 
420
                uint32_t _flags_save_STRUCT = ndr->flags;
 
421
                ndr_set_flags(&ndr->flags, LIBNDR_PRINT_ARRAY_HEX);
 
422
                if (ndr_flags & NDR_SCALARS) {
 
423
                        NDR_CHECK(ndr_push_align(ndr, 5));
 
424
                        NDR_CHECK(ndr_push_uint16(ndr, NDR_SCALARS, r->length));
 
425
                        NDR_CHECK(ndr_push_uint16(ndr, NDR_SCALARS, r->length));
 
426
                        NDR_CHECK(ndr_push_unique_ptr(ndr, r->data));
 
427
                        NDR_CHECK(ndr_push_trailer_align(ndr, 5));
 
428
                }
 
429
                if (ndr_flags & NDR_BUFFERS) {
 
430
                        if (r->data) {
 
431
                                NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, r->length));
 
432
                                NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, 0));
 
433
                                NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, r->length));
 
434
                                NDR_CHECK(ndr_push_array_uint8(ndr, NDR_SCALARS, r->data, r->length));
 
435
                        }
 
436
                }
 
437
                ndr->flags = _flags_save_STRUCT;
 
438
        }
 
439
        return NDR_ERR_SUCCESS;
 
440
}
 
441
 
 
442
static enum ndr_err_code ndr_pull_netr_ChallengeResponse(struct ndr_pull *ndr, int ndr_flags, struct netr_ChallengeResponse *r)
 
443
{
 
444
        uint32_t _ptr_data;
 
445
        TALLOC_CTX *_mem_save_data_0;
 
446
        {
 
447
                uint32_t _flags_save_STRUCT = ndr->flags;
 
448
                ndr_set_flags(&ndr->flags, LIBNDR_PRINT_ARRAY_HEX);
 
449
                if (ndr_flags & NDR_SCALARS) {
 
450
                        NDR_CHECK(ndr_pull_align(ndr, 5));
 
451
                        NDR_CHECK(ndr_pull_uint16(ndr, NDR_SCALARS, &r->length));
 
452
                        NDR_CHECK(ndr_pull_uint16(ndr, NDR_SCALARS, &r->size));
 
453
                        NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_data));
 
454
                        if (_ptr_data) {
 
455
                                NDR_PULL_ALLOC(ndr, r->data);
 
456
                        } else {
 
457
                                r->data = NULL;
 
458
                        }
 
459
                        NDR_CHECK(ndr_pull_trailer_align(ndr, 5));
 
460
                }
 
461
                if (ndr_flags & NDR_BUFFERS) {
 
462
                        if (r->data) {
 
463
                                _mem_save_data_0 = NDR_PULL_GET_MEM_CTX(ndr);
 
464
                                NDR_PULL_SET_MEM_CTX(ndr, r->data, 0);
 
465
                                NDR_CHECK(ndr_pull_array_size(ndr, &r->data));
 
466
                                NDR_CHECK(ndr_pull_array_length(ndr, &r->data));
 
467
                                if (ndr_get_array_length(ndr, &r->data) > ndr_get_array_size(ndr, &r->data)) {
 
468
                                        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));
 
469
                                }
 
470
                                NDR_PULL_ALLOC_N(ndr, r->data, ndr_get_array_size(ndr, &r->data));
 
471
                                NDR_CHECK(ndr_pull_array_uint8(ndr, NDR_SCALARS, r->data, ndr_get_array_length(ndr, &r->data)));
 
472
                                NDR_PULL_SET_MEM_CTX(ndr, _mem_save_data_0, 0);
 
473
                        }
 
474
                        if (r->data) {
 
475
                                NDR_CHECK(ndr_check_array_size(ndr, (void*)&r->data, r->length));
 
476
                        }
 
477
                        if (r->data) {
 
478
                                NDR_CHECK(ndr_check_array_length(ndr, (void*)&r->data, r->length));
 
479
                        }
 
480
                }
 
481
                ndr->flags = _flags_save_STRUCT;
 
482
        }
 
483
        return NDR_ERR_SUCCESS;
 
484
}
 
485
 
 
486
_PUBLIC_ void ndr_print_netr_ChallengeResponse(struct ndr_print *ndr, const char *name, const struct netr_ChallengeResponse *r)
 
487
{
 
488
        ndr_print_struct(ndr, name, "netr_ChallengeResponse");
 
489
        {
 
490
                uint32_t _flags_save_STRUCT = ndr->flags;
 
491
                ndr_set_flags(&ndr->flags, LIBNDR_PRINT_ARRAY_HEX);
 
492
                ndr->depth++;
 
493
                ndr_print_uint16(ndr, "length", r->length);
 
494
                ndr_print_uint16(ndr, "size", (ndr->flags & LIBNDR_PRINT_SET_VALUES)?r->length:r->size);
 
495
                ndr_print_ptr(ndr, "data", r->data);
 
496
                ndr->depth++;
 
497
                if (r->data) {
 
498
                        ndr_print_array_uint8(ndr, "data", r->data, r->length);
 
499
                }
 
500
                ndr->depth--;
 
501
                ndr->depth--;
 
502
                ndr->flags = _flags_save_STRUCT;
 
503
        }
 
504
}
 
505
 
 
506
static enum ndr_err_code ndr_push_netr_NetworkInfo(struct ndr_push *ndr, int ndr_flags, const struct netr_NetworkInfo *r)
 
507
{
 
508
        {
 
509
                uint32_t _flags_save_STRUCT = ndr->flags;
 
510
                ndr_set_flags(&ndr->flags, LIBNDR_PRINT_ARRAY_HEX);
 
511
                if (ndr_flags & NDR_SCALARS) {
 
512
                        NDR_CHECK(ndr_push_align(ndr, 5));
 
513
                        NDR_CHECK(ndr_push_netr_IdentityInfo(ndr, NDR_SCALARS, &r->identity_info));
 
514
                        NDR_CHECK(ndr_push_array_uint8(ndr, NDR_SCALARS, r->challenge, 8));
 
515
                        NDR_CHECK(ndr_push_netr_ChallengeResponse(ndr, NDR_SCALARS, &r->nt));
 
516
                        NDR_CHECK(ndr_push_netr_ChallengeResponse(ndr, NDR_SCALARS, &r->lm));
 
517
                        NDR_CHECK(ndr_push_trailer_align(ndr, 5));
 
518
                }
 
519
                if (ndr_flags & NDR_BUFFERS) {
 
520
                        NDR_CHECK(ndr_push_netr_IdentityInfo(ndr, NDR_BUFFERS, &r->identity_info));
 
521
                        NDR_CHECK(ndr_push_netr_ChallengeResponse(ndr, NDR_BUFFERS, &r->nt));
 
522
                        NDR_CHECK(ndr_push_netr_ChallengeResponse(ndr, NDR_BUFFERS, &r->lm));
 
523
                }
 
524
                ndr->flags = _flags_save_STRUCT;
 
525
        }
 
526
        return NDR_ERR_SUCCESS;
 
527
}
 
528
 
 
529
static enum ndr_err_code ndr_pull_netr_NetworkInfo(struct ndr_pull *ndr, int ndr_flags, struct netr_NetworkInfo *r)
 
530
{
 
531
        {
 
532
                uint32_t _flags_save_STRUCT = ndr->flags;
 
533
                ndr_set_flags(&ndr->flags, LIBNDR_PRINT_ARRAY_HEX);
 
534
                if (ndr_flags & NDR_SCALARS) {
 
535
                        NDR_CHECK(ndr_pull_align(ndr, 5));
 
536
                        NDR_CHECK(ndr_pull_netr_IdentityInfo(ndr, NDR_SCALARS, &r->identity_info));
 
537
                        NDR_CHECK(ndr_pull_array_uint8(ndr, NDR_SCALARS, r->challenge, 8));
 
538
                        NDR_CHECK(ndr_pull_netr_ChallengeResponse(ndr, NDR_SCALARS, &r->nt));
 
539
                        NDR_CHECK(ndr_pull_netr_ChallengeResponse(ndr, NDR_SCALARS, &r->lm));
 
540
                        NDR_CHECK(ndr_pull_trailer_align(ndr, 5));
 
541
                }
 
542
                if (ndr_flags & NDR_BUFFERS) {
 
543
                        NDR_CHECK(ndr_pull_netr_IdentityInfo(ndr, NDR_BUFFERS, &r->identity_info));
 
544
                        NDR_CHECK(ndr_pull_netr_ChallengeResponse(ndr, NDR_BUFFERS, &r->nt));
 
545
                        NDR_CHECK(ndr_pull_netr_ChallengeResponse(ndr, NDR_BUFFERS, &r->lm));
 
546
                }
 
547
                ndr->flags = _flags_save_STRUCT;
 
548
        }
 
549
        return NDR_ERR_SUCCESS;
 
550
}
 
551
 
 
552
_PUBLIC_ void ndr_print_netr_NetworkInfo(struct ndr_print *ndr, const char *name, const struct netr_NetworkInfo *r)
 
553
{
 
554
        ndr_print_struct(ndr, name, "netr_NetworkInfo");
 
555
        {
 
556
                uint32_t _flags_save_STRUCT = ndr->flags;
 
557
                ndr_set_flags(&ndr->flags, LIBNDR_PRINT_ARRAY_HEX);
 
558
                ndr->depth++;
 
559
                ndr_print_netr_IdentityInfo(ndr, "identity_info", &r->identity_info);
 
560
                ndr_print_array_uint8(ndr, "challenge", r->challenge, 8);
 
561
                ndr_print_netr_ChallengeResponse(ndr, "nt", &r->nt);
 
562
                ndr_print_netr_ChallengeResponse(ndr, "lm", &r->lm);
 
563
                ndr->depth--;
 
564
                ndr->flags = _flags_save_STRUCT;
 
565
        }
 
566
}
 
567
 
 
568
static enum ndr_err_code ndr_push_netr_GenericInfo(struct ndr_push *ndr, int ndr_flags, const struct netr_GenericInfo *r)
 
569
{
 
570
        {
 
571
                uint32_t _flags_save_STRUCT = ndr->flags;
 
572
                ndr_set_flags(&ndr->flags, LIBNDR_PRINT_ARRAY_HEX);
 
573
                if (ndr_flags & NDR_SCALARS) {
 
574
                        NDR_CHECK(ndr_push_align(ndr, 5));
 
575
                        NDR_CHECK(ndr_push_netr_IdentityInfo(ndr, NDR_SCALARS, &r->identity_info));
 
576
                        NDR_CHECK(ndr_push_lsa_String(ndr, NDR_SCALARS, &r->package_name));
 
577
                        NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->length));
 
578
                        NDR_CHECK(ndr_push_unique_ptr(ndr, r->data));
 
579
                        NDR_CHECK(ndr_push_trailer_align(ndr, 5));
 
580
                }
 
581
                if (ndr_flags & NDR_BUFFERS) {
 
582
                        NDR_CHECK(ndr_push_netr_IdentityInfo(ndr, NDR_BUFFERS, &r->identity_info));
 
583
                        NDR_CHECK(ndr_push_lsa_String(ndr, NDR_BUFFERS, &r->package_name));
 
584
                        if (r->data) {
 
585
                                NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, r->length));
 
586
                                NDR_CHECK(ndr_push_array_uint8(ndr, NDR_SCALARS, r->data, r->length));
 
587
                        }
 
588
                }
 
589
                ndr->flags = _flags_save_STRUCT;
 
590
        }
 
591
        return NDR_ERR_SUCCESS;
 
592
}
 
593
 
 
594
static enum ndr_err_code ndr_pull_netr_GenericInfo(struct ndr_pull *ndr, int ndr_flags, struct netr_GenericInfo *r)
 
595
{
 
596
        uint32_t _ptr_data;
 
597
        TALLOC_CTX *_mem_save_data_0;
 
598
        {
 
599
                uint32_t _flags_save_STRUCT = ndr->flags;
 
600
                ndr_set_flags(&ndr->flags, LIBNDR_PRINT_ARRAY_HEX);
 
601
                if (ndr_flags & NDR_SCALARS) {
 
602
                        NDR_CHECK(ndr_pull_align(ndr, 5));
 
603
                        NDR_CHECK(ndr_pull_netr_IdentityInfo(ndr, NDR_SCALARS, &r->identity_info));
 
604
                        NDR_CHECK(ndr_pull_lsa_String(ndr, NDR_SCALARS, &r->package_name));
 
605
                        NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->length));
 
606
                        NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_data));
 
607
                        if (_ptr_data) {
 
608
                                NDR_PULL_ALLOC(ndr, r->data);
 
609
                        } else {
 
610
                                r->data = NULL;
 
611
                        }
 
612
                        NDR_CHECK(ndr_pull_trailer_align(ndr, 5));
 
613
                }
 
614
                if (ndr_flags & NDR_BUFFERS) {
 
615
                        NDR_CHECK(ndr_pull_netr_IdentityInfo(ndr, NDR_BUFFERS, &r->identity_info));
 
616
                        NDR_CHECK(ndr_pull_lsa_String(ndr, NDR_BUFFERS, &r->package_name));
 
617
                        if (r->data) {
 
618
                                _mem_save_data_0 = NDR_PULL_GET_MEM_CTX(ndr);
 
619
                                NDR_PULL_SET_MEM_CTX(ndr, r->data, 0);
 
620
                                NDR_CHECK(ndr_pull_array_size(ndr, &r->data));
 
621
                                NDR_PULL_ALLOC_N(ndr, r->data, ndr_get_array_size(ndr, &r->data));
 
622
                                NDR_CHECK(ndr_pull_array_uint8(ndr, NDR_SCALARS, r->data, ndr_get_array_size(ndr, &r->data)));
 
623
                                NDR_PULL_SET_MEM_CTX(ndr, _mem_save_data_0, 0);
 
624
                        }
 
625
                        if (r->data) {
 
626
                                NDR_CHECK(ndr_check_array_size(ndr, (void*)&r->data, r->length));
 
627
                        }
 
628
                }
 
629
                ndr->flags = _flags_save_STRUCT;
 
630
        }
 
631
        return NDR_ERR_SUCCESS;
 
632
}
 
633
 
 
634
_PUBLIC_ void ndr_print_netr_GenericInfo(struct ndr_print *ndr, const char *name, const struct netr_GenericInfo *r)
 
635
{
 
636
        ndr_print_struct(ndr, name, "netr_GenericInfo");
 
637
        {
 
638
                uint32_t _flags_save_STRUCT = ndr->flags;
 
639
                ndr_set_flags(&ndr->flags, LIBNDR_PRINT_ARRAY_HEX);
 
640
                ndr->depth++;
 
641
                ndr_print_netr_IdentityInfo(ndr, "identity_info", &r->identity_info);
 
642
                ndr_print_lsa_String(ndr, "package_name", &r->package_name);
 
643
                ndr_print_uint32(ndr, "length", r->length);
 
644
                ndr_print_ptr(ndr, "data", r->data);
 
645
                ndr->depth++;
 
646
                if (r->data) {
 
647
                        ndr_print_array_uint8(ndr, "data", r->data, r->length);
 
648
                }
 
649
                ndr->depth--;
 
650
                ndr->depth--;
 
651
                ndr->flags = _flags_save_STRUCT;
 
652
        }
 
653
}
 
654
 
 
655
static enum ndr_err_code ndr_push_netr_LogonInfoClass(struct ndr_push *ndr, int ndr_flags, enum netr_LogonInfoClass r)
 
656
{
 
657
        NDR_CHECK(ndr_push_enum_uint1632(ndr, NDR_SCALARS, r));
 
658
        return NDR_ERR_SUCCESS;
 
659
}
 
660
 
 
661
static enum ndr_err_code ndr_pull_netr_LogonInfoClass(struct ndr_pull *ndr, int ndr_flags, enum netr_LogonInfoClass *r)
 
662
{
 
663
        uint16_t v;
 
664
        NDR_CHECK(ndr_pull_enum_uint1632(ndr, NDR_SCALARS, &v));
 
665
        *r = v;
 
666
        return NDR_ERR_SUCCESS;
 
667
}
 
668
 
 
669
_PUBLIC_ void ndr_print_netr_LogonInfoClass(struct ndr_print *ndr, const char *name, enum netr_LogonInfoClass r)
 
670
{
 
671
        const char *val = NULL;
 
672
 
 
673
        switch (r) {
 
674
                case NetlogonInteractiveInformation: val = "NetlogonInteractiveInformation"; break;
 
675
                case NetlogonNetworkInformation: val = "NetlogonNetworkInformation"; break;
 
676
                case NetlogonServiceInformation: val = "NetlogonServiceInformation"; break;
 
677
                case NetlogonGenericInformation: val = "NetlogonGenericInformation"; break;
 
678
                case NetlogonInteractiveTransitiveInformation: val = "NetlogonInteractiveTransitiveInformation"; break;
 
679
                case NetlogonNetworkTransitiveInformation: val = "NetlogonNetworkTransitiveInformation"; break;
 
680
                case NetlogonServiceTransitiveInformation: val = "NetlogonServiceTransitiveInformation"; break;
 
681
        }
 
682
        ndr_print_enum(ndr, name, "ENUM", val, r);
 
683
}
 
684
 
 
685
_PUBLIC_ enum ndr_err_code ndr_push_netr_LogonLevel(struct ndr_push *ndr, int ndr_flags, const union netr_LogonLevel *r)
 
686
{
 
687
        if (ndr_flags & NDR_SCALARS) {
 
688
                int level = ndr_push_get_switch_value(ndr, r);
 
689
                NDR_CHECK(ndr_push_netr_LogonInfoClass(ndr, NDR_SCALARS, level));
 
690
                NDR_CHECK(ndr_push_union_align(ndr, 5));
 
691
                switch (level) {
 
692
                        case NetlogonInteractiveInformation: {
 
693
                                NDR_CHECK(ndr_push_unique_ptr(ndr, r->password));
 
694
                        break; }
 
695
 
 
696
                        case NetlogonNetworkInformation: {
 
697
                                NDR_CHECK(ndr_push_unique_ptr(ndr, r->network));
 
698
                        break; }
 
699
 
 
700
                        case NetlogonServiceInformation: {
 
701
                                NDR_CHECK(ndr_push_unique_ptr(ndr, r->password));
 
702
                        break; }
 
703
 
 
704
                        case NetlogonGenericInformation: {
 
705
                                NDR_CHECK(ndr_push_unique_ptr(ndr, r->generic));
 
706
                        break; }
 
707
 
 
708
                        case NetlogonInteractiveTransitiveInformation: {
 
709
                                NDR_CHECK(ndr_push_unique_ptr(ndr, r->password));
 
710
                        break; }
 
711
 
 
712
                        case NetlogonNetworkTransitiveInformation: {
 
713
                                NDR_CHECK(ndr_push_unique_ptr(ndr, r->network));
 
714
                        break; }
 
715
 
 
716
                        case NetlogonServiceTransitiveInformation: {
 
717
                                NDR_CHECK(ndr_push_unique_ptr(ndr, r->password));
 
718
                        break; }
 
719
 
 
720
                        default:
 
721
                                return ndr_push_error(ndr, NDR_ERR_BAD_SWITCH, "Bad switch value %u at %s", level, __location__);
 
722
                }
 
723
        }
 
724
        if (ndr_flags & NDR_BUFFERS) {
 
725
                int level = ndr_push_get_switch_value(ndr, r);
 
726
                switch (level) {
 
727
                        case NetlogonInteractiveInformation:
 
728
                                if (r->password) {
 
729
                                        NDR_CHECK(ndr_push_netr_PasswordInfo(ndr, NDR_SCALARS|NDR_BUFFERS, r->password));
 
730
                                }
 
731
                        break;
 
732
 
 
733
                        case NetlogonNetworkInformation:
 
734
                                if (r->network) {
 
735
                                        NDR_CHECK(ndr_push_netr_NetworkInfo(ndr, NDR_SCALARS|NDR_BUFFERS, r->network));
 
736
                                }
 
737
                        break;
 
738
 
 
739
                        case NetlogonServiceInformation:
 
740
                                if (r->password) {
 
741
                                        NDR_CHECK(ndr_push_netr_PasswordInfo(ndr, NDR_SCALARS|NDR_BUFFERS, r->password));
 
742
                                }
 
743
                        break;
 
744
 
 
745
                        case NetlogonGenericInformation:
 
746
                                if (r->generic) {
 
747
                                        NDR_CHECK(ndr_push_netr_GenericInfo(ndr, NDR_SCALARS|NDR_BUFFERS, r->generic));
 
748
                                }
 
749
                        break;
 
750
 
 
751
                        case NetlogonInteractiveTransitiveInformation:
 
752
                                if (r->password) {
 
753
                                        NDR_CHECK(ndr_push_netr_PasswordInfo(ndr, NDR_SCALARS|NDR_BUFFERS, r->password));
 
754
                                }
 
755
                        break;
 
756
 
 
757
                        case NetlogonNetworkTransitiveInformation:
 
758
                                if (r->network) {
 
759
                                        NDR_CHECK(ndr_push_netr_NetworkInfo(ndr, NDR_SCALARS|NDR_BUFFERS, r->network));
 
760
                                }
 
761
                        break;
 
762
 
 
763
                        case NetlogonServiceTransitiveInformation:
 
764
                                if (r->password) {
 
765
                                        NDR_CHECK(ndr_push_netr_PasswordInfo(ndr, NDR_SCALARS|NDR_BUFFERS, r->password));
 
766
                                }
 
767
                        break;
 
768
 
 
769
                        default:
 
770
                                return ndr_push_error(ndr, NDR_ERR_BAD_SWITCH, "Bad switch value %u at %s", level, __location__);
 
771
                }
 
772
        }
 
773
        return NDR_ERR_SUCCESS;
 
774
}
 
775
 
 
776
_PUBLIC_ enum ndr_err_code ndr_pull_netr_LogonLevel(struct ndr_pull *ndr, int ndr_flags, union netr_LogonLevel *r)
 
777
{
 
778
        int level;
 
779
        uint16_t _level;
 
780
        TALLOC_CTX *_mem_save_password_0;
 
781
        TALLOC_CTX *_mem_save_network_0;
 
782
        TALLOC_CTX *_mem_save_generic_0;
 
783
        level = ndr_pull_get_switch_value(ndr, r);
 
784
        if (ndr_flags & NDR_SCALARS) {
 
785
                NDR_CHECK(ndr_pull_uint1632(ndr, NDR_SCALARS, &_level));
 
786
                if (_level != level) {
 
787
                        return ndr_pull_error(ndr, NDR_ERR_BAD_SWITCH, "Bad switch value %u for r at %s", _level, __location__);
 
788
                }
 
789
                NDR_CHECK(ndr_pull_union_align(ndr, 5));
 
790
                switch (level) {
 
791
                        case NetlogonInteractiveInformation: {
 
792
                                uint32_t _ptr_password;
 
793
                                NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_password));
 
794
                                if (_ptr_password) {
 
795
                                        NDR_PULL_ALLOC(ndr, r->password);
 
796
                                } else {
 
797
                                        r->password = NULL;
 
798
                                }
 
799
                        break; }
 
800
 
 
801
                        case NetlogonNetworkInformation: {
 
802
                                uint32_t _ptr_network;
 
803
                                NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_network));
 
804
                                if (_ptr_network) {
 
805
                                        NDR_PULL_ALLOC(ndr, r->network);
 
806
                                } else {
 
807
                                        r->network = NULL;
 
808
                                }
 
809
                        break; }
 
810
 
 
811
                        case NetlogonServiceInformation: {
 
812
                                uint32_t _ptr_password;
 
813
                                NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_password));
 
814
                                if (_ptr_password) {
 
815
                                        NDR_PULL_ALLOC(ndr, r->password);
 
816
                                } else {
 
817
                                        r->password = NULL;
 
818
                                }
 
819
                        break; }
 
820
 
 
821
                        case NetlogonGenericInformation: {
 
822
                                uint32_t _ptr_generic;
 
823
                                NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_generic));
 
824
                                if (_ptr_generic) {
 
825
                                        NDR_PULL_ALLOC(ndr, r->generic);
 
826
                                } else {
 
827
                                        r->generic = NULL;
 
828
                                }
 
829
                        break; }
 
830
 
 
831
                        case NetlogonInteractiveTransitiveInformation: {
 
832
                                uint32_t _ptr_password;
 
833
                                NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_password));
 
834
                                if (_ptr_password) {
 
835
                                        NDR_PULL_ALLOC(ndr, r->password);
 
836
                                } else {
 
837
                                        r->password = NULL;
 
838
                                }
 
839
                        break; }
 
840
 
 
841
                        case NetlogonNetworkTransitiveInformation: {
 
842
                                uint32_t _ptr_network;
 
843
                                NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_network));
 
844
                                if (_ptr_network) {
 
845
                                        NDR_PULL_ALLOC(ndr, r->network);
 
846
                                } else {
 
847
                                        r->network = NULL;
 
848
                                }
 
849
                        break; }
 
850
 
 
851
                        case NetlogonServiceTransitiveInformation: {
 
852
                                uint32_t _ptr_password;
 
853
                                NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_password));
 
854
                                if (_ptr_password) {
 
855
                                        NDR_PULL_ALLOC(ndr, r->password);
 
856
                                } else {
 
857
                                        r->password = NULL;
 
858
                                }
 
859
                        break; }
 
860
 
 
861
                        default:
 
862
                                return ndr_pull_error(ndr, NDR_ERR_BAD_SWITCH, "Bad switch value %u at %s", level, __location__);
 
863
                }
 
864
        }
 
865
        if (ndr_flags & NDR_BUFFERS) {
 
866
                switch (level) {
 
867
                        case NetlogonInteractiveInformation:
 
868
                                if (r->password) {
 
869
                                        _mem_save_password_0 = NDR_PULL_GET_MEM_CTX(ndr);
 
870
                                        NDR_PULL_SET_MEM_CTX(ndr, r->password, 0);
 
871
                                        NDR_CHECK(ndr_pull_netr_PasswordInfo(ndr, NDR_SCALARS|NDR_BUFFERS, r->password));
 
872
                                        NDR_PULL_SET_MEM_CTX(ndr, _mem_save_password_0, 0);
 
873
                                }
 
874
                        break;
 
875
 
 
876
                        case NetlogonNetworkInformation:
 
877
                                if (r->network) {
 
878
                                        _mem_save_network_0 = NDR_PULL_GET_MEM_CTX(ndr);
 
879
                                        NDR_PULL_SET_MEM_CTX(ndr, r->network, 0);
 
880
                                        NDR_CHECK(ndr_pull_netr_NetworkInfo(ndr, NDR_SCALARS|NDR_BUFFERS, r->network));
 
881
                                        NDR_PULL_SET_MEM_CTX(ndr, _mem_save_network_0, 0);
 
882
                                }
 
883
                        break;
 
884
 
 
885
                        case NetlogonServiceInformation:
 
886
                                if (r->password) {
 
887
                                        _mem_save_password_0 = NDR_PULL_GET_MEM_CTX(ndr);
 
888
                                        NDR_PULL_SET_MEM_CTX(ndr, r->password, 0);
 
889
                                        NDR_CHECK(ndr_pull_netr_PasswordInfo(ndr, NDR_SCALARS|NDR_BUFFERS, r->password));
 
890
                                        NDR_PULL_SET_MEM_CTX(ndr, _mem_save_password_0, 0);
 
891
                                }
 
892
                        break;
 
893
 
 
894
                        case NetlogonGenericInformation:
 
895
                                if (r->generic) {
 
896
                                        _mem_save_generic_0 = NDR_PULL_GET_MEM_CTX(ndr);
 
897
                                        NDR_PULL_SET_MEM_CTX(ndr, r->generic, 0);
 
898
                                        NDR_CHECK(ndr_pull_netr_GenericInfo(ndr, NDR_SCALARS|NDR_BUFFERS, r->generic));
 
899
                                        NDR_PULL_SET_MEM_CTX(ndr, _mem_save_generic_0, 0);
 
900
                                }
 
901
                        break;
 
902
 
 
903
                        case NetlogonInteractiveTransitiveInformation:
 
904
                                if (r->password) {
 
905
                                        _mem_save_password_0 = NDR_PULL_GET_MEM_CTX(ndr);
 
906
                                        NDR_PULL_SET_MEM_CTX(ndr, r->password, 0);
 
907
                                        NDR_CHECK(ndr_pull_netr_PasswordInfo(ndr, NDR_SCALARS|NDR_BUFFERS, r->password));
 
908
                                        NDR_PULL_SET_MEM_CTX(ndr, _mem_save_password_0, 0);
 
909
                                }
 
910
                        break;
 
911
 
 
912
                        case NetlogonNetworkTransitiveInformation:
 
913
                                if (r->network) {
 
914
                                        _mem_save_network_0 = NDR_PULL_GET_MEM_CTX(ndr);
 
915
                                        NDR_PULL_SET_MEM_CTX(ndr, r->network, 0);
 
916
                                        NDR_CHECK(ndr_pull_netr_NetworkInfo(ndr, NDR_SCALARS|NDR_BUFFERS, r->network));
 
917
                                        NDR_PULL_SET_MEM_CTX(ndr, _mem_save_network_0, 0);
 
918
                                }
 
919
                        break;
 
920
 
 
921
                        case NetlogonServiceTransitiveInformation:
 
922
                                if (r->password) {
 
923
                                        _mem_save_password_0 = NDR_PULL_GET_MEM_CTX(ndr);
 
924
                                        NDR_PULL_SET_MEM_CTX(ndr, r->password, 0);
 
925
                                        NDR_CHECK(ndr_pull_netr_PasswordInfo(ndr, NDR_SCALARS|NDR_BUFFERS, r->password));
 
926
                                        NDR_PULL_SET_MEM_CTX(ndr, _mem_save_password_0, 0);
 
927
                                }
 
928
                        break;
 
929
 
 
930
                        default:
 
931
                                return ndr_pull_error(ndr, NDR_ERR_BAD_SWITCH, "Bad switch value %u at %s", level, __location__);
 
932
                }
 
933
        }
 
934
        return NDR_ERR_SUCCESS;
 
935
}
 
936
 
 
937
_PUBLIC_ void ndr_print_netr_LogonLevel(struct ndr_print *ndr, const char *name, const union netr_LogonLevel *r)
 
938
{
 
939
        int level;
 
940
        level = ndr_print_get_switch_value(ndr, r);
 
941
        ndr_print_union(ndr, name, level, "netr_LogonLevel");
 
942
        switch (level) {
 
943
                case NetlogonInteractiveInformation:
 
944
                        ndr_print_ptr(ndr, "password", r->password);
 
945
                        ndr->depth++;
 
946
                        if (r->password) {
 
947
                                ndr_print_netr_PasswordInfo(ndr, "password", r->password);
 
948
                        }
 
949
                        ndr->depth--;
 
950
                break;
 
951
 
 
952
                case NetlogonNetworkInformation:
 
953
                        ndr_print_ptr(ndr, "network", r->network);
 
954
                        ndr->depth++;
 
955
                        if (r->network) {
 
956
                                ndr_print_netr_NetworkInfo(ndr, "network", r->network);
 
957
                        }
 
958
                        ndr->depth--;
 
959
                break;
 
960
 
 
961
                case NetlogonServiceInformation:
 
962
                        ndr_print_ptr(ndr, "password", r->password);
 
963
                        ndr->depth++;
 
964
                        if (r->password) {
 
965
                                ndr_print_netr_PasswordInfo(ndr, "password", r->password);
 
966
                        }
 
967
                        ndr->depth--;
 
968
                break;
 
969
 
 
970
                case NetlogonGenericInformation:
 
971
                        ndr_print_ptr(ndr, "generic", r->generic);
 
972
                        ndr->depth++;
 
973
                        if (r->generic) {
 
974
                                ndr_print_netr_GenericInfo(ndr, "generic", r->generic);
 
975
                        }
 
976
                        ndr->depth--;
 
977
                break;
 
978
 
 
979
                case NetlogonInteractiveTransitiveInformation:
 
980
                        ndr_print_ptr(ndr, "password", r->password);
 
981
                        ndr->depth++;
 
982
                        if (r->password) {
 
983
                                ndr_print_netr_PasswordInfo(ndr, "password", r->password);
 
984
                        }
 
985
                        ndr->depth--;
 
986
                break;
 
987
 
 
988
                case NetlogonNetworkTransitiveInformation:
 
989
                        ndr_print_ptr(ndr, "network", r->network);
 
990
                        ndr->depth++;
 
991
                        if (r->network) {
 
992
                                ndr_print_netr_NetworkInfo(ndr, "network", r->network);
 
993
                        }
 
994
                        ndr->depth--;
 
995
                break;
 
996
 
 
997
                case NetlogonServiceTransitiveInformation:
 
998
                        ndr_print_ptr(ndr, "password", r->password);
 
999
                        ndr->depth++;
 
1000
                        if (r->password) {
 
1001
                                ndr_print_netr_PasswordInfo(ndr, "password", r->password);
 
1002
                        }
 
1003
                        ndr->depth--;
 
1004
                break;
 
1005
 
 
1006
                default:
 
1007
                        ndr_print_bad_level(ndr, name, level);
 
1008
        }
 
1009
}
 
1010
 
 
1011
_PUBLIC_ enum ndr_err_code ndr_push_netr_UserSessionKey(struct ndr_push *ndr, int ndr_flags, const struct netr_UserSessionKey *r)
 
1012
{
 
1013
        {
 
1014
                uint32_t _flags_save_STRUCT = ndr->flags;
 
1015
                ndr_set_flags(&ndr->flags, LIBNDR_PRINT_ARRAY_HEX);
 
1016
                if (ndr_flags & NDR_SCALARS) {
 
1017
                        NDR_CHECK(ndr_push_align(ndr, 1));
 
1018
                        NDR_CHECK(ndr_push_array_uint8(ndr, NDR_SCALARS, r->key, 16));
 
1019
                        NDR_CHECK(ndr_push_trailer_align(ndr, 1));
 
1020
                }
 
1021
                if (ndr_flags & NDR_BUFFERS) {
 
1022
                }
 
1023
                ndr->flags = _flags_save_STRUCT;
 
1024
        }
 
1025
        return NDR_ERR_SUCCESS;
 
1026
}
 
1027
 
 
1028
_PUBLIC_ enum ndr_err_code ndr_pull_netr_UserSessionKey(struct ndr_pull *ndr, int ndr_flags, struct netr_UserSessionKey *r)
 
1029
{
 
1030
        {
 
1031
                uint32_t _flags_save_STRUCT = ndr->flags;
 
1032
                ndr_set_flags(&ndr->flags, LIBNDR_PRINT_ARRAY_HEX);
 
1033
                if (ndr_flags & NDR_SCALARS) {
 
1034
                        NDR_CHECK(ndr_pull_align(ndr, 1));
 
1035
                        NDR_CHECK(ndr_pull_array_uint8(ndr, NDR_SCALARS, r->key, 16));
 
1036
                        NDR_CHECK(ndr_pull_trailer_align(ndr, 1));
 
1037
                }
 
1038
                if (ndr_flags & NDR_BUFFERS) {
 
1039
                }
 
1040
                ndr->flags = _flags_save_STRUCT;
 
1041
        }
 
1042
        return NDR_ERR_SUCCESS;
 
1043
}
 
1044
 
 
1045
_PUBLIC_ void ndr_print_netr_UserSessionKey(struct ndr_print *ndr, const char *name, const struct netr_UserSessionKey *r)
 
1046
{
 
1047
        ndr_print_struct(ndr, name, "netr_UserSessionKey");
 
1048
        {
 
1049
                uint32_t _flags_save_STRUCT = ndr->flags;
 
1050
                ndr_set_flags(&ndr->flags, LIBNDR_PRINT_ARRAY_HEX);
 
1051
                ndr->depth++;
 
1052
                ndr_print_array_uint8(ndr, "key", r->key, 16);
 
1053
                ndr->depth--;
 
1054
                ndr->flags = _flags_save_STRUCT;
 
1055
        }
 
1056
}
 
1057
 
 
1058
_PUBLIC_ enum ndr_err_code ndr_push_netr_LMSessionKey(struct ndr_push *ndr, int ndr_flags, const struct netr_LMSessionKey *r)
 
1059
{
 
1060
        {
 
1061
                uint32_t _flags_save_STRUCT = ndr->flags;
 
1062
                ndr_set_flags(&ndr->flags, LIBNDR_PRINT_ARRAY_HEX);
 
1063
                if (ndr_flags & NDR_SCALARS) {
 
1064
                        NDR_CHECK(ndr_push_align(ndr, 1));
 
1065
                        NDR_CHECK(ndr_push_array_uint8(ndr, NDR_SCALARS, r->key, 8));
 
1066
                        NDR_CHECK(ndr_push_trailer_align(ndr, 1));
 
1067
                }
 
1068
                if (ndr_flags & NDR_BUFFERS) {
 
1069
                }
 
1070
                ndr->flags = _flags_save_STRUCT;
 
1071
        }
 
1072
        return NDR_ERR_SUCCESS;
 
1073
}
 
1074
 
 
1075
_PUBLIC_ enum ndr_err_code ndr_pull_netr_LMSessionKey(struct ndr_pull *ndr, int ndr_flags, struct netr_LMSessionKey *r)
 
1076
{
 
1077
        {
 
1078
                uint32_t _flags_save_STRUCT = ndr->flags;
 
1079
                ndr_set_flags(&ndr->flags, LIBNDR_PRINT_ARRAY_HEX);
 
1080
                if (ndr_flags & NDR_SCALARS) {
 
1081
                        NDR_CHECK(ndr_pull_align(ndr, 1));
 
1082
                        NDR_CHECK(ndr_pull_array_uint8(ndr, NDR_SCALARS, r->key, 8));
 
1083
                        NDR_CHECK(ndr_pull_trailer_align(ndr, 1));
 
1084
                }
 
1085
                if (ndr_flags & NDR_BUFFERS) {
 
1086
                }
 
1087
                ndr->flags = _flags_save_STRUCT;
 
1088
        }
 
1089
        return NDR_ERR_SUCCESS;
 
1090
}
 
1091
 
 
1092
_PUBLIC_ void ndr_print_netr_LMSessionKey(struct ndr_print *ndr, const char *name, const struct netr_LMSessionKey *r)
 
1093
{
 
1094
        ndr_print_struct(ndr, name, "netr_LMSessionKey");
 
1095
        {
 
1096
                uint32_t _flags_save_STRUCT = ndr->flags;
 
1097
                ndr_set_flags(&ndr->flags, LIBNDR_PRINT_ARRAY_HEX);
 
1098
                ndr->depth++;
 
1099
                ndr_print_array_uint8(ndr, "key", r->key, 8);
 
1100
                ndr->depth--;
 
1101
                ndr->flags = _flags_save_STRUCT;
 
1102
        }
 
1103
}
 
1104
 
 
1105
_PUBLIC_ enum ndr_err_code ndr_push_netr_UserFlags(struct ndr_push *ndr, int ndr_flags, uint32_t r)
 
1106
{
 
1107
        NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r));
 
1108
        return NDR_ERR_SUCCESS;
 
1109
}
 
1110
 
 
1111
_PUBLIC_ enum ndr_err_code ndr_pull_netr_UserFlags(struct ndr_pull *ndr, int ndr_flags, uint32_t *r)
 
1112
{
 
1113
        uint32_t v;
 
1114
        NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &v));
 
1115
        *r = v;
 
1116
        return NDR_ERR_SUCCESS;
 
1117
}
 
1118
 
 
1119
_PUBLIC_ void ndr_print_netr_UserFlags(struct ndr_print *ndr, const char *name, uint32_t r)
 
1120
{
 
1121
        ndr_print_uint32(ndr, name, r);
 
1122
        ndr->depth++;
 
1123
        ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "NETLOGON_GUEST", NETLOGON_GUEST, r);
 
1124
        ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "NETLOGON_NOENCRYPTION", NETLOGON_NOENCRYPTION, r);
 
1125
        ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "NETLOGON_CACHED_ACCOUNT", NETLOGON_CACHED_ACCOUNT, r);
 
1126
        ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "NETLOGON_USED_LM_PASSWORD", NETLOGON_USED_LM_PASSWORD, r);
 
1127
        ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "NETLOGON_EXTRA_SIDS", NETLOGON_EXTRA_SIDS, r);
 
1128
        ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "NETLOGON_SUBAUTH_SESSION_KEY", NETLOGON_SUBAUTH_SESSION_KEY, r);
 
1129
        ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "NETLOGON_SERVER_TRUST_ACCOUNT", NETLOGON_SERVER_TRUST_ACCOUNT, r);
 
1130
        ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "NETLOGON_NTLMV2_ENABLED", NETLOGON_NTLMV2_ENABLED, r);
 
1131
        ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "NETLOGON_RESOURCE_GROUPS", NETLOGON_RESOURCE_GROUPS, r);
 
1132
        ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "NETLOGON_PROFILE_PATH_RETURNED", NETLOGON_PROFILE_PATH_RETURNED, r);
 
1133
        ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "NETLOGON_GRACE_LOGON", NETLOGON_GRACE_LOGON, r);
 
1134
        ndr->depth--;
 
1135
}
 
1136
 
 
1137
static enum ndr_err_code ndr_push_netr_SamBaseInfo(struct ndr_push *ndr, int ndr_flags, const struct netr_SamBaseInfo *r)
 
1138
{
 
1139
        uint32_t cntr_unknown_0;
 
1140
        if (ndr_flags & NDR_SCALARS) {
 
1141
                NDR_CHECK(ndr_push_align(ndr, 5));
 
1142
                NDR_CHECK(ndr_push_NTTIME(ndr, NDR_SCALARS, r->last_logon));
 
1143
                NDR_CHECK(ndr_push_NTTIME(ndr, NDR_SCALARS, r->last_logoff));
 
1144
                NDR_CHECK(ndr_push_NTTIME(ndr, NDR_SCALARS, r->acct_expiry));
 
1145
                NDR_CHECK(ndr_push_NTTIME(ndr, NDR_SCALARS, r->last_password_change));
 
1146
                NDR_CHECK(ndr_push_NTTIME(ndr, NDR_SCALARS, r->allow_password_change));
 
1147
                NDR_CHECK(ndr_push_NTTIME(ndr, NDR_SCALARS, r->force_password_change));
 
1148
                NDR_CHECK(ndr_push_lsa_String(ndr, NDR_SCALARS, &r->account_name));
 
1149
                NDR_CHECK(ndr_push_lsa_String(ndr, NDR_SCALARS, &r->full_name));
 
1150
                NDR_CHECK(ndr_push_lsa_String(ndr, NDR_SCALARS, &r->logon_script));
 
1151
                NDR_CHECK(ndr_push_lsa_String(ndr, NDR_SCALARS, &r->profile_path));
 
1152
                NDR_CHECK(ndr_push_lsa_String(ndr, NDR_SCALARS, &r->home_directory));
 
1153
                NDR_CHECK(ndr_push_lsa_String(ndr, NDR_SCALARS, &r->home_drive));
 
1154
                NDR_CHECK(ndr_push_uint16(ndr, NDR_SCALARS, r->logon_count));
 
1155
                NDR_CHECK(ndr_push_uint16(ndr, NDR_SCALARS, r->bad_password_count));
 
1156
                NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->rid));
 
1157
                NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->primary_gid));
 
1158
                NDR_CHECK(ndr_push_samr_RidWithAttributeArray(ndr, NDR_SCALARS, &r->groups));
 
1159
                NDR_CHECK(ndr_push_netr_UserFlags(ndr, NDR_SCALARS, r->user_flags));
 
1160
                NDR_CHECK(ndr_push_netr_UserSessionKey(ndr, NDR_SCALARS, &r->key));
 
1161
                NDR_CHECK(ndr_push_lsa_StringLarge(ndr, NDR_SCALARS, &r->logon_server));
 
1162
                NDR_CHECK(ndr_push_lsa_StringLarge(ndr, NDR_SCALARS, &r->domain));
 
1163
                NDR_CHECK(ndr_push_unique_ptr(ndr, r->domain_sid));
 
1164
                NDR_CHECK(ndr_push_netr_LMSessionKey(ndr, NDR_SCALARS, &r->LMSessKey));
 
1165
                NDR_CHECK(ndr_push_samr_AcctFlags(ndr, NDR_SCALARS, r->acct_flags));
 
1166
                for (cntr_unknown_0 = 0; cntr_unknown_0 < 7; cntr_unknown_0++) {
 
1167
                        NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->unknown[cntr_unknown_0]));
 
1168
                }
 
1169
                NDR_CHECK(ndr_push_trailer_align(ndr, 5));
 
1170
        }
 
1171
        if (ndr_flags & NDR_BUFFERS) {
 
1172
                NDR_CHECK(ndr_push_lsa_String(ndr, NDR_BUFFERS, &r->account_name));
 
1173
                NDR_CHECK(ndr_push_lsa_String(ndr, NDR_BUFFERS, &r->full_name));
 
1174
                NDR_CHECK(ndr_push_lsa_String(ndr, NDR_BUFFERS, &r->logon_script));
 
1175
                NDR_CHECK(ndr_push_lsa_String(ndr, NDR_BUFFERS, &r->profile_path));
 
1176
                NDR_CHECK(ndr_push_lsa_String(ndr, NDR_BUFFERS, &r->home_directory));
 
1177
                NDR_CHECK(ndr_push_lsa_String(ndr, NDR_BUFFERS, &r->home_drive));
 
1178
                NDR_CHECK(ndr_push_samr_RidWithAttributeArray(ndr, NDR_BUFFERS, &r->groups));
 
1179
                NDR_CHECK(ndr_push_lsa_StringLarge(ndr, NDR_BUFFERS, &r->logon_server));
 
1180
                NDR_CHECK(ndr_push_lsa_StringLarge(ndr, NDR_BUFFERS, &r->domain));
 
1181
                if (r->domain_sid) {
 
1182
                        NDR_CHECK(ndr_push_dom_sid2(ndr, NDR_SCALARS|NDR_BUFFERS, r->domain_sid));
 
1183
                }
 
1184
        }
 
1185
        return NDR_ERR_SUCCESS;
 
1186
}
 
1187
 
 
1188
static enum ndr_err_code ndr_pull_netr_SamBaseInfo(struct ndr_pull *ndr, int ndr_flags, struct netr_SamBaseInfo *r)
 
1189
{
 
1190
        uint32_t _ptr_domain_sid;
 
1191
        TALLOC_CTX *_mem_save_domain_sid_0;
 
1192
        uint32_t cntr_unknown_0;
 
1193
        if (ndr_flags & NDR_SCALARS) {
 
1194
                NDR_CHECK(ndr_pull_align(ndr, 5));
 
1195
                NDR_CHECK(ndr_pull_NTTIME(ndr, NDR_SCALARS, &r->last_logon));
 
1196
                NDR_CHECK(ndr_pull_NTTIME(ndr, NDR_SCALARS, &r->last_logoff));
 
1197
                NDR_CHECK(ndr_pull_NTTIME(ndr, NDR_SCALARS, &r->acct_expiry));
 
1198
                NDR_CHECK(ndr_pull_NTTIME(ndr, NDR_SCALARS, &r->last_password_change));
 
1199
                NDR_CHECK(ndr_pull_NTTIME(ndr, NDR_SCALARS, &r->allow_password_change));
 
1200
                NDR_CHECK(ndr_pull_NTTIME(ndr, NDR_SCALARS, &r->force_password_change));
 
1201
                NDR_CHECK(ndr_pull_lsa_String(ndr, NDR_SCALARS, &r->account_name));
 
1202
                NDR_CHECK(ndr_pull_lsa_String(ndr, NDR_SCALARS, &r->full_name));
 
1203
                NDR_CHECK(ndr_pull_lsa_String(ndr, NDR_SCALARS, &r->logon_script));
 
1204
                NDR_CHECK(ndr_pull_lsa_String(ndr, NDR_SCALARS, &r->profile_path));
 
1205
                NDR_CHECK(ndr_pull_lsa_String(ndr, NDR_SCALARS, &r->home_directory));
 
1206
                NDR_CHECK(ndr_pull_lsa_String(ndr, NDR_SCALARS, &r->home_drive));
 
1207
                NDR_CHECK(ndr_pull_uint16(ndr, NDR_SCALARS, &r->logon_count));
 
1208
                NDR_CHECK(ndr_pull_uint16(ndr, NDR_SCALARS, &r->bad_password_count));
 
1209
                NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->rid));
 
1210
                NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->primary_gid));
 
1211
                NDR_CHECK(ndr_pull_samr_RidWithAttributeArray(ndr, NDR_SCALARS, &r->groups));
 
1212
                NDR_CHECK(ndr_pull_netr_UserFlags(ndr, NDR_SCALARS, &r->user_flags));
 
1213
                NDR_CHECK(ndr_pull_netr_UserSessionKey(ndr, NDR_SCALARS, &r->key));
 
1214
                NDR_CHECK(ndr_pull_lsa_StringLarge(ndr, NDR_SCALARS, &r->logon_server));
 
1215
                NDR_CHECK(ndr_pull_lsa_StringLarge(ndr, NDR_SCALARS, &r->domain));
 
1216
                NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_domain_sid));
 
1217
                if (_ptr_domain_sid) {
 
1218
                        NDR_PULL_ALLOC(ndr, r->domain_sid);
 
1219
                } else {
 
1220
                        r->domain_sid = NULL;
 
1221
                }
 
1222
                NDR_CHECK(ndr_pull_netr_LMSessionKey(ndr, NDR_SCALARS, &r->LMSessKey));
 
1223
                NDR_CHECK(ndr_pull_samr_AcctFlags(ndr, NDR_SCALARS, &r->acct_flags));
 
1224
                for (cntr_unknown_0 = 0; cntr_unknown_0 < 7; cntr_unknown_0++) {
 
1225
                        NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->unknown[cntr_unknown_0]));
 
1226
                }
 
1227
                NDR_CHECK(ndr_pull_trailer_align(ndr, 5));
 
1228
        }
 
1229
        if (ndr_flags & NDR_BUFFERS) {
 
1230
                NDR_CHECK(ndr_pull_lsa_String(ndr, NDR_BUFFERS, &r->account_name));
 
1231
                NDR_CHECK(ndr_pull_lsa_String(ndr, NDR_BUFFERS, &r->full_name));
 
1232
                NDR_CHECK(ndr_pull_lsa_String(ndr, NDR_BUFFERS, &r->logon_script));
 
1233
                NDR_CHECK(ndr_pull_lsa_String(ndr, NDR_BUFFERS, &r->profile_path));
 
1234
                NDR_CHECK(ndr_pull_lsa_String(ndr, NDR_BUFFERS, &r->home_directory));
 
1235
                NDR_CHECK(ndr_pull_lsa_String(ndr, NDR_BUFFERS, &r->home_drive));
 
1236
                NDR_CHECK(ndr_pull_samr_RidWithAttributeArray(ndr, NDR_BUFFERS, &r->groups));
 
1237
                NDR_CHECK(ndr_pull_lsa_StringLarge(ndr, NDR_BUFFERS, &r->logon_server));
 
1238
                NDR_CHECK(ndr_pull_lsa_StringLarge(ndr, NDR_BUFFERS, &r->domain));
 
1239
                if (r->domain_sid) {
 
1240
                        _mem_save_domain_sid_0 = NDR_PULL_GET_MEM_CTX(ndr);
 
1241
                        NDR_PULL_SET_MEM_CTX(ndr, r->domain_sid, 0);
 
1242
                        NDR_CHECK(ndr_pull_dom_sid2(ndr, NDR_SCALARS|NDR_BUFFERS, r->domain_sid));
 
1243
                        NDR_PULL_SET_MEM_CTX(ndr, _mem_save_domain_sid_0, 0);
 
1244
                }
 
1245
        }
 
1246
        return NDR_ERR_SUCCESS;
 
1247
}
 
1248
 
 
1249
_PUBLIC_ void ndr_print_netr_SamBaseInfo(struct ndr_print *ndr, const char *name, const struct netr_SamBaseInfo *r)
 
1250
{
 
1251
        uint32_t cntr_unknown_0;
 
1252
        ndr_print_struct(ndr, name, "netr_SamBaseInfo");
 
1253
        ndr->depth++;
 
1254
        ndr_print_NTTIME(ndr, "last_logon", r->last_logon);
 
1255
        ndr_print_NTTIME(ndr, "last_logoff", r->last_logoff);
 
1256
        ndr_print_NTTIME(ndr, "acct_expiry", r->acct_expiry);
 
1257
        ndr_print_NTTIME(ndr, "last_password_change", r->last_password_change);
 
1258
        ndr_print_NTTIME(ndr, "allow_password_change", r->allow_password_change);
 
1259
        ndr_print_NTTIME(ndr, "force_password_change", r->force_password_change);
 
1260
        ndr_print_lsa_String(ndr, "account_name", &r->account_name);
 
1261
        ndr_print_lsa_String(ndr, "full_name", &r->full_name);
 
1262
        ndr_print_lsa_String(ndr, "logon_script", &r->logon_script);
 
1263
        ndr_print_lsa_String(ndr, "profile_path", &r->profile_path);
 
1264
        ndr_print_lsa_String(ndr, "home_directory", &r->home_directory);
 
1265
        ndr_print_lsa_String(ndr, "home_drive", &r->home_drive);
 
1266
        ndr_print_uint16(ndr, "logon_count", r->logon_count);
 
1267
        ndr_print_uint16(ndr, "bad_password_count", r->bad_password_count);
 
1268
        ndr_print_uint32(ndr, "rid", r->rid);
 
1269
        ndr_print_uint32(ndr, "primary_gid", r->primary_gid);
 
1270
        ndr_print_samr_RidWithAttributeArray(ndr, "groups", &r->groups);
 
1271
        ndr_print_netr_UserFlags(ndr, "user_flags", r->user_flags);
 
1272
        ndr_print_netr_UserSessionKey(ndr, "key", &r->key);
 
1273
        ndr_print_lsa_StringLarge(ndr, "logon_server", &r->logon_server);
 
1274
        ndr_print_lsa_StringLarge(ndr, "domain", &r->domain);
 
1275
        ndr_print_ptr(ndr, "domain_sid", r->domain_sid);
 
1276
        ndr->depth++;
 
1277
        if (r->domain_sid) {
 
1278
                ndr_print_dom_sid2(ndr, "domain_sid", r->domain_sid);
 
1279
        }
 
1280
        ndr->depth--;
 
1281
        ndr_print_netr_LMSessionKey(ndr, "LMSessKey", &r->LMSessKey);
 
1282
        ndr_print_samr_AcctFlags(ndr, "acct_flags", r->acct_flags);
 
1283
        ndr->print(ndr, "%s: ARRAY(%d)", "unknown", (int)7);
 
1284
        ndr->depth++;
 
1285
        for (cntr_unknown_0=0;cntr_unknown_0<7;cntr_unknown_0++) {
 
1286
                char *idx_0=NULL;
 
1287
                if (asprintf(&idx_0, "[%d]", cntr_unknown_0) != -1) {
 
1288
                        ndr_print_uint32(ndr, "unknown", r->unknown[cntr_unknown_0]);
 
1289
                        free(idx_0);
 
1290
                }
 
1291
        }
 
1292
        ndr->depth--;
 
1293
        ndr->depth--;
 
1294
}
 
1295
 
 
1296
static enum ndr_err_code ndr_push_netr_SamInfo2(struct ndr_push *ndr, int ndr_flags, const struct netr_SamInfo2 *r)
 
1297
{
 
1298
        if (ndr_flags & NDR_SCALARS) {
 
1299
                NDR_CHECK(ndr_push_align(ndr, 5));
 
1300
                NDR_CHECK(ndr_push_netr_SamBaseInfo(ndr, NDR_SCALARS, &r->base));
 
1301
                NDR_CHECK(ndr_push_trailer_align(ndr, 5));
 
1302
        }
 
1303
        if (ndr_flags & NDR_BUFFERS) {
 
1304
                NDR_CHECK(ndr_push_netr_SamBaseInfo(ndr, NDR_BUFFERS, &r->base));
 
1305
        }
 
1306
        return NDR_ERR_SUCCESS;
 
1307
}
 
1308
 
 
1309
static enum ndr_err_code ndr_pull_netr_SamInfo2(struct ndr_pull *ndr, int ndr_flags, struct netr_SamInfo2 *r)
 
1310
{
 
1311
        if (ndr_flags & NDR_SCALARS) {
 
1312
                NDR_CHECK(ndr_pull_align(ndr, 5));
 
1313
                NDR_CHECK(ndr_pull_netr_SamBaseInfo(ndr, NDR_SCALARS, &r->base));
 
1314
                NDR_CHECK(ndr_pull_trailer_align(ndr, 5));
 
1315
        }
 
1316
        if (ndr_flags & NDR_BUFFERS) {
 
1317
                NDR_CHECK(ndr_pull_netr_SamBaseInfo(ndr, NDR_BUFFERS, &r->base));
 
1318
        }
 
1319
        return NDR_ERR_SUCCESS;
 
1320
}
 
1321
 
 
1322
_PUBLIC_ void ndr_print_netr_SamInfo2(struct ndr_print *ndr, const char *name, const struct netr_SamInfo2 *r)
 
1323
{
 
1324
        ndr_print_struct(ndr, name, "netr_SamInfo2");
 
1325
        ndr->depth++;
 
1326
        ndr_print_netr_SamBaseInfo(ndr, "base", &r->base);
 
1327
        ndr->depth--;
 
1328
}
 
1329
 
 
1330
static enum ndr_err_code ndr_push_netr_SidAttr(struct ndr_push *ndr, int ndr_flags, const struct netr_SidAttr *r)
 
1331
{
 
1332
        if (ndr_flags & NDR_SCALARS) {
 
1333
                NDR_CHECK(ndr_push_align(ndr, 5));
 
1334
                NDR_CHECK(ndr_push_unique_ptr(ndr, r->sid));
 
1335
                NDR_CHECK(ndr_push_samr_GroupAttrs(ndr, NDR_SCALARS, r->attributes));
 
1336
                NDR_CHECK(ndr_push_trailer_align(ndr, 5));
 
1337
        }
 
1338
        if (ndr_flags & NDR_BUFFERS) {
 
1339
                if (r->sid) {
 
1340
                        NDR_CHECK(ndr_push_dom_sid2(ndr, NDR_SCALARS|NDR_BUFFERS, r->sid));
 
1341
                }
 
1342
        }
 
1343
        return NDR_ERR_SUCCESS;
 
1344
}
 
1345
 
 
1346
static enum ndr_err_code ndr_pull_netr_SidAttr(struct ndr_pull *ndr, int ndr_flags, struct netr_SidAttr *r)
 
1347
{
 
1348
        uint32_t _ptr_sid;
 
1349
        TALLOC_CTX *_mem_save_sid_0;
 
1350
        if (ndr_flags & NDR_SCALARS) {
 
1351
                NDR_CHECK(ndr_pull_align(ndr, 5));
 
1352
                NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_sid));
 
1353
                if (_ptr_sid) {
 
1354
                        NDR_PULL_ALLOC(ndr, r->sid);
 
1355
                } else {
 
1356
                        r->sid = NULL;
 
1357
                }
 
1358
                NDR_CHECK(ndr_pull_samr_GroupAttrs(ndr, NDR_SCALARS, &r->attributes));
 
1359
                NDR_CHECK(ndr_pull_trailer_align(ndr, 5));
 
1360
        }
 
1361
        if (ndr_flags & NDR_BUFFERS) {
 
1362
                if (r->sid) {
 
1363
                        _mem_save_sid_0 = NDR_PULL_GET_MEM_CTX(ndr);
 
1364
                        NDR_PULL_SET_MEM_CTX(ndr, r->sid, 0);
 
1365
                        NDR_CHECK(ndr_pull_dom_sid2(ndr, NDR_SCALARS|NDR_BUFFERS, r->sid));
 
1366
                        NDR_PULL_SET_MEM_CTX(ndr, _mem_save_sid_0, 0);
 
1367
                }
 
1368
        }
 
1369
        return NDR_ERR_SUCCESS;
 
1370
}
 
1371
 
 
1372
_PUBLIC_ void ndr_print_netr_SidAttr(struct ndr_print *ndr, const char *name, const struct netr_SidAttr *r)
 
1373
{
 
1374
        ndr_print_struct(ndr, name, "netr_SidAttr");
 
1375
        ndr->depth++;
 
1376
        ndr_print_ptr(ndr, "sid", r->sid);
 
1377
        ndr->depth++;
 
1378
        if (r->sid) {
 
1379
                ndr_print_dom_sid2(ndr, "sid", r->sid);
 
1380
        }
 
1381
        ndr->depth--;
 
1382
        ndr_print_samr_GroupAttrs(ndr, "attributes", r->attributes);
 
1383
        ndr->depth--;
 
1384
}
 
1385
 
 
1386
_PUBLIC_ enum ndr_err_code ndr_push_netr_SamInfo3(struct ndr_push *ndr, int ndr_flags, const struct netr_SamInfo3 *r)
 
1387
{
 
1388
        uint32_t cntr_sids_1;
 
1389
        if (ndr_flags & NDR_SCALARS) {
 
1390
                NDR_CHECK(ndr_push_align(ndr, 5));
 
1391
                NDR_CHECK(ndr_push_netr_SamBaseInfo(ndr, NDR_SCALARS, &r->base));
 
1392
                NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->sidcount));
 
1393
                NDR_CHECK(ndr_push_unique_ptr(ndr, r->sids));
 
1394
                NDR_CHECK(ndr_push_trailer_align(ndr, 5));
 
1395
        }
 
1396
        if (ndr_flags & NDR_BUFFERS) {
 
1397
                NDR_CHECK(ndr_push_netr_SamBaseInfo(ndr, NDR_BUFFERS, &r->base));
 
1398
                if (r->sids) {
 
1399
                        NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, r->sidcount));
 
1400
                        for (cntr_sids_1 = 0; cntr_sids_1 < r->sidcount; cntr_sids_1++) {
 
1401
                                NDR_CHECK(ndr_push_netr_SidAttr(ndr, NDR_SCALARS, &r->sids[cntr_sids_1]));
 
1402
                        }
 
1403
                        for (cntr_sids_1 = 0; cntr_sids_1 < r->sidcount; cntr_sids_1++) {
 
1404
                                NDR_CHECK(ndr_push_netr_SidAttr(ndr, NDR_BUFFERS, &r->sids[cntr_sids_1]));
 
1405
                        }
 
1406
                }
 
1407
        }
 
1408
        return NDR_ERR_SUCCESS;
 
1409
}
 
1410
 
 
1411
_PUBLIC_ enum ndr_err_code ndr_pull_netr_SamInfo3(struct ndr_pull *ndr, int ndr_flags, struct netr_SamInfo3 *r)
 
1412
{
 
1413
        uint32_t _ptr_sids;
 
1414
        uint32_t cntr_sids_1;
 
1415
        TALLOC_CTX *_mem_save_sids_0;
 
1416
        TALLOC_CTX *_mem_save_sids_1;
 
1417
        if (ndr_flags & NDR_SCALARS) {
 
1418
                NDR_CHECK(ndr_pull_align(ndr, 5));
 
1419
                NDR_CHECK(ndr_pull_netr_SamBaseInfo(ndr, NDR_SCALARS, &r->base));
 
1420
                NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->sidcount));
 
1421
                NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_sids));
 
1422
                if (_ptr_sids) {
 
1423
                        NDR_PULL_ALLOC(ndr, r->sids);
 
1424
                } else {
 
1425
                        r->sids = NULL;
 
1426
                }
 
1427
                NDR_CHECK(ndr_pull_trailer_align(ndr, 5));
 
1428
        }
 
1429
        if (ndr_flags & NDR_BUFFERS) {
 
1430
                NDR_CHECK(ndr_pull_netr_SamBaseInfo(ndr, NDR_BUFFERS, &r->base));
 
1431
                if (r->sids) {
 
1432
                        _mem_save_sids_0 = NDR_PULL_GET_MEM_CTX(ndr);
 
1433
                        NDR_PULL_SET_MEM_CTX(ndr, r->sids, 0);
 
1434
                        NDR_CHECK(ndr_pull_array_size(ndr, &r->sids));
 
1435
                        NDR_PULL_ALLOC_N(ndr, r->sids, ndr_get_array_size(ndr, &r->sids));
 
1436
                        _mem_save_sids_1 = NDR_PULL_GET_MEM_CTX(ndr);
 
1437
                        NDR_PULL_SET_MEM_CTX(ndr, r->sids, 0);
 
1438
                        for (cntr_sids_1 = 0; cntr_sids_1 < r->sidcount; cntr_sids_1++) {
 
1439
                                NDR_CHECK(ndr_pull_netr_SidAttr(ndr, NDR_SCALARS, &r->sids[cntr_sids_1]));
 
1440
                        }
 
1441
                        for (cntr_sids_1 = 0; cntr_sids_1 < r->sidcount; cntr_sids_1++) {
 
1442
                                NDR_CHECK(ndr_pull_netr_SidAttr(ndr, NDR_BUFFERS, &r->sids[cntr_sids_1]));
 
1443
                        }
 
1444
                        NDR_PULL_SET_MEM_CTX(ndr, _mem_save_sids_1, 0);
 
1445
                        NDR_PULL_SET_MEM_CTX(ndr, _mem_save_sids_0, 0);
 
1446
                }
 
1447
                if (r->sids) {
 
1448
                        NDR_CHECK(ndr_check_array_size(ndr, (void*)&r->sids, r->sidcount));
 
1449
                }
 
1450
        }
 
1451
        return NDR_ERR_SUCCESS;
 
1452
}
 
1453
 
 
1454
_PUBLIC_ void ndr_print_netr_SamInfo3(struct ndr_print *ndr, const char *name, const struct netr_SamInfo3 *r)
 
1455
{
 
1456
        uint32_t cntr_sids_1;
 
1457
        ndr_print_struct(ndr, name, "netr_SamInfo3");
 
1458
        ndr->depth++;
 
1459
        ndr_print_netr_SamBaseInfo(ndr, "base", &r->base);
 
1460
        ndr_print_uint32(ndr, "sidcount", r->sidcount);
 
1461
        ndr_print_ptr(ndr, "sids", r->sids);
 
1462
        ndr->depth++;
 
1463
        if (r->sids) {
 
1464
                ndr->print(ndr, "%s: ARRAY(%d)", "sids", (int)r->sidcount);
 
1465
                ndr->depth++;
 
1466
                for (cntr_sids_1=0;cntr_sids_1<r->sidcount;cntr_sids_1++) {
 
1467
                        char *idx_1=NULL;
 
1468
                        if (asprintf(&idx_1, "[%d]", cntr_sids_1) != -1) {
 
1469
                                ndr_print_netr_SidAttr(ndr, "sids", &r->sids[cntr_sids_1]);
 
1470
                                free(idx_1);
 
1471
                        }
 
1472
                }
 
1473
                ndr->depth--;
 
1474
        }
 
1475
        ndr->depth--;
 
1476
        ndr->depth--;
 
1477
}
 
1478
 
 
1479
static enum ndr_err_code ndr_push_netr_SamInfo6(struct ndr_push *ndr, int ndr_flags, const struct netr_SamInfo6 *r)
 
1480
{
 
1481
        uint32_t cntr_sids_1;
 
1482
        uint32_t cntr_unknown4_0;
 
1483
        if (ndr_flags & NDR_SCALARS) {
 
1484
                NDR_CHECK(ndr_push_align(ndr, 5));
 
1485
                NDR_CHECK(ndr_push_netr_SamBaseInfo(ndr, NDR_SCALARS, &r->base));
 
1486
                NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->sidcount));
 
1487
                NDR_CHECK(ndr_push_unique_ptr(ndr, r->sids));
 
1488
                NDR_CHECK(ndr_push_lsa_String(ndr, NDR_SCALARS, &r->forest));
 
1489
                NDR_CHECK(ndr_push_lsa_String(ndr, NDR_SCALARS, &r->principle));
 
1490
                for (cntr_unknown4_0 = 0; cntr_unknown4_0 < 20; cntr_unknown4_0++) {
 
1491
                        NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->unknown4[cntr_unknown4_0]));
 
1492
                }
 
1493
                NDR_CHECK(ndr_push_trailer_align(ndr, 5));
 
1494
        }
 
1495
        if (ndr_flags & NDR_BUFFERS) {
 
1496
                NDR_CHECK(ndr_push_netr_SamBaseInfo(ndr, NDR_BUFFERS, &r->base));
 
1497
                if (r->sids) {
 
1498
                        NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, r->sidcount));
 
1499
                        for (cntr_sids_1 = 0; cntr_sids_1 < r->sidcount; cntr_sids_1++) {
 
1500
                                NDR_CHECK(ndr_push_netr_SidAttr(ndr, NDR_SCALARS, &r->sids[cntr_sids_1]));
 
1501
                        }
 
1502
                        for (cntr_sids_1 = 0; cntr_sids_1 < r->sidcount; cntr_sids_1++) {
 
1503
                                NDR_CHECK(ndr_push_netr_SidAttr(ndr, NDR_BUFFERS, &r->sids[cntr_sids_1]));
 
1504
                        }
 
1505
                }
 
1506
                NDR_CHECK(ndr_push_lsa_String(ndr, NDR_BUFFERS, &r->forest));
 
1507
                NDR_CHECK(ndr_push_lsa_String(ndr, NDR_BUFFERS, &r->principle));
 
1508
        }
 
1509
        return NDR_ERR_SUCCESS;
 
1510
}
 
1511
 
 
1512
static enum ndr_err_code ndr_pull_netr_SamInfo6(struct ndr_pull *ndr, int ndr_flags, struct netr_SamInfo6 *r)
 
1513
{
 
1514
        uint32_t _ptr_sids;
 
1515
        uint32_t cntr_sids_1;
 
1516
        TALLOC_CTX *_mem_save_sids_0;
 
1517
        TALLOC_CTX *_mem_save_sids_1;
 
1518
        uint32_t cntr_unknown4_0;
 
1519
        if (ndr_flags & NDR_SCALARS) {
 
1520
                NDR_CHECK(ndr_pull_align(ndr, 5));
 
1521
                NDR_CHECK(ndr_pull_netr_SamBaseInfo(ndr, NDR_SCALARS, &r->base));
 
1522
                NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->sidcount));
 
1523
                NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_sids));
 
1524
                if (_ptr_sids) {
 
1525
                        NDR_PULL_ALLOC(ndr, r->sids);
 
1526
                } else {
 
1527
                        r->sids = NULL;
 
1528
                }
 
1529
                NDR_CHECK(ndr_pull_lsa_String(ndr, NDR_SCALARS, &r->forest));
 
1530
                NDR_CHECK(ndr_pull_lsa_String(ndr, NDR_SCALARS, &r->principle));
 
1531
                for (cntr_unknown4_0 = 0; cntr_unknown4_0 < 20; cntr_unknown4_0++) {
 
1532
                        NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->unknown4[cntr_unknown4_0]));
 
1533
                }
 
1534
                NDR_CHECK(ndr_pull_trailer_align(ndr, 5));
 
1535
        }
 
1536
        if (ndr_flags & NDR_BUFFERS) {
 
1537
                NDR_CHECK(ndr_pull_netr_SamBaseInfo(ndr, NDR_BUFFERS, &r->base));
 
1538
                if (r->sids) {
 
1539
                        _mem_save_sids_0 = NDR_PULL_GET_MEM_CTX(ndr);
 
1540
                        NDR_PULL_SET_MEM_CTX(ndr, r->sids, 0);
 
1541
                        NDR_CHECK(ndr_pull_array_size(ndr, &r->sids));
 
1542
                        NDR_PULL_ALLOC_N(ndr, r->sids, ndr_get_array_size(ndr, &r->sids));
 
1543
                        _mem_save_sids_1 = NDR_PULL_GET_MEM_CTX(ndr);
 
1544
                        NDR_PULL_SET_MEM_CTX(ndr, r->sids, 0);
 
1545
                        for (cntr_sids_1 = 0; cntr_sids_1 < r->sidcount; cntr_sids_1++) {
 
1546
                                NDR_CHECK(ndr_pull_netr_SidAttr(ndr, NDR_SCALARS, &r->sids[cntr_sids_1]));
 
1547
                        }
 
1548
                        for (cntr_sids_1 = 0; cntr_sids_1 < r->sidcount; cntr_sids_1++) {
 
1549
                                NDR_CHECK(ndr_pull_netr_SidAttr(ndr, NDR_BUFFERS, &r->sids[cntr_sids_1]));
 
1550
                        }
 
1551
                        NDR_PULL_SET_MEM_CTX(ndr, _mem_save_sids_1, 0);
 
1552
                        NDR_PULL_SET_MEM_CTX(ndr, _mem_save_sids_0, 0);
 
1553
                }
 
1554
                NDR_CHECK(ndr_pull_lsa_String(ndr, NDR_BUFFERS, &r->forest));
 
1555
                NDR_CHECK(ndr_pull_lsa_String(ndr, NDR_BUFFERS, &r->principle));
 
1556
                if (r->sids) {
 
1557
                        NDR_CHECK(ndr_check_array_size(ndr, (void*)&r->sids, r->sidcount));
 
1558
                }
 
1559
        }
 
1560
        return NDR_ERR_SUCCESS;
 
1561
}
 
1562
 
 
1563
_PUBLIC_ void ndr_print_netr_SamInfo6(struct ndr_print *ndr, const char *name, const struct netr_SamInfo6 *r)
 
1564
{
 
1565
        uint32_t cntr_sids_1;
 
1566
        uint32_t cntr_unknown4_0;
 
1567
        ndr_print_struct(ndr, name, "netr_SamInfo6");
 
1568
        ndr->depth++;
 
1569
        ndr_print_netr_SamBaseInfo(ndr, "base", &r->base);
 
1570
        ndr_print_uint32(ndr, "sidcount", r->sidcount);
 
1571
        ndr_print_ptr(ndr, "sids", r->sids);
 
1572
        ndr->depth++;
 
1573
        if (r->sids) {
 
1574
                ndr->print(ndr, "%s: ARRAY(%d)", "sids", (int)r->sidcount);
 
1575
                ndr->depth++;
 
1576
                for (cntr_sids_1=0;cntr_sids_1<r->sidcount;cntr_sids_1++) {
 
1577
                        char *idx_1=NULL;
 
1578
                        if (asprintf(&idx_1, "[%d]", cntr_sids_1) != -1) {
 
1579
                                ndr_print_netr_SidAttr(ndr, "sids", &r->sids[cntr_sids_1]);
 
1580
                                free(idx_1);
 
1581
                        }
 
1582
                }
 
1583
                ndr->depth--;
 
1584
        }
 
1585
        ndr->depth--;
 
1586
        ndr_print_lsa_String(ndr, "forest", &r->forest);
 
1587
        ndr_print_lsa_String(ndr, "principle", &r->principle);
 
1588
        ndr->print(ndr, "%s: ARRAY(%d)", "unknown4", (int)20);
 
1589
        ndr->depth++;
 
1590
        for (cntr_unknown4_0=0;cntr_unknown4_0<20;cntr_unknown4_0++) {
 
1591
                char *idx_0=NULL;
 
1592
                if (asprintf(&idx_0, "[%d]", cntr_unknown4_0) != -1) {
 
1593
                        ndr_print_uint32(ndr, "unknown4", r->unknown4[cntr_unknown4_0]);
 
1594
                        free(idx_0);
 
1595
                }
 
1596
        }
 
1597
        ndr->depth--;
 
1598
        ndr->depth--;
 
1599
}
 
1600
 
 
1601
static enum ndr_err_code ndr_push_netr_PacInfo(struct ndr_push *ndr, int ndr_flags, const struct netr_PacInfo *r)
 
1602
{
 
1603
        uint32_t cntr_expansionroom_0;
 
1604
        if (ndr_flags & NDR_SCALARS) {
 
1605
                NDR_CHECK(ndr_push_align(ndr, 5));
 
1606
                NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->pac_size));
 
1607
                NDR_CHECK(ndr_push_unique_ptr(ndr, r->pac));
 
1608
                NDR_CHECK(ndr_push_lsa_String(ndr, NDR_SCALARS, &r->logon_domain));
 
1609
                NDR_CHECK(ndr_push_lsa_String(ndr, NDR_SCALARS, &r->logon_server));
 
1610
                NDR_CHECK(ndr_push_lsa_String(ndr, NDR_SCALARS, &r->principal_name));
 
1611
                NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->auth_size));
 
1612
                NDR_CHECK(ndr_push_unique_ptr(ndr, r->auth));
 
1613
                NDR_CHECK(ndr_push_netr_UserSessionKey(ndr, NDR_SCALARS, &r->user_session_key));
 
1614
                for (cntr_expansionroom_0 = 0; cntr_expansionroom_0 < 10; cntr_expansionroom_0++) {
 
1615
                        NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->expansionroom[cntr_expansionroom_0]));
 
1616
                }
 
1617
                NDR_CHECK(ndr_push_lsa_String(ndr, NDR_SCALARS, &r->unknown1));
 
1618
                NDR_CHECK(ndr_push_lsa_String(ndr, NDR_SCALARS, &r->unknown2));
 
1619
                NDR_CHECK(ndr_push_lsa_String(ndr, NDR_SCALARS, &r->unknown3));
 
1620
                NDR_CHECK(ndr_push_lsa_String(ndr, NDR_SCALARS, &r->unknown4));
 
1621
                NDR_CHECK(ndr_push_trailer_align(ndr, 5));
 
1622
        }
 
1623
        if (ndr_flags & NDR_BUFFERS) {
 
1624
                if (r->pac) {
 
1625
                        NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, r->pac_size));
 
1626
                        NDR_CHECK(ndr_push_array_uint8(ndr, NDR_SCALARS, r->pac, r->pac_size));
 
1627
                }
 
1628
                NDR_CHECK(ndr_push_lsa_String(ndr, NDR_BUFFERS, &r->logon_domain));
 
1629
                NDR_CHECK(ndr_push_lsa_String(ndr, NDR_BUFFERS, &r->logon_server));
 
1630
                NDR_CHECK(ndr_push_lsa_String(ndr, NDR_BUFFERS, &r->principal_name));
 
1631
                if (r->auth) {
 
1632
                        NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, r->auth_size));
 
1633
                        NDR_CHECK(ndr_push_array_uint8(ndr, NDR_SCALARS, r->auth, r->auth_size));
 
1634
                }
 
1635
                NDR_CHECK(ndr_push_lsa_String(ndr, NDR_BUFFERS, &r->unknown1));
 
1636
                NDR_CHECK(ndr_push_lsa_String(ndr, NDR_BUFFERS, &r->unknown2));
 
1637
                NDR_CHECK(ndr_push_lsa_String(ndr, NDR_BUFFERS, &r->unknown3));
 
1638
                NDR_CHECK(ndr_push_lsa_String(ndr, NDR_BUFFERS, &r->unknown4));
 
1639
        }
 
1640
        return NDR_ERR_SUCCESS;
 
1641
}
 
1642
 
 
1643
static enum ndr_err_code ndr_pull_netr_PacInfo(struct ndr_pull *ndr, int ndr_flags, struct netr_PacInfo *r)
 
1644
{
 
1645
        uint32_t _ptr_pac;
 
1646
        TALLOC_CTX *_mem_save_pac_0;
 
1647
        uint32_t _ptr_auth;
 
1648
        TALLOC_CTX *_mem_save_auth_0;
 
1649
        uint32_t cntr_expansionroom_0;
 
1650
        if (ndr_flags & NDR_SCALARS) {
 
1651
                NDR_CHECK(ndr_pull_align(ndr, 5));
 
1652
                NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->pac_size));
 
1653
                NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_pac));
 
1654
                if (_ptr_pac) {
 
1655
                        NDR_PULL_ALLOC(ndr, r->pac);
 
1656
                } else {
 
1657
                        r->pac = NULL;
 
1658
                }
 
1659
                NDR_CHECK(ndr_pull_lsa_String(ndr, NDR_SCALARS, &r->logon_domain));
 
1660
                NDR_CHECK(ndr_pull_lsa_String(ndr, NDR_SCALARS, &r->logon_server));
 
1661
                NDR_CHECK(ndr_pull_lsa_String(ndr, NDR_SCALARS, &r->principal_name));
 
1662
                NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->auth_size));
 
1663
                NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_auth));
 
1664
                if (_ptr_auth) {
 
1665
                        NDR_PULL_ALLOC(ndr, r->auth);
 
1666
                } else {
 
1667
                        r->auth = NULL;
 
1668
                }
 
1669
                NDR_CHECK(ndr_pull_netr_UserSessionKey(ndr, NDR_SCALARS, &r->user_session_key));
 
1670
                for (cntr_expansionroom_0 = 0; cntr_expansionroom_0 < 10; cntr_expansionroom_0++) {
 
1671
                        NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->expansionroom[cntr_expansionroom_0]));
 
1672
                }
 
1673
                NDR_CHECK(ndr_pull_lsa_String(ndr, NDR_SCALARS, &r->unknown1));
 
1674
                NDR_CHECK(ndr_pull_lsa_String(ndr, NDR_SCALARS, &r->unknown2));
 
1675
                NDR_CHECK(ndr_pull_lsa_String(ndr, NDR_SCALARS, &r->unknown3));
 
1676
                NDR_CHECK(ndr_pull_lsa_String(ndr, NDR_SCALARS, &r->unknown4));
 
1677
                NDR_CHECK(ndr_pull_trailer_align(ndr, 5));
 
1678
        }
 
1679
        if (ndr_flags & NDR_BUFFERS) {
 
1680
                if (r->pac) {
 
1681
                        _mem_save_pac_0 = NDR_PULL_GET_MEM_CTX(ndr);
 
1682
                        NDR_PULL_SET_MEM_CTX(ndr, r->pac, 0);
 
1683
                        NDR_CHECK(ndr_pull_array_size(ndr, &r->pac));
 
1684
                        NDR_PULL_ALLOC_N(ndr, r->pac, ndr_get_array_size(ndr, &r->pac));
 
1685
                        NDR_CHECK(ndr_pull_array_uint8(ndr, NDR_SCALARS, r->pac, ndr_get_array_size(ndr, &r->pac)));
 
1686
                        NDR_PULL_SET_MEM_CTX(ndr, _mem_save_pac_0, 0);
 
1687
                }
 
1688
                NDR_CHECK(ndr_pull_lsa_String(ndr, NDR_BUFFERS, &r->logon_domain));
 
1689
                NDR_CHECK(ndr_pull_lsa_String(ndr, NDR_BUFFERS, &r->logon_server));
 
1690
                NDR_CHECK(ndr_pull_lsa_String(ndr, NDR_BUFFERS, &r->principal_name));
 
1691
                if (r->auth) {
 
1692
                        _mem_save_auth_0 = NDR_PULL_GET_MEM_CTX(ndr);
 
1693
                        NDR_PULL_SET_MEM_CTX(ndr, r->auth, 0);
 
1694
                        NDR_CHECK(ndr_pull_array_size(ndr, &r->auth));
 
1695
                        NDR_PULL_ALLOC_N(ndr, r->auth, ndr_get_array_size(ndr, &r->auth));
 
1696
                        NDR_CHECK(ndr_pull_array_uint8(ndr, NDR_SCALARS, r->auth, ndr_get_array_size(ndr, &r->auth)));
 
1697
                        NDR_PULL_SET_MEM_CTX(ndr, _mem_save_auth_0, 0);
 
1698
                }
 
1699
                NDR_CHECK(ndr_pull_lsa_String(ndr, NDR_BUFFERS, &r->unknown1));
 
1700
                NDR_CHECK(ndr_pull_lsa_String(ndr, NDR_BUFFERS, &r->unknown2));
 
1701
                NDR_CHECK(ndr_pull_lsa_String(ndr, NDR_BUFFERS, &r->unknown3));
 
1702
                NDR_CHECK(ndr_pull_lsa_String(ndr, NDR_BUFFERS, &r->unknown4));
 
1703
                if (r->pac) {
 
1704
                        NDR_CHECK(ndr_check_array_size(ndr, (void*)&r->pac, r->pac_size));
 
1705
                }
 
1706
                if (r->auth) {
 
1707
                        NDR_CHECK(ndr_check_array_size(ndr, (void*)&r->auth, r->auth_size));
 
1708
                }
 
1709
        }
 
1710
        return NDR_ERR_SUCCESS;
 
1711
}
 
1712
 
 
1713
_PUBLIC_ void ndr_print_netr_PacInfo(struct ndr_print *ndr, const char *name, const struct netr_PacInfo *r)
 
1714
{
 
1715
        uint32_t cntr_expansionroom_0;
 
1716
        ndr_print_struct(ndr, name, "netr_PacInfo");
 
1717
        ndr->depth++;
 
1718
        ndr_print_uint32(ndr, "pac_size", r->pac_size);
 
1719
        ndr_print_ptr(ndr, "pac", r->pac);
 
1720
        ndr->depth++;
 
1721
        if (r->pac) {
 
1722
                ndr_print_array_uint8(ndr, "pac", r->pac, r->pac_size);
 
1723
        }
 
1724
        ndr->depth--;
 
1725
        ndr_print_lsa_String(ndr, "logon_domain", &r->logon_domain);
 
1726
        ndr_print_lsa_String(ndr, "logon_server", &r->logon_server);
 
1727
        ndr_print_lsa_String(ndr, "principal_name", &r->principal_name);
 
1728
        ndr_print_uint32(ndr, "auth_size", r->auth_size);
 
1729
        ndr_print_ptr(ndr, "auth", r->auth);
 
1730
        ndr->depth++;
 
1731
        if (r->auth) {
 
1732
                ndr_print_array_uint8(ndr, "auth", r->auth, r->auth_size);
 
1733
        }
 
1734
        ndr->depth--;
 
1735
        ndr_print_netr_UserSessionKey(ndr, "user_session_key", &r->user_session_key);
 
1736
        ndr->print(ndr, "%s: ARRAY(%d)", "expansionroom", (int)10);
 
1737
        ndr->depth++;
 
1738
        for (cntr_expansionroom_0=0;cntr_expansionroom_0<10;cntr_expansionroom_0++) {
 
1739
                char *idx_0=NULL;
 
1740
                if (asprintf(&idx_0, "[%d]", cntr_expansionroom_0) != -1) {
 
1741
                        ndr_print_uint32(ndr, "expansionroom", r->expansionroom[cntr_expansionroom_0]);
 
1742
                        free(idx_0);
 
1743
                }
 
1744
        }
 
1745
        ndr->depth--;
 
1746
        ndr_print_lsa_String(ndr, "unknown1", &r->unknown1);
 
1747
        ndr_print_lsa_String(ndr, "unknown2", &r->unknown2);
 
1748
        ndr_print_lsa_String(ndr, "unknown3", &r->unknown3);
 
1749
        ndr_print_lsa_String(ndr, "unknown4", &r->unknown4);
 
1750
        ndr->depth--;
 
1751
}
 
1752
 
 
1753
static enum ndr_err_code ndr_push_netr_GenericInfo2(struct ndr_push *ndr, int ndr_flags, const struct netr_GenericInfo2 *r)
 
1754
{
 
1755
        {
 
1756
                uint32_t _flags_save_STRUCT = ndr->flags;
 
1757
                ndr_set_flags(&ndr->flags, LIBNDR_PRINT_ARRAY_HEX);
 
1758
                if (ndr_flags & NDR_SCALARS) {
 
1759
                        NDR_CHECK(ndr_push_align(ndr, 5));
 
1760
                        NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->length));
 
1761
                        NDR_CHECK(ndr_push_unique_ptr(ndr, r->data));
 
1762
                        NDR_CHECK(ndr_push_trailer_align(ndr, 5));
 
1763
                }
 
1764
                if (ndr_flags & NDR_BUFFERS) {
 
1765
                        if (r->data) {
 
1766
                                NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, r->length));
 
1767
                                NDR_CHECK(ndr_push_array_uint8(ndr, NDR_SCALARS, r->data, r->length));
 
1768
                        }
 
1769
                }
 
1770
                ndr->flags = _flags_save_STRUCT;
 
1771
        }
 
1772
        return NDR_ERR_SUCCESS;
 
1773
}
 
1774
 
 
1775
static enum ndr_err_code ndr_pull_netr_GenericInfo2(struct ndr_pull *ndr, int ndr_flags, struct netr_GenericInfo2 *r)
 
1776
{
 
1777
        uint32_t _ptr_data;
 
1778
        TALLOC_CTX *_mem_save_data_0;
 
1779
        {
 
1780
                uint32_t _flags_save_STRUCT = ndr->flags;
 
1781
                ndr_set_flags(&ndr->flags, LIBNDR_PRINT_ARRAY_HEX);
 
1782
                if (ndr_flags & NDR_SCALARS) {
 
1783
                        NDR_CHECK(ndr_pull_align(ndr, 5));
 
1784
                        NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->length));
 
1785
                        NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_data));
 
1786
                        if (_ptr_data) {
 
1787
                                NDR_PULL_ALLOC(ndr, r->data);
 
1788
                        } else {
 
1789
                                r->data = NULL;
 
1790
                        }
 
1791
                        NDR_CHECK(ndr_pull_trailer_align(ndr, 5));
 
1792
                }
 
1793
                if (ndr_flags & NDR_BUFFERS) {
 
1794
                        if (r->data) {
 
1795
                                _mem_save_data_0 = NDR_PULL_GET_MEM_CTX(ndr);
 
1796
                                NDR_PULL_SET_MEM_CTX(ndr, r->data, 0);
 
1797
                                NDR_CHECK(ndr_pull_array_size(ndr, &r->data));
 
1798
                                NDR_PULL_ALLOC_N(ndr, r->data, ndr_get_array_size(ndr, &r->data));
 
1799
                                NDR_CHECK(ndr_pull_array_uint8(ndr, NDR_SCALARS, r->data, ndr_get_array_size(ndr, &r->data)));
 
1800
                                NDR_PULL_SET_MEM_CTX(ndr, _mem_save_data_0, 0);
 
1801
                        }
 
1802
                        if (r->data) {
 
1803
                                NDR_CHECK(ndr_check_array_size(ndr, (void*)&r->data, r->length));
 
1804
                        }
 
1805
                }
 
1806
                ndr->flags = _flags_save_STRUCT;
 
1807
        }
 
1808
        return NDR_ERR_SUCCESS;
 
1809
}
 
1810
 
 
1811
_PUBLIC_ void ndr_print_netr_GenericInfo2(struct ndr_print *ndr, const char *name, const struct netr_GenericInfo2 *r)
 
1812
{
 
1813
        ndr_print_struct(ndr, name, "netr_GenericInfo2");
 
1814
        {
 
1815
                uint32_t _flags_save_STRUCT = ndr->flags;
 
1816
                ndr_set_flags(&ndr->flags, LIBNDR_PRINT_ARRAY_HEX);
 
1817
                ndr->depth++;
 
1818
                ndr_print_uint32(ndr, "length", r->length);
 
1819
                ndr_print_ptr(ndr, "data", r->data);
 
1820
                ndr->depth++;
 
1821
                if (r->data) {
 
1822
                        ndr_print_array_uint8(ndr, "data", r->data, r->length);
 
1823
                }
 
1824
                ndr->depth--;
 
1825
                ndr->depth--;
 
1826
                ndr->flags = _flags_save_STRUCT;
 
1827
        }
 
1828
}
 
1829
 
 
1830
_PUBLIC_ enum ndr_err_code ndr_push_netr_Validation(struct ndr_push *ndr, int ndr_flags, const union netr_Validation *r)
 
1831
{
 
1832
        if (ndr_flags & NDR_SCALARS) {
 
1833
                int level = ndr_push_get_switch_value(ndr, r);
 
1834
                NDR_CHECK(ndr_push_uint16(ndr, NDR_SCALARS, level));
 
1835
                NDR_CHECK(ndr_push_union_align(ndr, 5));
 
1836
                switch (level) {
 
1837
                        case NetlogonValidationSamInfo: {
 
1838
                                NDR_CHECK(ndr_push_unique_ptr(ndr, r->sam2));
 
1839
                        break; }
 
1840
 
 
1841
                        case NetlogonValidationSamInfo2: {
 
1842
                                NDR_CHECK(ndr_push_unique_ptr(ndr, r->sam3));
 
1843
                        break; }
 
1844
 
 
1845
                        case 4: {
 
1846
                                NDR_CHECK(ndr_push_unique_ptr(ndr, r->pac));
 
1847
                        break; }
 
1848
 
 
1849
                        case NetlogonValidationGenericInfo2: {
 
1850
                                NDR_CHECK(ndr_push_unique_ptr(ndr, r->generic));
 
1851
                        break; }
 
1852
 
 
1853
                        case NetlogonValidationSamInfo4: {
 
1854
                                NDR_CHECK(ndr_push_unique_ptr(ndr, r->sam6));
 
1855
                        break; }
 
1856
 
 
1857
                        default:
 
1858
                                return ndr_push_error(ndr, NDR_ERR_BAD_SWITCH, "Bad switch value %u at %s", level, __location__);
 
1859
                }
 
1860
        }
 
1861
        if (ndr_flags & NDR_BUFFERS) {
 
1862
                int level = ndr_push_get_switch_value(ndr, r);
 
1863
                switch (level) {
 
1864
                        case NetlogonValidationSamInfo:
 
1865
                                if (r->sam2) {
 
1866
                                        NDR_CHECK(ndr_push_netr_SamInfo2(ndr, NDR_SCALARS|NDR_BUFFERS, r->sam2));
 
1867
                                }
 
1868
                        break;
 
1869
 
 
1870
                        case NetlogonValidationSamInfo2:
 
1871
                                if (r->sam3) {
 
1872
                                        NDR_CHECK(ndr_push_netr_SamInfo3(ndr, NDR_SCALARS|NDR_BUFFERS, r->sam3));
 
1873
                                }
 
1874
                        break;
 
1875
 
 
1876
                        case 4:
 
1877
                                if (r->pac) {
 
1878
                                        NDR_CHECK(ndr_push_netr_PacInfo(ndr, NDR_SCALARS|NDR_BUFFERS, r->pac));
 
1879
                                }
 
1880
                        break;
 
1881
 
 
1882
                        case NetlogonValidationGenericInfo2:
 
1883
                                if (r->generic) {
 
1884
                                        NDR_CHECK(ndr_push_netr_GenericInfo2(ndr, NDR_SCALARS|NDR_BUFFERS, r->generic));
 
1885
                                }
 
1886
                        break;
 
1887
 
 
1888
                        case NetlogonValidationSamInfo4:
 
1889
                                if (r->sam6) {
 
1890
                                        NDR_CHECK(ndr_push_netr_SamInfo6(ndr, NDR_SCALARS|NDR_BUFFERS, r->sam6));
 
1891
                                }
 
1892
                        break;
 
1893
 
 
1894
                        default:
 
1895
                                return ndr_push_error(ndr, NDR_ERR_BAD_SWITCH, "Bad switch value %u at %s", level, __location__);
 
1896
                }
 
1897
        }
 
1898
        return NDR_ERR_SUCCESS;
 
1899
}
 
1900
 
 
1901
_PUBLIC_ enum ndr_err_code ndr_pull_netr_Validation(struct ndr_pull *ndr, int ndr_flags, union netr_Validation *r)
 
1902
{
 
1903
        int level;
 
1904
        uint16_t _level;
 
1905
        TALLOC_CTX *_mem_save_sam2_0;
 
1906
        TALLOC_CTX *_mem_save_sam3_0;
 
1907
        TALLOC_CTX *_mem_save_pac_0;
 
1908
        TALLOC_CTX *_mem_save_generic_0;
 
1909
        TALLOC_CTX *_mem_save_sam6_0;
 
1910
        level = ndr_pull_get_switch_value(ndr, r);
 
1911
        if (ndr_flags & NDR_SCALARS) {
 
1912
                NDR_CHECK(ndr_pull_uint16(ndr, NDR_SCALARS, &_level));
 
1913
                if (_level != level) {
 
1914
                        return ndr_pull_error(ndr, NDR_ERR_BAD_SWITCH, "Bad switch value %u for r at %s", _level, __location__);
 
1915
                }
 
1916
                NDR_CHECK(ndr_pull_union_align(ndr, 5));
 
1917
                switch (level) {
 
1918
                        case NetlogonValidationSamInfo: {
 
1919
                                uint32_t _ptr_sam2;
 
1920
                                NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_sam2));
 
1921
                                if (_ptr_sam2) {
 
1922
                                        NDR_PULL_ALLOC(ndr, r->sam2);
 
1923
                                } else {
 
1924
                                        r->sam2 = NULL;
 
1925
                                }
 
1926
                        break; }
 
1927
 
 
1928
                        case NetlogonValidationSamInfo2: {
 
1929
                                uint32_t _ptr_sam3;
 
1930
                                NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_sam3));
 
1931
                                if (_ptr_sam3) {
 
1932
                                        NDR_PULL_ALLOC(ndr, r->sam3);
 
1933
                                } else {
 
1934
                                        r->sam3 = NULL;
 
1935
                                }
 
1936
                        break; }
 
1937
 
 
1938
                        case 4: {
 
1939
                                uint32_t _ptr_pac;
 
1940
                                NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_pac));
 
1941
                                if (_ptr_pac) {
 
1942
                                        NDR_PULL_ALLOC(ndr, r->pac);
 
1943
                                } else {
 
1944
                                        r->pac = NULL;
 
1945
                                }
 
1946
                        break; }
 
1947
 
 
1948
                        case NetlogonValidationGenericInfo2: {
 
1949
                                uint32_t _ptr_generic;
 
1950
                                NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_generic));
 
1951
                                if (_ptr_generic) {
 
1952
                                        NDR_PULL_ALLOC(ndr, r->generic);
 
1953
                                } else {
 
1954
                                        r->generic = NULL;
 
1955
                                }
 
1956
                        break; }
 
1957
 
 
1958
                        case NetlogonValidationSamInfo4: {
 
1959
                                uint32_t _ptr_sam6;
 
1960
                                NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_sam6));
 
1961
                                if (_ptr_sam6) {
 
1962
                                        NDR_PULL_ALLOC(ndr, r->sam6);
 
1963
                                } else {
 
1964
                                        r->sam6 = NULL;
 
1965
                                }
 
1966
                        break; }
 
1967
 
 
1968
                        default:
 
1969
                                return ndr_pull_error(ndr, NDR_ERR_BAD_SWITCH, "Bad switch value %u at %s", level, __location__);
 
1970
                }
 
1971
        }
 
1972
        if (ndr_flags & NDR_BUFFERS) {
 
1973
                switch (level) {
 
1974
                        case NetlogonValidationSamInfo:
 
1975
                                if (r->sam2) {
 
1976
                                        _mem_save_sam2_0 = NDR_PULL_GET_MEM_CTX(ndr);
 
1977
                                        NDR_PULL_SET_MEM_CTX(ndr, r->sam2, 0);
 
1978
                                        NDR_CHECK(ndr_pull_netr_SamInfo2(ndr, NDR_SCALARS|NDR_BUFFERS, r->sam2));
 
1979
                                        NDR_PULL_SET_MEM_CTX(ndr, _mem_save_sam2_0, 0);
 
1980
                                }
 
1981
                        break;
 
1982
 
 
1983
                        case NetlogonValidationSamInfo2:
 
1984
                                if (r->sam3) {
 
1985
                                        _mem_save_sam3_0 = NDR_PULL_GET_MEM_CTX(ndr);
 
1986
                                        NDR_PULL_SET_MEM_CTX(ndr, r->sam3, 0);
 
1987
                                        NDR_CHECK(ndr_pull_netr_SamInfo3(ndr, NDR_SCALARS|NDR_BUFFERS, r->sam3));
 
1988
                                        NDR_PULL_SET_MEM_CTX(ndr, _mem_save_sam3_0, 0);
 
1989
                                }
 
1990
                        break;
 
1991
 
 
1992
                        case 4:
 
1993
                                if (r->pac) {
 
1994
                                        _mem_save_pac_0 = NDR_PULL_GET_MEM_CTX(ndr);
 
1995
                                        NDR_PULL_SET_MEM_CTX(ndr, r->pac, 0);
 
1996
                                        NDR_CHECK(ndr_pull_netr_PacInfo(ndr, NDR_SCALARS|NDR_BUFFERS, r->pac));
 
1997
                                        NDR_PULL_SET_MEM_CTX(ndr, _mem_save_pac_0, 0);
 
1998
                                }
 
1999
                        break;
 
2000
 
 
2001
                        case NetlogonValidationGenericInfo2:
 
2002
                                if (r->generic) {
 
2003
                                        _mem_save_generic_0 = NDR_PULL_GET_MEM_CTX(ndr);
 
2004
                                        NDR_PULL_SET_MEM_CTX(ndr, r->generic, 0);
 
2005
                                        NDR_CHECK(ndr_pull_netr_GenericInfo2(ndr, NDR_SCALARS|NDR_BUFFERS, r->generic));
 
2006
                                        NDR_PULL_SET_MEM_CTX(ndr, _mem_save_generic_0, 0);
 
2007
                                }
 
2008
                        break;
 
2009
 
 
2010
                        case NetlogonValidationSamInfo4:
 
2011
                                if (r->sam6) {
 
2012
                                        _mem_save_sam6_0 = NDR_PULL_GET_MEM_CTX(ndr);
 
2013
                                        NDR_PULL_SET_MEM_CTX(ndr, r->sam6, 0);
 
2014
                                        NDR_CHECK(ndr_pull_netr_SamInfo6(ndr, NDR_SCALARS|NDR_BUFFERS, r->sam6));
 
2015
                                        NDR_PULL_SET_MEM_CTX(ndr, _mem_save_sam6_0, 0);
 
2016
                                }
 
2017
                        break;
 
2018
 
 
2019
                        default:
 
2020
                                return ndr_pull_error(ndr, NDR_ERR_BAD_SWITCH, "Bad switch value %u at %s", level, __location__);
 
2021
                }
 
2022
        }
 
2023
        return NDR_ERR_SUCCESS;
 
2024
}
 
2025
 
 
2026
_PUBLIC_ void ndr_print_netr_Validation(struct ndr_print *ndr, const char *name, const union netr_Validation *r)
 
2027
{
 
2028
        int level;
 
2029
        level = ndr_print_get_switch_value(ndr, r);
 
2030
        ndr_print_union(ndr, name, level, "netr_Validation");
 
2031
        switch (level) {
 
2032
                case NetlogonValidationSamInfo:
 
2033
                        ndr_print_ptr(ndr, "sam2", r->sam2);
 
2034
                        ndr->depth++;
 
2035
                        if (r->sam2) {
 
2036
                                ndr_print_netr_SamInfo2(ndr, "sam2", r->sam2);
 
2037
                        }
 
2038
                        ndr->depth--;
 
2039
                break;
 
2040
 
 
2041
                case NetlogonValidationSamInfo2:
 
2042
                        ndr_print_ptr(ndr, "sam3", r->sam3);
 
2043
                        ndr->depth++;
 
2044
                        if (r->sam3) {
 
2045
                                ndr_print_netr_SamInfo3(ndr, "sam3", r->sam3);
 
2046
                        }
 
2047
                        ndr->depth--;
 
2048
                break;
 
2049
 
 
2050
                case 4:
 
2051
                        ndr_print_ptr(ndr, "pac", r->pac);
 
2052
                        ndr->depth++;
 
2053
                        if (r->pac) {
 
2054
                                ndr_print_netr_PacInfo(ndr, "pac", r->pac);
 
2055
                        }
 
2056
                        ndr->depth--;
 
2057
                break;
 
2058
 
 
2059
                case NetlogonValidationGenericInfo2:
 
2060
                        ndr_print_ptr(ndr, "generic", r->generic);
 
2061
                        ndr->depth++;
 
2062
                        if (r->generic) {
 
2063
                                ndr_print_netr_GenericInfo2(ndr, "generic", r->generic);
 
2064
                        }
 
2065
                        ndr->depth--;
 
2066
                break;
 
2067
 
 
2068
                case NetlogonValidationSamInfo4:
 
2069
                        ndr_print_ptr(ndr, "sam6", r->sam6);
 
2070
                        ndr->depth++;
 
2071
                        if (r->sam6) {
 
2072
                                ndr_print_netr_SamInfo6(ndr, "sam6", r->sam6);
 
2073
                        }
 
2074
                        ndr->depth--;
 
2075
                break;
 
2076
 
 
2077
                default:
 
2078
                        ndr_print_bad_level(ndr, name, level);
 
2079
        }
 
2080
}
 
2081
 
 
2082
_PUBLIC_ enum ndr_err_code ndr_push_netr_Credential(struct ndr_push *ndr, int ndr_flags, const struct netr_Credential *r)
 
2083
{
 
2084
        {
 
2085
                uint32_t _flags_save_STRUCT = ndr->flags;
 
2086
                ndr_set_flags(&ndr->flags, LIBNDR_PRINT_ARRAY_HEX);
 
2087
                if (ndr_flags & NDR_SCALARS) {
 
2088
                        NDR_CHECK(ndr_push_align(ndr, 1));
 
2089
                        NDR_CHECK(ndr_push_array_uint8(ndr, NDR_SCALARS, r->data, 8));
 
2090
                        NDR_CHECK(ndr_push_trailer_align(ndr, 1));
 
2091
                }
 
2092
                if (ndr_flags & NDR_BUFFERS) {
 
2093
                }
 
2094
                ndr->flags = _flags_save_STRUCT;
 
2095
        }
 
2096
        return NDR_ERR_SUCCESS;
 
2097
}
 
2098
 
 
2099
_PUBLIC_ enum ndr_err_code ndr_pull_netr_Credential(struct ndr_pull *ndr, int ndr_flags, struct netr_Credential *r)
 
2100
{
 
2101
        {
 
2102
                uint32_t _flags_save_STRUCT = ndr->flags;
 
2103
                ndr_set_flags(&ndr->flags, LIBNDR_PRINT_ARRAY_HEX);
 
2104
                if (ndr_flags & NDR_SCALARS) {
 
2105
                        NDR_CHECK(ndr_pull_align(ndr, 1));
 
2106
                        NDR_CHECK(ndr_pull_array_uint8(ndr, NDR_SCALARS, r->data, 8));
 
2107
                        NDR_CHECK(ndr_pull_trailer_align(ndr, 1));
 
2108
                }
 
2109
                if (ndr_flags & NDR_BUFFERS) {
 
2110
                }
 
2111
                ndr->flags = _flags_save_STRUCT;
 
2112
        }
 
2113
        return NDR_ERR_SUCCESS;
 
2114
}
 
2115
 
 
2116
_PUBLIC_ void ndr_print_netr_Credential(struct ndr_print *ndr, const char *name, const struct netr_Credential *r)
 
2117
{
 
2118
        ndr_print_struct(ndr, name, "netr_Credential");
 
2119
        {
 
2120
                uint32_t _flags_save_STRUCT = ndr->flags;
 
2121
                ndr_set_flags(&ndr->flags, LIBNDR_PRINT_ARRAY_HEX);
 
2122
                ndr->depth++;
 
2123
                ndr_print_array_uint8(ndr, "data", r->data, 8);
 
2124
                ndr->depth--;
 
2125
                ndr->flags = _flags_save_STRUCT;
 
2126
        }
 
2127
}
 
2128
 
 
2129
_PUBLIC_ enum ndr_err_code ndr_push_netr_Authenticator(struct ndr_push *ndr, int ndr_flags, const struct netr_Authenticator *r)
 
2130
{
 
2131
        if (ndr_flags & NDR_SCALARS) {
 
2132
                NDR_CHECK(ndr_push_align(ndr, 4));
 
2133
                NDR_CHECK(ndr_push_netr_Credential(ndr, NDR_SCALARS, &r->cred));
 
2134
                NDR_CHECK(ndr_push_time_t(ndr, NDR_SCALARS, r->timestamp));
 
2135
                NDR_CHECK(ndr_push_trailer_align(ndr, 4));
 
2136
        }
 
2137
        if (ndr_flags & NDR_BUFFERS) {
 
2138
        }
 
2139
        return NDR_ERR_SUCCESS;
 
2140
}
 
2141
 
 
2142
_PUBLIC_ enum ndr_err_code ndr_pull_netr_Authenticator(struct ndr_pull *ndr, int ndr_flags, struct netr_Authenticator *r)
 
2143
{
 
2144
        if (ndr_flags & NDR_SCALARS) {
 
2145
                NDR_CHECK(ndr_pull_align(ndr, 4));
 
2146
                NDR_CHECK(ndr_pull_netr_Credential(ndr, NDR_SCALARS, &r->cred));
 
2147
                NDR_CHECK(ndr_pull_time_t(ndr, NDR_SCALARS, &r->timestamp));
 
2148
                NDR_CHECK(ndr_pull_trailer_align(ndr, 4));
 
2149
        }
 
2150
        if (ndr_flags & NDR_BUFFERS) {
 
2151
        }
 
2152
        return NDR_ERR_SUCCESS;
 
2153
}
 
2154
 
 
2155
_PUBLIC_ void ndr_print_netr_Authenticator(struct ndr_print *ndr, const char *name, const struct netr_Authenticator *r)
 
2156
{
 
2157
        ndr_print_struct(ndr, name, "netr_Authenticator");
 
2158
        ndr->depth++;
 
2159
        ndr_print_netr_Credential(ndr, "cred", &r->cred);
 
2160
        ndr_print_time_t(ndr, "timestamp", r->timestamp);
 
2161
        ndr->depth--;
 
2162
}
 
2163
 
 
2164
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)
 
2165
{
 
2166
        if (ndr_flags & NDR_SCALARS) {
 
2167
                NDR_CHECK(ndr_push_align(ndr, 5));
 
2168
                NDR_CHECK(ndr_push_unique_ptr(ndr, r->account_name));
 
2169
                NDR_CHECK(ndr_push_lsa_String(ndr, NDR_SCALARS, &r->unknown1));
 
2170
                NDR_CHECK(ndr_push_lsa_String(ndr, NDR_SCALARS, &r->unknown2));
 
2171
                NDR_CHECK(ndr_push_lsa_String(ndr, NDR_SCALARS, &r->unknown3));
 
2172
                NDR_CHECK(ndr_push_lsa_String(ndr, NDR_SCALARS, &r->unknown4));
 
2173
                NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->unknown5));
 
2174
                NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->unknown6));
 
2175
                NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->unknown7));
 
2176
                NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->unknown8));
 
2177
                NDR_CHECK(ndr_push_trailer_align(ndr, 5));
 
2178
        }
 
2179
        if (ndr_flags & NDR_BUFFERS) {
 
2180
                if (r->account_name) {
 
2181
                        NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->account_name, CH_UTF16)));
 
2182
                        NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, 0));
 
2183
                        NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->account_name, CH_UTF16)));
 
2184
                        NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->account_name, ndr_charset_length(r->account_name, CH_UTF16), sizeof(uint16_t), CH_UTF16));
 
2185
                }
 
2186
                NDR_CHECK(ndr_push_lsa_String(ndr, NDR_BUFFERS, &r->unknown1));
 
2187
                NDR_CHECK(ndr_push_lsa_String(ndr, NDR_BUFFERS, &r->unknown2));
 
2188
                NDR_CHECK(ndr_push_lsa_String(ndr, NDR_BUFFERS, &r->unknown3));
 
2189
                NDR_CHECK(ndr_push_lsa_String(ndr, NDR_BUFFERS, &r->unknown4));
 
2190
        }
 
2191
        return NDR_ERR_SUCCESS;
 
2192
}
 
2193
 
 
2194
static enum ndr_err_code ndr_pull_netr_DELTA_DELETE_USER(struct ndr_pull *ndr, int ndr_flags, struct netr_DELTA_DELETE_USER *r)
 
2195
{
 
2196
        uint32_t _ptr_account_name;
 
2197
        TALLOC_CTX *_mem_save_account_name_0;
 
2198
        if (ndr_flags & NDR_SCALARS) {
 
2199
                NDR_CHECK(ndr_pull_align(ndr, 5));
 
2200
                NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_account_name));
 
2201
                if (_ptr_account_name) {
 
2202
                        NDR_PULL_ALLOC(ndr, r->account_name);
 
2203
                } else {
 
2204
                        r->account_name = NULL;
 
2205
                }
 
2206
                NDR_CHECK(ndr_pull_lsa_String(ndr, NDR_SCALARS, &r->unknown1));
 
2207
                NDR_CHECK(ndr_pull_lsa_String(ndr, NDR_SCALARS, &r->unknown2));
 
2208
                NDR_CHECK(ndr_pull_lsa_String(ndr, NDR_SCALARS, &r->unknown3));
 
2209
                NDR_CHECK(ndr_pull_lsa_String(ndr, NDR_SCALARS, &r->unknown4));
 
2210
                NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->unknown5));
 
2211
                NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->unknown6));
 
2212
                NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->unknown7));
 
2213
                NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->unknown8));
 
2214
                NDR_CHECK(ndr_pull_trailer_align(ndr, 5));
 
2215
        }
 
2216
        if (ndr_flags & NDR_BUFFERS) {
 
2217
                if (r->account_name) {
 
2218
                        _mem_save_account_name_0 = NDR_PULL_GET_MEM_CTX(ndr);
 
2219
                        NDR_PULL_SET_MEM_CTX(ndr, r->account_name, 0);
 
2220
                        NDR_CHECK(ndr_pull_array_size(ndr, &r->account_name));
 
2221
                        NDR_CHECK(ndr_pull_array_length(ndr, &r->account_name));
 
2222
                        if (ndr_get_array_length(ndr, &r->account_name) > ndr_get_array_size(ndr, &r->account_name)) {
 
2223
                                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));
 
2224
                        }
 
2225
                        NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->account_name), sizeof(uint16_t)));
 
2226
                        NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->account_name, ndr_get_array_length(ndr, &r->account_name), sizeof(uint16_t), CH_UTF16));
 
2227
                        NDR_PULL_SET_MEM_CTX(ndr, _mem_save_account_name_0, 0);
 
2228
                }
 
2229
                NDR_CHECK(ndr_pull_lsa_String(ndr, NDR_BUFFERS, &r->unknown1));
 
2230
                NDR_CHECK(ndr_pull_lsa_String(ndr, NDR_BUFFERS, &r->unknown2));
 
2231
                NDR_CHECK(ndr_pull_lsa_String(ndr, NDR_BUFFERS, &r->unknown3));
 
2232
                NDR_CHECK(ndr_pull_lsa_String(ndr, NDR_BUFFERS, &r->unknown4));
 
2233
        }
 
2234
        return NDR_ERR_SUCCESS;
 
2235
}
 
2236
 
 
2237
_PUBLIC_ void ndr_print_netr_DELTA_DELETE_USER(struct ndr_print *ndr, const char *name, const struct netr_DELTA_DELETE_USER *r)
 
2238
{
 
2239
        ndr_print_struct(ndr, name, "netr_DELTA_DELETE_USER");
 
2240
        ndr->depth++;
 
2241
        ndr_print_ptr(ndr, "account_name", r->account_name);
 
2242
        ndr->depth++;
 
2243
        if (r->account_name) {
 
2244
                ndr_print_string(ndr, "account_name", r->account_name);
 
2245
        }
 
2246
        ndr->depth--;
 
2247
        ndr_print_lsa_String(ndr, "unknown1", &r->unknown1);
 
2248
        ndr_print_lsa_String(ndr, "unknown2", &r->unknown2);
 
2249
        ndr_print_lsa_String(ndr, "unknown3", &r->unknown3);
 
2250
        ndr_print_lsa_String(ndr, "unknown4", &r->unknown4);
 
2251
        ndr_print_uint32(ndr, "unknown5", r->unknown5);
 
2252
        ndr_print_uint32(ndr, "unknown6", r->unknown6);
 
2253
        ndr_print_uint32(ndr, "unknown7", r->unknown7);
 
2254
        ndr_print_uint32(ndr, "unknown8", r->unknown8);
 
2255
        ndr->depth--;
 
2256
}
 
2257
 
 
2258
static enum ndr_err_code ndr_push_netr_USER_KEY16(struct ndr_push *ndr, int ndr_flags, const struct netr_USER_KEY16 *r)
 
2259
{
 
2260
        if (ndr_flags & NDR_SCALARS) {
 
2261
                NDR_CHECK(ndr_push_align(ndr, 4));
 
2262
                NDR_CHECK(ndr_push_uint16(ndr, NDR_SCALARS, r->length));
 
2263
                NDR_CHECK(ndr_push_uint16(ndr, NDR_SCALARS, r->length));
 
2264
                NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->flags));
 
2265
                NDR_CHECK(ndr_push_samr_Password(ndr, NDR_SCALARS, &r->pwd));
 
2266
                NDR_CHECK(ndr_push_trailer_align(ndr, 4));
 
2267
        }
 
2268
        if (ndr_flags & NDR_BUFFERS) {
 
2269
        }
 
2270
        return NDR_ERR_SUCCESS;
 
2271
}
 
2272
 
 
2273
static enum ndr_err_code ndr_pull_netr_USER_KEY16(struct ndr_pull *ndr, int ndr_flags, struct netr_USER_KEY16 *r)
 
2274
{
 
2275
        if (ndr_flags & NDR_SCALARS) {
 
2276
                NDR_CHECK(ndr_pull_align(ndr, 4));
 
2277
                NDR_CHECK(ndr_pull_uint16(ndr, NDR_SCALARS, &r->length));
 
2278
                NDR_CHECK(ndr_pull_uint16(ndr, NDR_SCALARS, &r->size));
 
2279
                NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->flags));
 
2280
                NDR_CHECK(ndr_pull_samr_Password(ndr, NDR_SCALARS, &r->pwd));
 
2281
                NDR_CHECK(ndr_pull_trailer_align(ndr, 4));
 
2282
        }
 
2283
        if (ndr_flags & NDR_BUFFERS) {
 
2284
        }
 
2285
        return NDR_ERR_SUCCESS;
 
2286
}
 
2287
 
 
2288
_PUBLIC_ void ndr_print_netr_USER_KEY16(struct ndr_print *ndr, const char *name, const struct netr_USER_KEY16 *r)
 
2289
{
 
2290
        ndr_print_struct(ndr, name, "netr_USER_KEY16");
 
2291
        ndr->depth++;
 
2292
        ndr_print_uint16(ndr, "length", r->length);
 
2293
        ndr_print_uint16(ndr, "size", (ndr->flags & LIBNDR_PRINT_SET_VALUES)?r->length:r->size);
 
2294
        ndr_print_uint32(ndr, "flags", r->flags);
 
2295
        ndr_print_samr_Password(ndr, "pwd", &r->pwd);
 
2296
        ndr->depth--;
 
2297
}
 
2298
 
 
2299
static enum ndr_err_code ndr_push_netr_PasswordHistory(struct ndr_push *ndr, int ndr_flags, const struct netr_PasswordHistory *r)
 
2300
{
 
2301
        if (ndr_flags & NDR_SCALARS) {
 
2302
                NDR_CHECK(ndr_push_align(ndr, 4));
 
2303
                NDR_CHECK(ndr_push_uint16(ndr, NDR_SCALARS, r->nt_length));
 
2304
                NDR_CHECK(ndr_push_uint16(ndr, NDR_SCALARS, r->nt_length));
 
2305
                NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->nt_flags));
 
2306
                NDR_CHECK(ndr_push_uint16(ndr, NDR_SCALARS, r->lm_length));
 
2307
                NDR_CHECK(ndr_push_uint16(ndr, NDR_SCALARS, r->lm_length));
 
2308
                NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->lm_flags));
 
2309
                NDR_CHECK(ndr_push_array_uint8(ndr, NDR_SCALARS, r->nt_history, r->nt_length));
 
2310
                NDR_CHECK(ndr_push_array_uint8(ndr, NDR_SCALARS, r->lm_history, r->lm_length));
 
2311
                NDR_CHECK(ndr_push_trailer_align(ndr, 4));
 
2312
        }
 
2313
        if (ndr_flags & NDR_BUFFERS) {
 
2314
        }
 
2315
        return NDR_ERR_SUCCESS;
 
2316
}
 
2317
 
 
2318
static enum ndr_err_code ndr_pull_netr_PasswordHistory(struct ndr_pull *ndr, int ndr_flags, struct netr_PasswordHistory *r)
 
2319
{
 
2320
        if (ndr_flags & NDR_SCALARS) {
 
2321
                NDR_CHECK(ndr_pull_align(ndr, 4));
 
2322
                NDR_CHECK(ndr_pull_uint16(ndr, NDR_SCALARS, &r->nt_length));
 
2323
                NDR_CHECK(ndr_pull_uint16(ndr, NDR_SCALARS, &r->nt_size));
 
2324
                NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->nt_flags));
 
2325
                NDR_CHECK(ndr_pull_uint16(ndr, NDR_SCALARS, &r->lm_length));
 
2326
                NDR_CHECK(ndr_pull_uint16(ndr, NDR_SCALARS, &r->lm_size));
 
2327
                NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->lm_flags));
 
2328
                NDR_PULL_ALLOC_N(ndr, r->nt_history, r->nt_length);
 
2329
                NDR_CHECK(ndr_pull_array_uint8(ndr, NDR_SCALARS, r->nt_history, r->nt_length));
 
2330
                NDR_PULL_ALLOC_N(ndr, r->lm_history, r->lm_length);
 
2331
                NDR_CHECK(ndr_pull_array_uint8(ndr, NDR_SCALARS, r->lm_history, r->lm_length));
 
2332
                NDR_CHECK(ndr_pull_trailer_align(ndr, 4));
 
2333
        }
 
2334
        if (ndr_flags & NDR_BUFFERS) {
 
2335
        }
 
2336
        return NDR_ERR_SUCCESS;
 
2337
}
 
2338
 
 
2339
_PUBLIC_ void ndr_print_netr_PasswordHistory(struct ndr_print *ndr, const char *name, const struct netr_PasswordHistory *r)
 
2340
{
 
2341
        ndr_print_struct(ndr, name, "netr_PasswordHistory");
 
2342
        ndr->depth++;
 
2343
        ndr_print_uint16(ndr, "nt_length", r->nt_length);
 
2344
        ndr_print_uint16(ndr, "nt_size", (ndr->flags & LIBNDR_PRINT_SET_VALUES)?r->nt_length:r->nt_size);
 
2345
        ndr_print_uint32(ndr, "nt_flags", r->nt_flags);
 
2346
        ndr_print_uint16(ndr, "lm_length", r->lm_length);
 
2347
        ndr_print_uint16(ndr, "lm_size", (ndr->flags & LIBNDR_PRINT_SET_VALUES)?r->lm_length:r->lm_size);
 
2348
        ndr_print_uint32(ndr, "lm_flags", r->lm_flags);
 
2349
        ndr_print_array_uint8(ndr, "nt_history", r->nt_history, r->nt_length);
 
2350
        ndr_print_array_uint8(ndr, "lm_history", r->lm_history, r->lm_length);
 
2351
        ndr->depth--;
 
2352
}
 
2353
 
 
2354
static enum ndr_err_code ndr_push_netr_USER_KEYS2(struct ndr_push *ndr, int ndr_flags, const struct netr_USER_KEYS2 *r)
 
2355
{
 
2356
        if (ndr_flags & NDR_SCALARS) {
 
2357
                NDR_CHECK(ndr_push_align(ndr, 4));
 
2358
                NDR_CHECK(ndr_push_netr_USER_KEY16(ndr, NDR_SCALARS, &r->lmpassword));
 
2359
                NDR_CHECK(ndr_push_netr_USER_KEY16(ndr, NDR_SCALARS, &r->ntpassword));
 
2360
                NDR_CHECK(ndr_push_netr_PasswordHistory(ndr, NDR_SCALARS, &r->history));
 
2361
                NDR_CHECK(ndr_push_trailer_align(ndr, 4));
 
2362
        }
 
2363
        if (ndr_flags & NDR_BUFFERS) {
 
2364
        }
 
2365
        return NDR_ERR_SUCCESS;
 
2366
}
 
2367
 
 
2368
static enum ndr_err_code ndr_pull_netr_USER_KEYS2(struct ndr_pull *ndr, int ndr_flags, struct netr_USER_KEYS2 *r)
 
2369
{
 
2370
        if (ndr_flags & NDR_SCALARS) {
 
2371
                NDR_CHECK(ndr_pull_align(ndr, 4));
 
2372
                NDR_CHECK(ndr_pull_netr_USER_KEY16(ndr, NDR_SCALARS, &r->lmpassword));
 
2373
                NDR_CHECK(ndr_pull_netr_USER_KEY16(ndr, NDR_SCALARS, &r->ntpassword));
 
2374
                NDR_CHECK(ndr_pull_netr_PasswordHistory(ndr, NDR_SCALARS, &r->history));
 
2375
                NDR_CHECK(ndr_pull_trailer_align(ndr, 4));
 
2376
        }
 
2377
        if (ndr_flags & NDR_BUFFERS) {
 
2378
        }
 
2379
        return NDR_ERR_SUCCESS;
 
2380
}
 
2381
 
 
2382
_PUBLIC_ void ndr_print_netr_USER_KEYS2(struct ndr_print *ndr, const char *name, const struct netr_USER_KEYS2 *r)
 
2383
{
 
2384
        ndr_print_struct(ndr, name, "netr_USER_KEYS2");
 
2385
        ndr->depth++;
 
2386
        ndr_print_netr_USER_KEY16(ndr, "lmpassword", &r->lmpassword);
 
2387
        ndr_print_netr_USER_KEY16(ndr, "ntpassword", &r->ntpassword);
 
2388
        ndr_print_netr_PasswordHistory(ndr, "history", &r->history);
 
2389
        ndr->depth--;
 
2390
}
 
2391
 
 
2392
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)
 
2393
{
 
2394
        if (ndr_flags & NDR_SCALARS) {
 
2395
                NDR_CHECK(ndr_push_align(ndr, 4));
 
2396
                NDR_CHECK(ndr_push_netr_USER_KEYS2(ndr, NDR_SCALARS, &r->keys2));
 
2397
                NDR_CHECK(ndr_push_trailer_align(ndr, 4));
 
2398
        }
 
2399
        if (ndr_flags & NDR_BUFFERS) {
 
2400
        }
 
2401
        return NDR_ERR_SUCCESS;
 
2402
}
 
2403
 
 
2404
static enum ndr_err_code ndr_pull_netr_USER_KEY_UNION(struct ndr_pull *ndr, int ndr_flags, struct netr_USER_KEY_UNION *r)
 
2405
{
 
2406
        if (ndr_flags & NDR_SCALARS) {
 
2407
                NDR_CHECK(ndr_pull_align(ndr, 4));
 
2408
                NDR_CHECK(ndr_pull_netr_USER_KEYS2(ndr, NDR_SCALARS, &r->keys2));
 
2409
                NDR_CHECK(ndr_pull_trailer_align(ndr, 4));
 
2410
        }
 
2411
        if (ndr_flags & NDR_BUFFERS) {
 
2412
        }
 
2413
        return NDR_ERR_SUCCESS;
 
2414
}
 
2415
 
 
2416
_PUBLIC_ void ndr_print_netr_USER_KEY_UNION(struct ndr_print *ndr, const char *name, const struct netr_USER_KEY_UNION *r)
 
2417
{
 
2418
        ndr_print_struct(ndr, name, "netr_USER_KEY_UNION");
 
2419
        ndr->depth++;
 
2420
        ndr_print_netr_USER_KEYS2(ndr, "keys2", &r->keys2);
 
2421
        ndr->depth--;
 
2422
}
 
2423
 
 
2424
_PUBLIC_ enum ndr_err_code ndr_push_netr_USER_KEYS(struct ndr_push *ndr, int ndr_flags, const struct netr_USER_KEYS *r)
 
2425
{
 
2426
        if (ndr_flags & NDR_SCALARS) {
 
2427
                NDR_CHECK(ndr_push_align(ndr, 4));
 
2428
                NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->version));
 
2429
                NDR_CHECK(ndr_push_netr_USER_KEY_UNION(ndr, NDR_SCALARS, &r->keys));
 
2430
                NDR_CHECK(ndr_push_trailer_align(ndr, 4));
 
2431
        }
 
2432
        if (ndr_flags & NDR_BUFFERS) {
 
2433
        }
 
2434
        return NDR_ERR_SUCCESS;
 
2435
}
 
2436
 
 
2437
_PUBLIC_ enum ndr_err_code ndr_pull_netr_USER_KEYS(struct ndr_pull *ndr, int ndr_flags, struct netr_USER_KEYS *r)
 
2438
{
 
2439
        if (ndr_flags & NDR_SCALARS) {
 
2440
                NDR_CHECK(ndr_pull_align(ndr, 4));
 
2441
                NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->version));
 
2442
                NDR_CHECK(ndr_pull_netr_USER_KEY_UNION(ndr, NDR_SCALARS, &r->keys));
 
2443
                NDR_CHECK(ndr_pull_trailer_align(ndr, 4));
 
2444
        }
 
2445
        if (ndr_flags & NDR_BUFFERS) {
 
2446
        }
 
2447
        return NDR_ERR_SUCCESS;
 
2448
}
 
2449
 
 
2450
_PUBLIC_ void ndr_print_netr_USER_KEYS(struct ndr_print *ndr, const char *name, const struct netr_USER_KEYS *r)
 
2451
{
 
2452
        ndr_print_struct(ndr, name, "netr_USER_KEYS");
 
2453
        ndr->depth++;
 
2454
        ndr_print_uint32(ndr, "version", r->version);
 
2455
        ndr_print_netr_USER_KEY_UNION(ndr, "keys", &r->keys);
 
2456
        ndr->depth--;
 
2457
}
 
2458
 
 
2459
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)
 
2460
{
 
2461
        if (ndr_flags & NDR_SCALARS) {
 
2462
                NDR_CHECK(ndr_push_align(ndr, 5));
 
2463
                NDR_CHECK(ndr_push_uint8(ndr, NDR_SCALARS, r->SensitiveDataFlag));
 
2464
                NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->DataLength));
 
2465
                {
 
2466
                        uint32_t _flags_save_uint8 = ndr->flags;
 
2467
                        ndr_set_flags(&ndr->flags, LIBNDR_PRINT_ARRAY_HEX);
 
2468
                        NDR_CHECK(ndr_push_unique_ptr(ndr, r->SensitiveData));
 
2469
                        ndr->flags = _flags_save_uint8;
 
2470
                }
 
2471
                NDR_CHECK(ndr_push_trailer_align(ndr, 5));
 
2472
        }
 
2473
        if (ndr_flags & NDR_BUFFERS) {
 
2474
                {
 
2475
                        uint32_t _flags_save_uint8 = ndr->flags;
 
2476
                        ndr_set_flags(&ndr->flags, LIBNDR_PRINT_ARRAY_HEX);
 
2477
                        if (r->SensitiveData) {
 
2478
                                NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, r->DataLength));
 
2479
                                NDR_CHECK(ndr_push_array_uint8(ndr, NDR_SCALARS, r->SensitiveData, r->DataLength));
 
2480
                        }
 
2481
                        ndr->flags = _flags_save_uint8;
 
2482
                }
 
2483
        }
 
2484
        return NDR_ERR_SUCCESS;
 
2485
}
 
2486
 
 
2487
static enum ndr_err_code ndr_pull_netr_USER_PRIVATE_INFO(struct ndr_pull *ndr, int ndr_flags, struct netr_USER_PRIVATE_INFO *r)
 
2488
{
 
2489
        uint32_t _ptr_SensitiveData;
 
2490
        TALLOC_CTX *_mem_save_SensitiveData_0;
 
2491
        if (ndr_flags & NDR_SCALARS) {
 
2492
                NDR_CHECK(ndr_pull_align(ndr, 5));
 
2493
                NDR_CHECK(ndr_pull_uint8(ndr, NDR_SCALARS, &r->SensitiveDataFlag));
 
2494
                NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->DataLength));
 
2495
                {
 
2496
                        uint32_t _flags_save_uint8 = ndr->flags;
 
2497
                        ndr_set_flags(&ndr->flags, LIBNDR_PRINT_ARRAY_HEX);
 
2498
                        NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_SensitiveData));
 
2499
                        if (_ptr_SensitiveData) {
 
2500
                                NDR_PULL_ALLOC(ndr, r->SensitiveData);
 
2501
                        } else {
 
2502
                                r->SensitiveData = NULL;
 
2503
                        }
 
2504
                        ndr->flags = _flags_save_uint8;
 
2505
                }
 
2506
                NDR_CHECK(ndr_pull_trailer_align(ndr, 5));
 
2507
        }
 
2508
        if (ndr_flags & NDR_BUFFERS) {
 
2509
                {
 
2510
                        uint32_t _flags_save_uint8 = ndr->flags;
 
2511
                        ndr_set_flags(&ndr->flags, LIBNDR_PRINT_ARRAY_HEX);
 
2512
                        if (r->SensitiveData) {
 
2513
                                _mem_save_SensitiveData_0 = NDR_PULL_GET_MEM_CTX(ndr);
 
2514
                                NDR_PULL_SET_MEM_CTX(ndr, r->SensitiveData, 0);
 
2515
                                NDR_CHECK(ndr_pull_array_size(ndr, &r->SensitiveData));
 
2516
                                NDR_PULL_ALLOC_N(ndr, r->SensitiveData, ndr_get_array_size(ndr, &r->SensitiveData));
 
2517
                                NDR_CHECK(ndr_pull_array_uint8(ndr, NDR_SCALARS, r->SensitiveData, ndr_get_array_size(ndr, &r->SensitiveData)));
 
2518
                                NDR_PULL_SET_MEM_CTX(ndr, _mem_save_SensitiveData_0, 0);
 
2519
                        }
 
2520
                        ndr->flags = _flags_save_uint8;
 
2521
                }
 
2522
                if (r->SensitiveData) {
 
2523
                        NDR_CHECK(ndr_check_array_size(ndr, (void*)&r->SensitiveData, r->DataLength));
 
2524
                }
 
2525
        }
 
2526
        return NDR_ERR_SUCCESS;
 
2527
}
 
2528
 
 
2529
_PUBLIC_ void ndr_print_netr_USER_PRIVATE_INFO(struct ndr_print *ndr, const char *name, const struct netr_USER_PRIVATE_INFO *r)
 
2530
{
 
2531
        ndr_print_struct(ndr, name, "netr_USER_PRIVATE_INFO");
 
2532
        ndr->depth++;
 
2533
        ndr_print_uint8(ndr, "SensitiveDataFlag", r->SensitiveDataFlag);
 
2534
        ndr_print_uint32(ndr, "DataLength", r->DataLength);
 
2535
        ndr_print_ptr(ndr, "SensitiveData", r->SensitiveData);
 
2536
        ndr->depth++;
 
2537
        if (r->SensitiveData) {
 
2538
                ndr_print_array_uint8(ndr, "SensitiveData", r->SensitiveData, r->DataLength);
 
2539
        }
 
2540
        ndr->depth--;
 
2541
        ndr->depth--;
 
2542
}
 
2543
 
 
2544
static enum ndr_err_code ndr_push_netr_DELTA_USER(struct ndr_push *ndr, int ndr_flags, const struct netr_DELTA_USER *r)
 
2545
{
 
2546
        if (ndr_flags & NDR_SCALARS) {
 
2547
                NDR_CHECK(ndr_push_align(ndr, 5));
 
2548
                NDR_CHECK(ndr_push_lsa_String(ndr, NDR_SCALARS, &r->account_name));
 
2549
                NDR_CHECK(ndr_push_lsa_String(ndr, NDR_SCALARS, &r->full_name));
 
2550
                NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->rid));
 
2551
                NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->primary_gid));
 
2552
                NDR_CHECK(ndr_push_lsa_String(ndr, NDR_SCALARS, &r->home_directory));
 
2553
                NDR_CHECK(ndr_push_lsa_String(ndr, NDR_SCALARS, &r->home_drive));
 
2554
                NDR_CHECK(ndr_push_lsa_String(ndr, NDR_SCALARS, &r->logon_script));
 
2555
                NDR_CHECK(ndr_push_lsa_String(ndr, NDR_SCALARS, &r->description));
 
2556
                NDR_CHECK(ndr_push_lsa_String(ndr, NDR_SCALARS, &r->workstations));
 
2557
                NDR_CHECK(ndr_push_NTTIME(ndr, NDR_SCALARS, r->last_logon));
 
2558
                NDR_CHECK(ndr_push_NTTIME(ndr, NDR_SCALARS, r->last_logoff));
 
2559
                NDR_CHECK(ndr_push_samr_LogonHours(ndr, NDR_SCALARS, &r->logon_hours));
 
2560
                NDR_CHECK(ndr_push_uint16(ndr, NDR_SCALARS, r->bad_password_count));
 
2561
                NDR_CHECK(ndr_push_uint16(ndr, NDR_SCALARS, r->logon_count));
 
2562
                NDR_CHECK(ndr_push_NTTIME(ndr, NDR_SCALARS, r->last_password_change));
 
2563
                NDR_CHECK(ndr_push_NTTIME(ndr, NDR_SCALARS, r->acct_expiry));
 
2564
                NDR_CHECK(ndr_push_samr_AcctFlags(ndr, NDR_SCALARS, r->acct_flags));
 
2565
                NDR_CHECK(ndr_push_samr_Password(ndr, NDR_SCALARS, &r->lmpassword));
 
2566
                NDR_CHECK(ndr_push_samr_Password(ndr, NDR_SCALARS, &r->ntpassword));
 
2567
                NDR_CHECK(ndr_push_uint8(ndr, NDR_SCALARS, r->nt_password_present));
 
2568
                NDR_CHECK(ndr_push_uint8(ndr, NDR_SCALARS, r->lm_password_present));
 
2569
                NDR_CHECK(ndr_push_uint8(ndr, NDR_SCALARS, r->password_expired));
 
2570
                NDR_CHECK(ndr_push_lsa_String(ndr, NDR_SCALARS, &r->comment));
 
2571
                NDR_CHECK(ndr_push_lsa_BinaryString(ndr, NDR_SCALARS, &r->parameters));
 
2572
                NDR_CHECK(ndr_push_uint16(ndr, NDR_SCALARS, r->country_code));
 
2573
                NDR_CHECK(ndr_push_uint16(ndr, NDR_SCALARS, r->code_page));
 
2574
                NDR_CHECK(ndr_push_netr_USER_PRIVATE_INFO(ndr, NDR_SCALARS, &r->user_private_info));
 
2575
                NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->SecurityInformation));
 
2576
                NDR_CHECK(ndr_push_sec_desc_buf(ndr, NDR_SCALARS, &r->sdbuf));
 
2577
                NDR_CHECK(ndr_push_lsa_String(ndr, NDR_SCALARS, &r->profile_path));
 
2578
                NDR_CHECK(ndr_push_lsa_String(ndr, NDR_SCALARS, &r->unknown2));
 
2579
                NDR_CHECK(ndr_push_lsa_String(ndr, NDR_SCALARS, &r->unknown3));
 
2580
                NDR_CHECK(ndr_push_lsa_String(ndr, NDR_SCALARS, &r->unknown4));
 
2581
                NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->unknown5));
 
2582
                NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->unknown6));
 
2583
                NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->unknown7));
 
2584
                NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->unknown8));
 
2585
                NDR_CHECK(ndr_push_trailer_align(ndr, 5));
 
2586
        }
 
2587
        if (ndr_flags & NDR_BUFFERS) {
 
2588
                NDR_CHECK(ndr_push_lsa_String(ndr, NDR_BUFFERS, &r->account_name));
 
2589
                NDR_CHECK(ndr_push_lsa_String(ndr, NDR_BUFFERS, &r->full_name));
 
2590
                NDR_CHECK(ndr_push_lsa_String(ndr, NDR_BUFFERS, &r->home_directory));
 
2591
                NDR_CHECK(ndr_push_lsa_String(ndr, NDR_BUFFERS, &r->home_drive));
 
2592
                NDR_CHECK(ndr_push_lsa_String(ndr, NDR_BUFFERS, &r->logon_script));
 
2593
                NDR_CHECK(ndr_push_lsa_String(ndr, NDR_BUFFERS, &r->description));
 
2594
                NDR_CHECK(ndr_push_lsa_String(ndr, NDR_BUFFERS, &r->workstations));
 
2595
                NDR_CHECK(ndr_push_samr_LogonHours(ndr, NDR_BUFFERS, &r->logon_hours));
 
2596
                NDR_CHECK(ndr_push_lsa_String(ndr, NDR_BUFFERS, &r->comment));
 
2597
                NDR_CHECK(ndr_push_lsa_BinaryString(ndr, NDR_BUFFERS, &r->parameters));
 
2598
                NDR_CHECK(ndr_push_netr_USER_PRIVATE_INFO(ndr, NDR_BUFFERS, &r->user_private_info));
 
2599
                NDR_CHECK(ndr_push_sec_desc_buf(ndr, NDR_BUFFERS, &r->sdbuf));
 
2600
                NDR_CHECK(ndr_push_lsa_String(ndr, NDR_BUFFERS, &r->profile_path));
 
2601
                NDR_CHECK(ndr_push_lsa_String(ndr, NDR_BUFFERS, &r->unknown2));
 
2602
                NDR_CHECK(ndr_push_lsa_String(ndr, NDR_BUFFERS, &r->unknown3));
 
2603
                NDR_CHECK(ndr_push_lsa_String(ndr, NDR_BUFFERS, &r->unknown4));
 
2604
        }
 
2605
        return NDR_ERR_SUCCESS;
 
2606
}
 
2607
 
 
2608
static enum ndr_err_code ndr_pull_netr_DELTA_USER(struct ndr_pull *ndr, int ndr_flags, struct netr_DELTA_USER *r)
 
2609
{
 
2610
        if (ndr_flags & NDR_SCALARS) {
 
2611
                NDR_CHECK(ndr_pull_align(ndr, 5));
 
2612
                NDR_CHECK(ndr_pull_lsa_String(ndr, NDR_SCALARS, &r->account_name));
 
2613
                NDR_CHECK(ndr_pull_lsa_String(ndr, NDR_SCALARS, &r->full_name));
 
2614
                NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->rid));
 
2615
                NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->primary_gid));
 
2616
                NDR_CHECK(ndr_pull_lsa_String(ndr, NDR_SCALARS, &r->home_directory));
 
2617
                NDR_CHECK(ndr_pull_lsa_String(ndr, NDR_SCALARS, &r->home_drive));
 
2618
                NDR_CHECK(ndr_pull_lsa_String(ndr, NDR_SCALARS, &r->logon_script));
 
2619
                NDR_CHECK(ndr_pull_lsa_String(ndr, NDR_SCALARS, &r->description));
 
2620
                NDR_CHECK(ndr_pull_lsa_String(ndr, NDR_SCALARS, &r->workstations));
 
2621
                NDR_CHECK(ndr_pull_NTTIME(ndr, NDR_SCALARS, &r->last_logon));
 
2622
                NDR_CHECK(ndr_pull_NTTIME(ndr, NDR_SCALARS, &r->last_logoff));
 
2623
                NDR_CHECK(ndr_pull_samr_LogonHours(ndr, NDR_SCALARS, &r->logon_hours));
 
2624
                NDR_CHECK(ndr_pull_uint16(ndr, NDR_SCALARS, &r->bad_password_count));
 
2625
                NDR_CHECK(ndr_pull_uint16(ndr, NDR_SCALARS, &r->logon_count));
 
2626
                NDR_CHECK(ndr_pull_NTTIME(ndr, NDR_SCALARS, &r->last_password_change));
 
2627
                NDR_CHECK(ndr_pull_NTTIME(ndr, NDR_SCALARS, &r->acct_expiry));
 
2628
                NDR_CHECK(ndr_pull_samr_AcctFlags(ndr, NDR_SCALARS, &r->acct_flags));
 
2629
                NDR_CHECK(ndr_pull_samr_Password(ndr, NDR_SCALARS, &r->lmpassword));
 
2630
                NDR_CHECK(ndr_pull_samr_Password(ndr, NDR_SCALARS, &r->ntpassword));
 
2631
                NDR_CHECK(ndr_pull_uint8(ndr, NDR_SCALARS, &r->nt_password_present));
 
2632
                NDR_CHECK(ndr_pull_uint8(ndr, NDR_SCALARS, &r->lm_password_present));
 
2633
                NDR_CHECK(ndr_pull_uint8(ndr, NDR_SCALARS, &r->password_expired));
 
2634
                NDR_CHECK(ndr_pull_lsa_String(ndr, NDR_SCALARS, &r->comment));
 
2635
                NDR_CHECK(ndr_pull_lsa_BinaryString(ndr, NDR_SCALARS, &r->parameters));
 
2636
                NDR_CHECK(ndr_pull_uint16(ndr, NDR_SCALARS, &r->country_code));
 
2637
                NDR_CHECK(ndr_pull_uint16(ndr, NDR_SCALARS, &r->code_page));
 
2638
                NDR_CHECK(ndr_pull_netr_USER_PRIVATE_INFO(ndr, NDR_SCALARS, &r->user_private_info));
 
2639
                NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->SecurityInformation));
 
2640
                NDR_CHECK(ndr_pull_sec_desc_buf(ndr, NDR_SCALARS, &r->sdbuf));
 
2641
                NDR_CHECK(ndr_pull_lsa_String(ndr, NDR_SCALARS, &r->profile_path));
 
2642
                NDR_CHECK(ndr_pull_lsa_String(ndr, NDR_SCALARS, &r->unknown2));
 
2643
                NDR_CHECK(ndr_pull_lsa_String(ndr, NDR_SCALARS, &r->unknown3));
 
2644
                NDR_CHECK(ndr_pull_lsa_String(ndr, NDR_SCALARS, &r->unknown4));
 
2645
                NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->unknown5));
 
2646
                NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->unknown6));
 
2647
                NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->unknown7));
 
2648
                NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->unknown8));
 
2649
                NDR_CHECK(ndr_pull_trailer_align(ndr, 5));
 
2650
        }
 
2651
        if (ndr_flags & NDR_BUFFERS) {
 
2652
                NDR_CHECK(ndr_pull_lsa_String(ndr, NDR_BUFFERS, &r->account_name));
 
2653
                NDR_CHECK(ndr_pull_lsa_String(ndr, NDR_BUFFERS, &r->full_name));
 
2654
                NDR_CHECK(ndr_pull_lsa_String(ndr, NDR_BUFFERS, &r->home_directory));
 
2655
                NDR_CHECK(ndr_pull_lsa_String(ndr, NDR_BUFFERS, &r->home_drive));
 
2656
                NDR_CHECK(ndr_pull_lsa_String(ndr, NDR_BUFFERS, &r->logon_script));
 
2657
                NDR_CHECK(ndr_pull_lsa_String(ndr, NDR_BUFFERS, &r->description));
 
2658
                NDR_CHECK(ndr_pull_lsa_String(ndr, NDR_BUFFERS, &r->workstations));
 
2659
                NDR_CHECK(ndr_pull_samr_LogonHours(ndr, NDR_BUFFERS, &r->logon_hours));
 
2660
                NDR_CHECK(ndr_pull_lsa_String(ndr, NDR_BUFFERS, &r->comment));
 
2661
                NDR_CHECK(ndr_pull_lsa_BinaryString(ndr, NDR_BUFFERS, &r->parameters));
 
2662
                NDR_CHECK(ndr_pull_netr_USER_PRIVATE_INFO(ndr, NDR_BUFFERS, &r->user_private_info));
 
2663
                NDR_CHECK(ndr_pull_sec_desc_buf(ndr, NDR_BUFFERS, &r->sdbuf));
 
2664
                NDR_CHECK(ndr_pull_lsa_String(ndr, NDR_BUFFERS, &r->profile_path));
 
2665
                NDR_CHECK(ndr_pull_lsa_String(ndr, NDR_BUFFERS, &r->unknown2));
 
2666
                NDR_CHECK(ndr_pull_lsa_String(ndr, NDR_BUFFERS, &r->unknown3));
 
2667
                NDR_CHECK(ndr_pull_lsa_String(ndr, NDR_BUFFERS, &r->unknown4));
 
2668
        }
 
2669
        return NDR_ERR_SUCCESS;
 
2670
}
 
2671
 
 
2672
_PUBLIC_ void ndr_print_netr_DELTA_USER(struct ndr_print *ndr, const char *name, const struct netr_DELTA_USER *r)
 
2673
{
 
2674
        ndr_print_struct(ndr, name, "netr_DELTA_USER");
 
2675
        ndr->depth++;
 
2676
        ndr_print_lsa_String(ndr, "account_name", &r->account_name);
 
2677
        ndr_print_lsa_String(ndr, "full_name", &r->full_name);
 
2678
        ndr_print_uint32(ndr, "rid", r->rid);
 
2679
        ndr_print_uint32(ndr, "primary_gid", r->primary_gid);
 
2680
        ndr_print_lsa_String(ndr, "home_directory", &r->home_directory);
 
2681
        ndr_print_lsa_String(ndr, "home_drive", &r->home_drive);
 
2682
        ndr_print_lsa_String(ndr, "logon_script", &r->logon_script);
 
2683
        ndr_print_lsa_String(ndr, "description", &r->description);
 
2684
        ndr_print_lsa_String(ndr, "workstations", &r->workstations);
 
2685
        ndr_print_NTTIME(ndr, "last_logon", r->last_logon);
 
2686
        ndr_print_NTTIME(ndr, "last_logoff", r->last_logoff);
 
2687
        ndr_print_samr_LogonHours(ndr, "logon_hours", &r->logon_hours);
 
2688
        ndr_print_uint16(ndr, "bad_password_count", r->bad_password_count);
 
2689
        ndr_print_uint16(ndr, "logon_count", r->logon_count);
 
2690
        ndr_print_NTTIME(ndr, "last_password_change", r->last_password_change);
 
2691
        ndr_print_NTTIME(ndr, "acct_expiry", r->acct_expiry);
 
2692
        ndr_print_samr_AcctFlags(ndr, "acct_flags", r->acct_flags);
 
2693
        ndr_print_samr_Password(ndr, "lmpassword", &r->lmpassword);
 
2694
        ndr_print_samr_Password(ndr, "ntpassword", &r->ntpassword);
 
2695
        ndr_print_uint8(ndr, "nt_password_present", r->nt_password_present);
 
2696
        ndr_print_uint8(ndr, "lm_password_present", r->lm_password_present);
 
2697
        ndr_print_uint8(ndr, "password_expired", r->password_expired);
 
2698
        ndr_print_lsa_String(ndr, "comment", &r->comment);
 
2699
        ndr_print_lsa_BinaryString(ndr, "parameters", &r->parameters);
 
2700
        ndr_print_uint16(ndr, "country_code", r->country_code);
 
2701
        ndr_print_uint16(ndr, "code_page", r->code_page);
 
2702
        ndr_print_netr_USER_PRIVATE_INFO(ndr, "user_private_info", &r->user_private_info);
 
2703
        ndr_print_uint32(ndr, "SecurityInformation", r->SecurityInformation);
 
2704
        ndr_print_sec_desc_buf(ndr, "sdbuf", &r->sdbuf);
 
2705
        ndr_print_lsa_String(ndr, "profile_path", &r->profile_path);
 
2706
        ndr_print_lsa_String(ndr, "unknown2", &r->unknown2);
 
2707
        ndr_print_lsa_String(ndr, "unknown3", &r->unknown3);
 
2708
        ndr_print_lsa_String(ndr, "unknown4", &r->unknown4);
 
2709
        ndr_print_uint32(ndr, "unknown5", r->unknown5);
 
2710
        ndr_print_uint32(ndr, "unknown6", r->unknown6);
 
2711
        ndr_print_uint32(ndr, "unknown7", r->unknown7);
 
2712
        ndr_print_uint32(ndr, "unknown8", r->unknown8);
 
2713
        ndr->depth--;
 
2714
}
 
2715
 
 
2716
static enum ndr_err_code ndr_push_netr_DELTA_DOMAIN(struct ndr_push *ndr, int ndr_flags, const struct netr_DELTA_DOMAIN *r)
 
2717
{
 
2718
        if (ndr_flags & NDR_SCALARS) {
 
2719
                NDR_CHECK(ndr_push_align(ndr, 5));
 
2720
                NDR_CHECK(ndr_push_lsa_String(ndr, NDR_SCALARS, &r->domain_name));
 
2721
                NDR_CHECK(ndr_push_lsa_String(ndr, NDR_SCALARS, &r->oem_information));
 
2722
                NDR_CHECK(ndr_push_dlong(ndr, NDR_SCALARS, r->force_logoff_time));
 
2723
                NDR_CHECK(ndr_push_uint16(ndr, NDR_SCALARS, r->min_password_length));
 
2724
                NDR_CHECK(ndr_push_uint16(ndr, NDR_SCALARS, r->password_history_length));
 
2725
                NDR_CHECK(ndr_push_dlong(ndr, NDR_SCALARS, r->max_password_age));
 
2726
                NDR_CHECK(ndr_push_dlong(ndr, NDR_SCALARS, r->min_password_age));
 
2727
                NDR_CHECK(ndr_push_udlong(ndr, NDR_SCALARS, r->sequence_num));
 
2728
                NDR_CHECK(ndr_push_NTTIME(ndr, NDR_SCALARS, r->domain_create_time));
 
2729
                NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->SecurityInformation));
 
2730
                NDR_CHECK(ndr_push_sec_desc_buf(ndr, NDR_SCALARS, &r->sdbuf));
 
2731
                NDR_CHECK(ndr_push_lsa_BinaryString(ndr, NDR_SCALARS, &r->account_lockout));
 
2732
                NDR_CHECK(ndr_push_lsa_String(ndr, NDR_SCALARS, &r->unknown2));
 
2733
                NDR_CHECK(ndr_push_lsa_String(ndr, NDR_SCALARS, &r->unknown3));
 
2734
                NDR_CHECK(ndr_push_lsa_String(ndr, NDR_SCALARS, &r->unknown4));
 
2735
                NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->logon_to_chgpass));
 
2736
                NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->unknown6));
 
2737
                NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->unknown7));
 
2738
                NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->unknown8));
 
2739
                NDR_CHECK(ndr_push_trailer_align(ndr, 5));
 
2740
        }
 
2741
        if (ndr_flags & NDR_BUFFERS) {
 
2742
                NDR_CHECK(ndr_push_lsa_String(ndr, NDR_BUFFERS, &r->domain_name));
 
2743
                NDR_CHECK(ndr_push_lsa_String(ndr, NDR_BUFFERS, &r->oem_information));
 
2744
                NDR_CHECK(ndr_push_sec_desc_buf(ndr, NDR_BUFFERS, &r->sdbuf));
 
2745
                NDR_CHECK(ndr_push_lsa_BinaryString(ndr, NDR_BUFFERS, &r->account_lockout));
 
2746
                NDR_CHECK(ndr_push_lsa_String(ndr, NDR_BUFFERS, &r->unknown2));
 
2747
                NDR_CHECK(ndr_push_lsa_String(ndr, NDR_BUFFERS, &r->unknown3));
 
2748
                NDR_CHECK(ndr_push_lsa_String(ndr, NDR_BUFFERS, &r->unknown4));
 
2749
        }
 
2750
        return NDR_ERR_SUCCESS;
 
2751
}
 
2752
 
 
2753
static enum ndr_err_code ndr_pull_netr_DELTA_DOMAIN(struct ndr_pull *ndr, int ndr_flags, struct netr_DELTA_DOMAIN *r)
 
2754
{
 
2755
        if (ndr_flags & NDR_SCALARS) {
 
2756
                NDR_CHECK(ndr_pull_align(ndr, 5));
 
2757
                NDR_CHECK(ndr_pull_lsa_String(ndr, NDR_SCALARS, &r->domain_name));
 
2758
                NDR_CHECK(ndr_pull_lsa_String(ndr, NDR_SCALARS, &r->oem_information));
 
2759
                NDR_CHECK(ndr_pull_dlong(ndr, NDR_SCALARS, &r->force_logoff_time));
 
2760
                NDR_CHECK(ndr_pull_uint16(ndr, NDR_SCALARS, &r->min_password_length));
 
2761
                NDR_CHECK(ndr_pull_uint16(ndr, NDR_SCALARS, &r->password_history_length));
 
2762
                NDR_CHECK(ndr_pull_dlong(ndr, NDR_SCALARS, &r->max_password_age));
 
2763
                NDR_CHECK(ndr_pull_dlong(ndr, NDR_SCALARS, &r->min_password_age));
 
2764
                NDR_CHECK(ndr_pull_udlong(ndr, NDR_SCALARS, &r->sequence_num));
 
2765
                NDR_CHECK(ndr_pull_NTTIME(ndr, NDR_SCALARS, &r->domain_create_time));
 
2766
                NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->SecurityInformation));
 
2767
                NDR_CHECK(ndr_pull_sec_desc_buf(ndr, NDR_SCALARS, &r->sdbuf));
 
2768
                NDR_CHECK(ndr_pull_lsa_BinaryString(ndr, NDR_SCALARS, &r->account_lockout));
 
2769
                NDR_CHECK(ndr_pull_lsa_String(ndr, NDR_SCALARS, &r->unknown2));
 
2770
                NDR_CHECK(ndr_pull_lsa_String(ndr, NDR_SCALARS, &r->unknown3));
 
2771
                NDR_CHECK(ndr_pull_lsa_String(ndr, NDR_SCALARS, &r->unknown4));
 
2772
                NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->logon_to_chgpass));
 
2773
                NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->unknown6));
 
2774
                NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->unknown7));
 
2775
                NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->unknown8));
 
2776
                NDR_CHECK(ndr_pull_trailer_align(ndr, 5));
 
2777
        }
 
2778
        if (ndr_flags & NDR_BUFFERS) {
 
2779
                NDR_CHECK(ndr_pull_lsa_String(ndr, NDR_BUFFERS, &r->domain_name));
 
2780
                NDR_CHECK(ndr_pull_lsa_String(ndr, NDR_BUFFERS, &r->oem_information));
 
2781
                NDR_CHECK(ndr_pull_sec_desc_buf(ndr, NDR_BUFFERS, &r->sdbuf));
 
2782
                NDR_CHECK(ndr_pull_lsa_BinaryString(ndr, NDR_BUFFERS, &r->account_lockout));
 
2783
                NDR_CHECK(ndr_pull_lsa_String(ndr, NDR_BUFFERS, &r->unknown2));
 
2784
                NDR_CHECK(ndr_pull_lsa_String(ndr, NDR_BUFFERS, &r->unknown3));
 
2785
                NDR_CHECK(ndr_pull_lsa_String(ndr, NDR_BUFFERS, &r->unknown4));
 
2786
        }
 
2787
        return NDR_ERR_SUCCESS;
 
2788
}
 
2789
 
 
2790
_PUBLIC_ void ndr_print_netr_DELTA_DOMAIN(struct ndr_print *ndr, const char *name, const struct netr_DELTA_DOMAIN *r)
 
2791
{
 
2792
        ndr_print_struct(ndr, name, "netr_DELTA_DOMAIN");
 
2793
        ndr->depth++;
 
2794
        ndr_print_lsa_String(ndr, "domain_name", &r->domain_name);
 
2795
        ndr_print_lsa_String(ndr, "oem_information", &r->oem_information);
 
2796
        ndr_print_dlong(ndr, "force_logoff_time", r->force_logoff_time);
 
2797
        ndr_print_uint16(ndr, "min_password_length", r->min_password_length);
 
2798
        ndr_print_uint16(ndr, "password_history_length", r->password_history_length);
 
2799
        ndr_print_dlong(ndr, "max_password_age", r->max_password_age);
 
2800
        ndr_print_dlong(ndr, "min_password_age", r->min_password_age);
 
2801
        ndr_print_udlong(ndr, "sequence_num", r->sequence_num);
 
2802
        ndr_print_NTTIME(ndr, "domain_create_time", r->domain_create_time);
 
2803
        ndr_print_uint32(ndr, "SecurityInformation", r->SecurityInformation);
 
2804
        ndr_print_sec_desc_buf(ndr, "sdbuf", &r->sdbuf);
 
2805
        ndr_print_lsa_BinaryString(ndr, "account_lockout", &r->account_lockout);
 
2806
        ndr_print_lsa_String(ndr, "unknown2", &r->unknown2);
 
2807
        ndr_print_lsa_String(ndr, "unknown3", &r->unknown3);
 
2808
        ndr_print_lsa_String(ndr, "unknown4", &r->unknown4);
 
2809
        ndr_print_uint32(ndr, "logon_to_chgpass", r->logon_to_chgpass);
 
2810
        ndr_print_uint32(ndr, "unknown6", r->unknown6);
 
2811
        ndr_print_uint32(ndr, "unknown7", r->unknown7);
 
2812
        ndr_print_uint32(ndr, "unknown8", r->unknown8);
 
2813
        ndr->depth--;
 
2814
}
 
2815
 
 
2816
static enum ndr_err_code ndr_push_netr_DELTA_GROUP(struct ndr_push *ndr, int ndr_flags, const struct netr_DELTA_GROUP *r)
 
2817
{
 
2818
        if (ndr_flags & NDR_SCALARS) {
 
2819
                NDR_CHECK(ndr_push_align(ndr, 5));
 
2820
                NDR_CHECK(ndr_push_lsa_String(ndr, NDR_SCALARS, &r->group_name));
 
2821
                NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->rid));
 
2822
                NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->attributes));
 
2823
                NDR_CHECK(ndr_push_lsa_String(ndr, NDR_SCALARS, &r->description));
 
2824
                NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->SecurityInformation));
 
2825
                NDR_CHECK(ndr_push_sec_desc_buf(ndr, NDR_SCALARS, &r->sdbuf));
 
2826
                NDR_CHECK(ndr_push_lsa_String(ndr, NDR_SCALARS, &r->unknown1));
 
2827
                NDR_CHECK(ndr_push_lsa_String(ndr, NDR_SCALARS, &r->unknown2));
 
2828
                NDR_CHECK(ndr_push_lsa_String(ndr, NDR_SCALARS, &r->unknown3));
 
2829
                NDR_CHECK(ndr_push_lsa_String(ndr, NDR_SCALARS, &r->unknown4));
 
2830
                NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->unknown5));
 
2831
                NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->unknown6));
 
2832
                NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->unknown7));
 
2833
                NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->unknown8));
 
2834
                NDR_CHECK(ndr_push_trailer_align(ndr, 5));
 
2835
        }
 
2836
        if (ndr_flags & NDR_BUFFERS) {
 
2837
                NDR_CHECK(ndr_push_lsa_String(ndr, NDR_BUFFERS, &r->group_name));
 
2838
                NDR_CHECK(ndr_push_lsa_String(ndr, NDR_BUFFERS, &r->description));
 
2839
                NDR_CHECK(ndr_push_sec_desc_buf(ndr, NDR_BUFFERS, &r->sdbuf));
 
2840
                NDR_CHECK(ndr_push_lsa_String(ndr, NDR_BUFFERS, &r->unknown1));
 
2841
                NDR_CHECK(ndr_push_lsa_String(ndr, NDR_BUFFERS, &r->unknown2));
 
2842
                NDR_CHECK(ndr_push_lsa_String(ndr, NDR_BUFFERS, &r->unknown3));
 
2843
                NDR_CHECK(ndr_push_lsa_String(ndr, NDR_BUFFERS, &r->unknown4));
 
2844
        }
 
2845
        return NDR_ERR_SUCCESS;
 
2846
}
 
2847
 
 
2848
static enum ndr_err_code ndr_pull_netr_DELTA_GROUP(struct ndr_pull *ndr, int ndr_flags, struct netr_DELTA_GROUP *r)
 
2849
{
 
2850
        if (ndr_flags & NDR_SCALARS) {
 
2851
                NDR_CHECK(ndr_pull_align(ndr, 5));
 
2852
                NDR_CHECK(ndr_pull_lsa_String(ndr, NDR_SCALARS, &r->group_name));
 
2853
                NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->rid));
 
2854
                NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->attributes));
 
2855
                NDR_CHECK(ndr_pull_lsa_String(ndr, NDR_SCALARS, &r->description));
 
2856
                NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->SecurityInformation));
 
2857
                NDR_CHECK(ndr_pull_sec_desc_buf(ndr, NDR_SCALARS, &r->sdbuf));
 
2858
                NDR_CHECK(ndr_pull_lsa_String(ndr, NDR_SCALARS, &r->unknown1));
 
2859
                NDR_CHECK(ndr_pull_lsa_String(ndr, NDR_SCALARS, &r->unknown2));
 
2860
                NDR_CHECK(ndr_pull_lsa_String(ndr, NDR_SCALARS, &r->unknown3));
 
2861
                NDR_CHECK(ndr_pull_lsa_String(ndr, NDR_SCALARS, &r->unknown4));
 
2862
                NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->unknown5));
 
2863
                NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->unknown6));
 
2864
                NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->unknown7));
 
2865
                NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->unknown8));
 
2866
                NDR_CHECK(ndr_pull_trailer_align(ndr, 5));
 
2867
        }
 
2868
        if (ndr_flags & NDR_BUFFERS) {
 
2869
                NDR_CHECK(ndr_pull_lsa_String(ndr, NDR_BUFFERS, &r->group_name));
 
2870
                NDR_CHECK(ndr_pull_lsa_String(ndr, NDR_BUFFERS, &r->description));
 
2871
                NDR_CHECK(ndr_pull_sec_desc_buf(ndr, NDR_BUFFERS, &r->sdbuf));
 
2872
                NDR_CHECK(ndr_pull_lsa_String(ndr, NDR_BUFFERS, &r->unknown1));
 
2873
                NDR_CHECK(ndr_pull_lsa_String(ndr, NDR_BUFFERS, &r->unknown2));
 
2874
                NDR_CHECK(ndr_pull_lsa_String(ndr, NDR_BUFFERS, &r->unknown3));
 
2875
                NDR_CHECK(ndr_pull_lsa_String(ndr, NDR_BUFFERS, &r->unknown4));
 
2876
        }
 
2877
        return NDR_ERR_SUCCESS;
 
2878
}
 
2879
 
 
2880
_PUBLIC_ void ndr_print_netr_DELTA_GROUP(struct ndr_print *ndr, const char *name, const struct netr_DELTA_GROUP *r)
 
2881
{
 
2882
        ndr_print_struct(ndr, name, "netr_DELTA_GROUP");
 
2883
        ndr->depth++;
 
2884
        ndr_print_lsa_String(ndr, "group_name", &r->group_name);
 
2885
        ndr_print_uint32(ndr, "rid", r->rid);
 
2886
        ndr_print_uint32(ndr, "attributes", r->attributes);
 
2887
        ndr_print_lsa_String(ndr, "description", &r->description);
 
2888
        ndr_print_uint32(ndr, "SecurityInformation", r->SecurityInformation);
 
2889
        ndr_print_sec_desc_buf(ndr, "sdbuf", &r->sdbuf);
 
2890
        ndr_print_lsa_String(ndr, "unknown1", &r->unknown1);
 
2891
        ndr_print_lsa_String(ndr, "unknown2", &r->unknown2);
 
2892
        ndr_print_lsa_String(ndr, "unknown3", &r->unknown3);
 
2893
        ndr_print_lsa_String(ndr, "unknown4", &r->unknown4);
 
2894
        ndr_print_uint32(ndr, "unknown5", r->unknown5);
 
2895
        ndr_print_uint32(ndr, "unknown6", r->unknown6);
 
2896
        ndr_print_uint32(ndr, "unknown7", r->unknown7);
 
2897
        ndr_print_uint32(ndr, "unknown8", r->unknown8);
 
2898
        ndr->depth--;
 
2899
}
 
2900
 
 
2901
static enum ndr_err_code ndr_push_netr_DELTA_RENAME(struct ndr_push *ndr, int ndr_flags, const struct netr_DELTA_RENAME *r)
 
2902
{
 
2903
        if (ndr_flags & NDR_SCALARS) {
 
2904
                NDR_CHECK(ndr_push_align(ndr, 5));
 
2905
                NDR_CHECK(ndr_push_lsa_String(ndr, NDR_SCALARS, &r->OldName));
 
2906
                NDR_CHECK(ndr_push_lsa_String(ndr, NDR_SCALARS, &r->NewName));
 
2907
                NDR_CHECK(ndr_push_lsa_String(ndr, NDR_SCALARS, &r->unknown1));
 
2908
                NDR_CHECK(ndr_push_lsa_String(ndr, NDR_SCALARS, &r->unknown2));
 
2909
                NDR_CHECK(ndr_push_lsa_String(ndr, NDR_SCALARS, &r->unknown3));
 
2910
                NDR_CHECK(ndr_push_lsa_String(ndr, NDR_SCALARS, &r->unknown4));
 
2911
                NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->unknown5));
 
2912
                NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->unknown6));
 
2913
                NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->unknown7));
 
2914
                NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->unknown8));
 
2915
                NDR_CHECK(ndr_push_trailer_align(ndr, 5));
 
2916
        }
 
2917
        if (ndr_flags & NDR_BUFFERS) {
 
2918
                NDR_CHECK(ndr_push_lsa_String(ndr, NDR_BUFFERS, &r->OldName));
 
2919
                NDR_CHECK(ndr_push_lsa_String(ndr, NDR_BUFFERS, &r->NewName));
 
2920
                NDR_CHECK(ndr_push_lsa_String(ndr, NDR_BUFFERS, &r->unknown1));
 
2921
                NDR_CHECK(ndr_push_lsa_String(ndr, NDR_BUFFERS, &r->unknown2));
 
2922
                NDR_CHECK(ndr_push_lsa_String(ndr, NDR_BUFFERS, &r->unknown3));
 
2923
                NDR_CHECK(ndr_push_lsa_String(ndr, NDR_BUFFERS, &r->unknown4));
 
2924
        }
 
2925
        return NDR_ERR_SUCCESS;
 
2926
}
 
2927
 
 
2928
static enum ndr_err_code ndr_pull_netr_DELTA_RENAME(struct ndr_pull *ndr, int ndr_flags, struct netr_DELTA_RENAME *r)
 
2929
{
 
2930
        if (ndr_flags & NDR_SCALARS) {
 
2931
                NDR_CHECK(ndr_pull_align(ndr, 5));
 
2932
                NDR_CHECK(ndr_pull_lsa_String(ndr, NDR_SCALARS, &r->OldName));
 
2933
                NDR_CHECK(ndr_pull_lsa_String(ndr, NDR_SCALARS, &r->NewName));
 
2934
                NDR_CHECK(ndr_pull_lsa_String(ndr, NDR_SCALARS, &r->unknown1));
 
2935
                NDR_CHECK(ndr_pull_lsa_String(ndr, NDR_SCALARS, &r->unknown2));
 
2936
                NDR_CHECK(ndr_pull_lsa_String(ndr, NDR_SCALARS, &r->unknown3));
 
2937
                NDR_CHECK(ndr_pull_lsa_String(ndr, NDR_SCALARS, &r->unknown4));
 
2938
                NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->unknown5));
 
2939
                NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->unknown6));
 
2940
                NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->unknown7));
 
2941
                NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->unknown8));
 
2942
                NDR_CHECK(ndr_pull_trailer_align(ndr, 5));
 
2943
        }
 
2944
        if (ndr_flags & NDR_BUFFERS) {
 
2945
                NDR_CHECK(ndr_pull_lsa_String(ndr, NDR_BUFFERS, &r->OldName));
 
2946
                NDR_CHECK(ndr_pull_lsa_String(ndr, NDR_BUFFERS, &r->NewName));
 
2947
                NDR_CHECK(ndr_pull_lsa_String(ndr, NDR_BUFFERS, &r->unknown1));
 
2948
                NDR_CHECK(ndr_pull_lsa_String(ndr, NDR_BUFFERS, &r->unknown2));
 
2949
                NDR_CHECK(ndr_pull_lsa_String(ndr, NDR_BUFFERS, &r->unknown3));
 
2950
                NDR_CHECK(ndr_pull_lsa_String(ndr, NDR_BUFFERS, &r->unknown4));
 
2951
        }
 
2952
        return NDR_ERR_SUCCESS;
 
2953
}
 
2954
 
 
2955
_PUBLIC_ void ndr_print_netr_DELTA_RENAME(struct ndr_print *ndr, const char *name, const struct netr_DELTA_RENAME *r)
 
2956
{
 
2957
        ndr_print_struct(ndr, name, "netr_DELTA_RENAME");
 
2958
        ndr->depth++;
 
2959
        ndr_print_lsa_String(ndr, "OldName", &r->OldName);
 
2960
        ndr_print_lsa_String(ndr, "NewName", &r->NewName);
 
2961
        ndr_print_lsa_String(ndr, "unknown1", &r->unknown1);
 
2962
        ndr_print_lsa_String(ndr, "unknown2", &r->unknown2);
 
2963
        ndr_print_lsa_String(ndr, "unknown3", &r->unknown3);
 
2964
        ndr_print_lsa_String(ndr, "unknown4", &r->unknown4);
 
2965
        ndr_print_uint32(ndr, "unknown5", r->unknown5);
 
2966
        ndr_print_uint32(ndr, "unknown6", r->unknown6);
 
2967
        ndr_print_uint32(ndr, "unknown7", r->unknown7);
 
2968
        ndr_print_uint32(ndr, "unknown8", r->unknown8);
 
2969
        ndr->depth--;
 
2970
}
 
2971
 
 
2972
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)
 
2973
{
 
2974
        uint32_t cntr_rids_1;
 
2975
        uint32_t cntr_attribs_1;
 
2976
        if (ndr_flags & NDR_SCALARS) {
 
2977
                NDR_CHECK(ndr_push_align(ndr, 5));
 
2978
                NDR_CHECK(ndr_push_unique_ptr(ndr, r->rids));
 
2979
                NDR_CHECK(ndr_push_unique_ptr(ndr, r->attribs));
 
2980
                NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->num_rids));
 
2981
                NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->unknown1));
 
2982
                NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->unknown2));
 
2983
                NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->unknown3));
 
2984
                NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->unknown4));
 
2985
                NDR_CHECK(ndr_push_trailer_align(ndr, 5));
 
2986
        }
 
2987
        if (ndr_flags & NDR_BUFFERS) {
 
2988
                if (r->rids) {
 
2989
                        NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, r->num_rids));
 
2990
                        for (cntr_rids_1 = 0; cntr_rids_1 < r->num_rids; cntr_rids_1++) {
 
2991
                                NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->rids[cntr_rids_1]));
 
2992
                        }
 
2993
                }
 
2994
                if (r->attribs) {
 
2995
                        NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, r->num_rids));
 
2996
                        for (cntr_attribs_1 = 0; cntr_attribs_1 < r->num_rids; cntr_attribs_1++) {
 
2997
                                NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->attribs[cntr_attribs_1]));
 
2998
                        }
 
2999
                }
 
3000
        }
 
3001
        return NDR_ERR_SUCCESS;
 
3002
}
 
3003
 
 
3004
static enum ndr_err_code ndr_pull_netr_DELTA_GROUP_MEMBER(struct ndr_pull *ndr, int ndr_flags, struct netr_DELTA_GROUP_MEMBER *r)
 
3005
{
 
3006
        uint32_t _ptr_rids;
 
3007
        uint32_t cntr_rids_1;
 
3008
        TALLOC_CTX *_mem_save_rids_0;
 
3009
        TALLOC_CTX *_mem_save_rids_1;
 
3010
        uint32_t _ptr_attribs;
 
3011
        uint32_t cntr_attribs_1;
 
3012
        TALLOC_CTX *_mem_save_attribs_0;
 
3013
        TALLOC_CTX *_mem_save_attribs_1;
 
3014
        if (ndr_flags & NDR_SCALARS) {
 
3015
                NDR_CHECK(ndr_pull_align(ndr, 5));
 
3016
                NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_rids));
 
3017
                if (_ptr_rids) {
 
3018
                        NDR_PULL_ALLOC(ndr, r->rids);
 
3019
                } else {
 
3020
                        r->rids = NULL;
 
3021
                }
 
3022
                NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_attribs));
 
3023
                if (_ptr_attribs) {
 
3024
                        NDR_PULL_ALLOC(ndr, r->attribs);
 
3025
                } else {
 
3026
                        r->attribs = NULL;
 
3027
                }
 
3028
                NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->num_rids));
 
3029
                NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->unknown1));
 
3030
                NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->unknown2));
 
3031
                NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->unknown3));
 
3032
                NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->unknown4));
 
3033
                NDR_CHECK(ndr_pull_trailer_align(ndr, 5));
 
3034
        }
 
3035
        if (ndr_flags & NDR_BUFFERS) {
 
3036
                if (r->rids) {
 
3037
                        _mem_save_rids_0 = NDR_PULL_GET_MEM_CTX(ndr);
 
3038
                        NDR_PULL_SET_MEM_CTX(ndr, r->rids, 0);
 
3039
                        NDR_CHECK(ndr_pull_array_size(ndr, &r->rids));
 
3040
                        NDR_PULL_ALLOC_N(ndr, r->rids, ndr_get_array_size(ndr, &r->rids));
 
3041
                        _mem_save_rids_1 = NDR_PULL_GET_MEM_CTX(ndr);
 
3042
                        NDR_PULL_SET_MEM_CTX(ndr, r->rids, 0);
 
3043
                        for (cntr_rids_1 = 0; cntr_rids_1 < r->num_rids; cntr_rids_1++) {
 
3044
                                NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->rids[cntr_rids_1]));
 
3045
                        }
 
3046
                        NDR_PULL_SET_MEM_CTX(ndr, _mem_save_rids_1, 0);
 
3047
                        NDR_PULL_SET_MEM_CTX(ndr, _mem_save_rids_0, 0);
 
3048
                }
 
3049
                if (r->attribs) {
 
3050
                        _mem_save_attribs_0 = NDR_PULL_GET_MEM_CTX(ndr);
 
3051
                        NDR_PULL_SET_MEM_CTX(ndr, r->attribs, 0);
 
3052
                        NDR_CHECK(ndr_pull_array_size(ndr, &r->attribs));
 
3053
                        NDR_PULL_ALLOC_N(ndr, r->attribs, ndr_get_array_size(ndr, &r->attribs));
 
3054
                        _mem_save_attribs_1 = NDR_PULL_GET_MEM_CTX(ndr);
 
3055
                        NDR_PULL_SET_MEM_CTX(ndr, r->attribs, 0);
 
3056
                        for (cntr_attribs_1 = 0; cntr_attribs_1 < r->num_rids; cntr_attribs_1++) {
 
3057
                                NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->attribs[cntr_attribs_1]));
 
3058
                        }
 
3059
                        NDR_PULL_SET_MEM_CTX(ndr, _mem_save_attribs_1, 0);
 
3060
                        NDR_PULL_SET_MEM_CTX(ndr, _mem_save_attribs_0, 0);
 
3061
                }
 
3062
                if (r->rids) {
 
3063
                        NDR_CHECK(ndr_check_array_size(ndr, (void*)&r->rids, r->num_rids));
 
3064
                }
 
3065
                if (r->attribs) {
 
3066
                        NDR_CHECK(ndr_check_array_size(ndr, (void*)&r->attribs, r->num_rids));
 
3067
                }
 
3068
        }
 
3069
        return NDR_ERR_SUCCESS;
 
3070
}
 
3071
 
 
3072
_PUBLIC_ void ndr_print_netr_DELTA_GROUP_MEMBER(struct ndr_print *ndr, const char *name, const struct netr_DELTA_GROUP_MEMBER *r)
 
3073
{
 
3074
        uint32_t cntr_rids_1;
 
3075
        uint32_t cntr_attribs_1;
 
3076
        ndr_print_struct(ndr, name, "netr_DELTA_GROUP_MEMBER");
 
3077
        ndr->depth++;
 
3078
        ndr_print_ptr(ndr, "rids", r->rids);
 
3079
        ndr->depth++;
 
3080
        if (r->rids) {
 
3081
                ndr->print(ndr, "%s: ARRAY(%d)", "rids", (int)r->num_rids);
 
3082
                ndr->depth++;
 
3083
                for (cntr_rids_1=0;cntr_rids_1<r->num_rids;cntr_rids_1++) {
 
3084
                        char *idx_1=NULL;
 
3085
                        if (asprintf(&idx_1, "[%d]", cntr_rids_1) != -1) {
 
3086
                                ndr_print_uint32(ndr, "rids", r->rids[cntr_rids_1]);
 
3087
                                free(idx_1);
 
3088
                        }
 
3089
                }
 
3090
                ndr->depth--;
 
3091
        }
 
3092
        ndr->depth--;
 
3093
        ndr_print_ptr(ndr, "attribs", r->attribs);
 
3094
        ndr->depth++;
 
3095
        if (r->attribs) {
 
3096
                ndr->print(ndr, "%s: ARRAY(%d)", "attribs", (int)r->num_rids);
 
3097
                ndr->depth++;
 
3098
                for (cntr_attribs_1=0;cntr_attribs_1<r->num_rids;cntr_attribs_1++) {
 
3099
                        char *idx_1=NULL;
 
3100
                        if (asprintf(&idx_1, "[%d]", cntr_attribs_1) != -1) {
 
3101
                                ndr_print_uint32(ndr, "attribs", r->attribs[cntr_attribs_1]);
 
3102
                                free(idx_1);
 
3103
                        }
 
3104
                }
 
3105
                ndr->depth--;
 
3106
        }
 
3107
        ndr->depth--;
 
3108
        ndr_print_uint32(ndr, "num_rids", r->num_rids);
 
3109
        ndr_print_uint32(ndr, "unknown1", r->unknown1);
 
3110
        ndr_print_uint32(ndr, "unknown2", r->unknown2);
 
3111
        ndr_print_uint32(ndr, "unknown3", r->unknown3);
 
3112
        ndr_print_uint32(ndr, "unknown4", r->unknown4);
 
3113
        ndr->depth--;
 
3114
}
 
3115
 
 
3116
static enum ndr_err_code ndr_push_netr_DELTA_ALIAS(struct ndr_push *ndr, int ndr_flags, const struct netr_DELTA_ALIAS *r)
 
3117
{
 
3118
        if (ndr_flags & NDR_SCALARS) {
 
3119
                NDR_CHECK(ndr_push_align(ndr, 5));
 
3120
                NDR_CHECK(ndr_push_lsa_String(ndr, NDR_SCALARS, &r->alias_name));
 
3121
                NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->rid));
 
3122
                NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->SecurityInformation));
 
3123
                NDR_CHECK(ndr_push_sec_desc_buf(ndr, NDR_SCALARS, &r->sdbuf));
 
3124
                NDR_CHECK(ndr_push_lsa_String(ndr, NDR_SCALARS, &r->description));
 
3125
                NDR_CHECK(ndr_push_lsa_String(ndr, NDR_SCALARS, &r->unknown2));
 
3126
                NDR_CHECK(ndr_push_lsa_String(ndr, NDR_SCALARS, &r->unknown3));
 
3127
                NDR_CHECK(ndr_push_lsa_String(ndr, NDR_SCALARS, &r->unknown4));
 
3128
                NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->unknown5));
 
3129
                NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->unknown6));
 
3130
                NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->unknown7));
 
3131
                NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->unknown8));
 
3132
                NDR_CHECK(ndr_push_trailer_align(ndr, 5));
 
3133
        }
 
3134
        if (ndr_flags & NDR_BUFFERS) {
 
3135
                NDR_CHECK(ndr_push_lsa_String(ndr, NDR_BUFFERS, &r->alias_name));
 
3136
                NDR_CHECK(ndr_push_sec_desc_buf(ndr, NDR_BUFFERS, &r->sdbuf));
 
3137
                NDR_CHECK(ndr_push_lsa_String(ndr, NDR_BUFFERS, &r->description));
 
3138
                NDR_CHECK(ndr_push_lsa_String(ndr, NDR_BUFFERS, &r->unknown2));
 
3139
                NDR_CHECK(ndr_push_lsa_String(ndr, NDR_BUFFERS, &r->unknown3));
 
3140
                NDR_CHECK(ndr_push_lsa_String(ndr, NDR_BUFFERS, &r->unknown4));
 
3141
        }
 
3142
        return NDR_ERR_SUCCESS;
 
3143
}
 
3144
 
 
3145
static enum ndr_err_code ndr_pull_netr_DELTA_ALIAS(struct ndr_pull *ndr, int ndr_flags, struct netr_DELTA_ALIAS *r)
 
3146
{
 
3147
        if (ndr_flags & NDR_SCALARS) {
 
3148
                NDR_CHECK(ndr_pull_align(ndr, 5));
 
3149
                NDR_CHECK(ndr_pull_lsa_String(ndr, NDR_SCALARS, &r->alias_name));
 
3150
                NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->rid));
 
3151
                NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->SecurityInformation));
 
3152
                NDR_CHECK(ndr_pull_sec_desc_buf(ndr, NDR_SCALARS, &r->sdbuf));
 
3153
                NDR_CHECK(ndr_pull_lsa_String(ndr, NDR_SCALARS, &r->description));
 
3154
                NDR_CHECK(ndr_pull_lsa_String(ndr, NDR_SCALARS, &r->unknown2));
 
3155
                NDR_CHECK(ndr_pull_lsa_String(ndr, NDR_SCALARS, &r->unknown3));
 
3156
                NDR_CHECK(ndr_pull_lsa_String(ndr, NDR_SCALARS, &r->unknown4));
 
3157
                NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->unknown5));
 
3158
                NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->unknown6));
 
3159
                NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->unknown7));
 
3160
                NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->unknown8));
 
3161
                NDR_CHECK(ndr_pull_trailer_align(ndr, 5));
 
3162
        }
 
3163
        if (ndr_flags & NDR_BUFFERS) {
 
3164
                NDR_CHECK(ndr_pull_lsa_String(ndr, NDR_BUFFERS, &r->alias_name));
 
3165
                NDR_CHECK(ndr_pull_sec_desc_buf(ndr, NDR_BUFFERS, &r->sdbuf));
 
3166
                NDR_CHECK(ndr_pull_lsa_String(ndr, NDR_BUFFERS, &r->description));
 
3167
                NDR_CHECK(ndr_pull_lsa_String(ndr, NDR_BUFFERS, &r->unknown2));
 
3168
                NDR_CHECK(ndr_pull_lsa_String(ndr, NDR_BUFFERS, &r->unknown3));
 
3169
                NDR_CHECK(ndr_pull_lsa_String(ndr, NDR_BUFFERS, &r->unknown4));
 
3170
        }
 
3171
        return NDR_ERR_SUCCESS;
 
3172
}
 
3173
 
 
3174
_PUBLIC_ void ndr_print_netr_DELTA_ALIAS(struct ndr_print *ndr, const char *name, const struct netr_DELTA_ALIAS *r)
 
3175
{
 
3176
        ndr_print_struct(ndr, name, "netr_DELTA_ALIAS");
 
3177
        ndr->depth++;
 
3178
        ndr_print_lsa_String(ndr, "alias_name", &r->alias_name);
 
3179
        ndr_print_uint32(ndr, "rid", r->rid);
 
3180
        ndr_print_uint32(ndr, "SecurityInformation", r->SecurityInformation);
 
3181
        ndr_print_sec_desc_buf(ndr, "sdbuf", &r->sdbuf);
 
3182
        ndr_print_lsa_String(ndr, "description", &r->description);
 
3183
        ndr_print_lsa_String(ndr, "unknown2", &r->unknown2);
 
3184
        ndr_print_lsa_String(ndr, "unknown3", &r->unknown3);
 
3185
        ndr_print_lsa_String(ndr, "unknown4", &r->unknown4);
 
3186
        ndr_print_uint32(ndr, "unknown5", r->unknown5);
 
3187
        ndr_print_uint32(ndr, "unknown6", r->unknown6);
 
3188
        ndr_print_uint32(ndr, "unknown7", r->unknown7);
 
3189
        ndr_print_uint32(ndr, "unknown8", r->unknown8);
 
3190
        ndr->depth--;
 
3191
}
 
3192
 
 
3193
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)
 
3194
{
 
3195
        if (ndr_flags & NDR_SCALARS) {
 
3196
                NDR_CHECK(ndr_push_align(ndr, 5));
 
3197
                NDR_CHECK(ndr_push_lsa_SidArray(ndr, NDR_SCALARS, &r->sids));
 
3198
                NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->unknown1));
 
3199
                NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->unknown2));
 
3200
                NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->unknown3));
 
3201
                NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->unknown4));
 
3202
                NDR_CHECK(ndr_push_trailer_align(ndr, 5));
 
3203
        }
 
3204
        if (ndr_flags & NDR_BUFFERS) {
 
3205
                NDR_CHECK(ndr_push_lsa_SidArray(ndr, NDR_BUFFERS, &r->sids));
 
3206
        }
 
3207
        return NDR_ERR_SUCCESS;
 
3208
}
 
3209
 
 
3210
static enum ndr_err_code ndr_pull_netr_DELTA_ALIAS_MEMBER(struct ndr_pull *ndr, int ndr_flags, struct netr_DELTA_ALIAS_MEMBER *r)
 
3211
{
 
3212
        if (ndr_flags & NDR_SCALARS) {
 
3213
                NDR_CHECK(ndr_pull_align(ndr, 5));
 
3214
                NDR_CHECK(ndr_pull_lsa_SidArray(ndr, NDR_SCALARS, &r->sids));
 
3215
                NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->unknown1));
 
3216
                NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->unknown2));
 
3217
                NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->unknown3));
 
3218
                NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->unknown4));
 
3219
                NDR_CHECK(ndr_pull_trailer_align(ndr, 5));
 
3220
        }
 
3221
        if (ndr_flags & NDR_BUFFERS) {
 
3222
                NDR_CHECK(ndr_pull_lsa_SidArray(ndr, NDR_BUFFERS, &r->sids));
 
3223
        }
 
3224
        return NDR_ERR_SUCCESS;
 
3225
}
 
3226
 
 
3227
_PUBLIC_ void ndr_print_netr_DELTA_ALIAS_MEMBER(struct ndr_print *ndr, const char *name, const struct netr_DELTA_ALIAS_MEMBER *r)
 
3228
{
 
3229
        ndr_print_struct(ndr, name, "netr_DELTA_ALIAS_MEMBER");
 
3230
        ndr->depth++;
 
3231
        ndr_print_lsa_SidArray(ndr, "sids", &r->sids);
 
3232
        ndr_print_uint32(ndr, "unknown1", r->unknown1);
 
3233
        ndr_print_uint32(ndr, "unknown2", r->unknown2);
 
3234
        ndr_print_uint32(ndr, "unknown3", r->unknown3);
 
3235
        ndr_print_uint32(ndr, "unknown4", r->unknown4);
 
3236
        ndr->depth--;
 
3237
}
 
3238
 
 
3239
static enum ndr_err_code ndr_push_netr_QUOTA_LIMITS(struct ndr_push *ndr, int ndr_flags, const struct netr_QUOTA_LIMITS *r)
 
3240
{
 
3241
        if (ndr_flags & NDR_SCALARS) {
 
3242
                NDR_CHECK(ndr_push_align(ndr, 4));
 
3243
                NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->pagedpoollimit));
 
3244
                NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->nonpagedpoollimit));
 
3245
                NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->minimumworkingsetsize));
 
3246
                NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->maximumworkingsetsize));
 
3247
                NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->pagefilelimit));
 
3248
                NDR_CHECK(ndr_push_NTTIME(ndr, NDR_SCALARS, r->timelimit));
 
3249
                NDR_CHECK(ndr_push_trailer_align(ndr, 4));
 
3250
        }
 
3251
        if (ndr_flags & NDR_BUFFERS) {
 
3252
        }
 
3253
        return NDR_ERR_SUCCESS;
 
3254
}
 
3255
 
 
3256
static enum ndr_err_code ndr_pull_netr_QUOTA_LIMITS(struct ndr_pull *ndr, int ndr_flags, struct netr_QUOTA_LIMITS *r)
 
3257
{
 
3258
        if (ndr_flags & NDR_SCALARS) {
 
3259
                NDR_CHECK(ndr_pull_align(ndr, 4));
 
3260
                NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->pagedpoollimit));
 
3261
                NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->nonpagedpoollimit));
 
3262
                NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->minimumworkingsetsize));
 
3263
                NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->maximumworkingsetsize));
 
3264
                NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->pagefilelimit));
 
3265
                NDR_CHECK(ndr_pull_NTTIME(ndr, NDR_SCALARS, &r->timelimit));
 
3266
                NDR_CHECK(ndr_pull_trailer_align(ndr, 4));
 
3267
        }
 
3268
        if (ndr_flags & NDR_BUFFERS) {
 
3269
        }
 
3270
        return NDR_ERR_SUCCESS;
 
3271
}
 
3272
 
 
3273
_PUBLIC_ void ndr_print_netr_QUOTA_LIMITS(struct ndr_print *ndr, const char *name, const struct netr_QUOTA_LIMITS *r)
 
3274
{
 
3275
        ndr_print_struct(ndr, name, "netr_QUOTA_LIMITS");
 
3276
        ndr->depth++;
 
3277
        ndr_print_uint32(ndr, "pagedpoollimit", r->pagedpoollimit);
 
3278
        ndr_print_uint32(ndr, "nonpagedpoollimit", r->nonpagedpoollimit);
 
3279
        ndr_print_uint32(ndr, "minimumworkingsetsize", r->minimumworkingsetsize);
 
3280
        ndr_print_uint32(ndr, "maximumworkingsetsize", r->maximumworkingsetsize);
 
3281
        ndr_print_uint32(ndr, "pagefilelimit", r->pagefilelimit);
 
3282
        ndr_print_NTTIME(ndr, "timelimit", r->timelimit);
 
3283
        ndr->depth--;
 
3284
}
 
3285
 
 
3286
static enum ndr_err_code ndr_push_netr_DELTA_POLICY(struct ndr_push *ndr, int ndr_flags, const struct netr_DELTA_POLICY *r)
 
3287
{
 
3288
        uint32_t cntr_eventauditoptions_1;
 
3289
        if (ndr_flags & NDR_SCALARS) {
 
3290
                NDR_CHECK(ndr_push_align(ndr, 5));
 
3291
                NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->maxlogsize));
 
3292
                NDR_CHECK(ndr_push_NTTIME(ndr, NDR_SCALARS, r->auditretentionperiod));
 
3293
                NDR_CHECK(ndr_push_uint8(ndr, NDR_SCALARS, r->auditingmode));
 
3294
                NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->maxauditeventcount));
 
3295
                NDR_CHECK(ndr_push_unique_ptr(ndr, r->eventauditoptions));
 
3296
                NDR_CHECK(ndr_push_lsa_String(ndr, NDR_SCALARS, &r->primary_domain_name));
 
3297
                NDR_CHECK(ndr_push_unique_ptr(ndr, r->sid));
 
3298
                NDR_CHECK(ndr_push_netr_QUOTA_LIMITS(ndr, NDR_SCALARS, &r->quota_limits));
 
3299
                NDR_CHECK(ndr_push_udlong(ndr, NDR_SCALARS, r->sequence_num));
 
3300
                NDR_CHECK(ndr_push_NTTIME(ndr, NDR_SCALARS, r->db_create_time));
 
3301
                NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->SecurityInformation));
 
3302
                NDR_CHECK(ndr_push_sec_desc_buf(ndr, NDR_SCALARS, &r->sdbuf));
 
3303
                NDR_CHECK(ndr_push_lsa_String(ndr, NDR_SCALARS, &r->unknown1));
 
3304
                NDR_CHECK(ndr_push_lsa_String(ndr, NDR_SCALARS, &r->unknown2));
 
3305
                NDR_CHECK(ndr_push_lsa_String(ndr, NDR_SCALARS, &r->unknown3));
 
3306
                NDR_CHECK(ndr_push_lsa_String(ndr, NDR_SCALARS, &r->unknown4));
 
3307
                NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->unknown5));
 
3308
                NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->unknown6));
 
3309
                NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->unknown7));
 
3310
                NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->unknown8));
 
3311
                NDR_CHECK(ndr_push_trailer_align(ndr, 5));
 
3312
        }
 
3313
        if (ndr_flags & NDR_BUFFERS) {
 
3314
                if (r->eventauditoptions) {
 
3315
                        NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, r->maxauditeventcount + 1));
 
3316
                        for (cntr_eventauditoptions_1 = 0; cntr_eventauditoptions_1 < r->maxauditeventcount + 1; cntr_eventauditoptions_1++) {
 
3317
                                NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->eventauditoptions[cntr_eventauditoptions_1]));
 
3318
                        }
 
3319
                }
 
3320
                NDR_CHECK(ndr_push_lsa_String(ndr, NDR_BUFFERS, &r->primary_domain_name));
 
3321
                if (r->sid) {
 
3322
                        NDR_CHECK(ndr_push_dom_sid2(ndr, NDR_SCALARS|NDR_BUFFERS, r->sid));
 
3323
                }
 
3324
                NDR_CHECK(ndr_push_sec_desc_buf(ndr, NDR_BUFFERS, &r->sdbuf));
 
3325
                NDR_CHECK(ndr_push_lsa_String(ndr, NDR_BUFFERS, &r->unknown1));
 
3326
                NDR_CHECK(ndr_push_lsa_String(ndr, NDR_BUFFERS, &r->unknown2));
 
3327
                NDR_CHECK(ndr_push_lsa_String(ndr, NDR_BUFFERS, &r->unknown3));
 
3328
                NDR_CHECK(ndr_push_lsa_String(ndr, NDR_BUFFERS, &r->unknown4));
 
3329
        }
 
3330
        return NDR_ERR_SUCCESS;
 
3331
}
 
3332
 
 
3333
static enum ndr_err_code ndr_pull_netr_DELTA_POLICY(struct ndr_pull *ndr, int ndr_flags, struct netr_DELTA_POLICY *r)
 
3334
{
 
3335
        uint32_t _ptr_eventauditoptions;
 
3336
        uint32_t cntr_eventauditoptions_1;
 
3337
        TALLOC_CTX *_mem_save_eventauditoptions_0;
 
3338
        TALLOC_CTX *_mem_save_eventauditoptions_1;
 
3339
        uint32_t _ptr_sid;
 
3340
        TALLOC_CTX *_mem_save_sid_0;
 
3341
        if (ndr_flags & NDR_SCALARS) {
 
3342
                NDR_CHECK(ndr_pull_align(ndr, 5));
 
3343
                NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->maxlogsize));
 
3344
                NDR_CHECK(ndr_pull_NTTIME(ndr, NDR_SCALARS, &r->auditretentionperiod));
 
3345
                NDR_CHECK(ndr_pull_uint8(ndr, NDR_SCALARS, &r->auditingmode));
 
3346
                NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->maxauditeventcount));
 
3347
                NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_eventauditoptions));
 
3348
                if (_ptr_eventauditoptions) {
 
3349
                        NDR_PULL_ALLOC(ndr, r->eventauditoptions);
 
3350
                } else {
 
3351
                        r->eventauditoptions = NULL;
 
3352
                }
 
3353
                NDR_CHECK(ndr_pull_lsa_String(ndr, NDR_SCALARS, &r->primary_domain_name));
 
3354
                NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_sid));
 
3355
                if (_ptr_sid) {
 
3356
                        NDR_PULL_ALLOC(ndr, r->sid);
 
3357
                } else {
 
3358
                        r->sid = NULL;
 
3359
                }
 
3360
                NDR_CHECK(ndr_pull_netr_QUOTA_LIMITS(ndr, NDR_SCALARS, &r->quota_limits));
 
3361
                NDR_CHECK(ndr_pull_udlong(ndr, NDR_SCALARS, &r->sequence_num));
 
3362
                NDR_CHECK(ndr_pull_NTTIME(ndr, NDR_SCALARS, &r->db_create_time));
 
3363
                NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->SecurityInformation));
 
3364
                NDR_CHECK(ndr_pull_sec_desc_buf(ndr, NDR_SCALARS, &r->sdbuf));
 
3365
                NDR_CHECK(ndr_pull_lsa_String(ndr, NDR_SCALARS, &r->unknown1));
 
3366
                NDR_CHECK(ndr_pull_lsa_String(ndr, NDR_SCALARS, &r->unknown2));
 
3367
                NDR_CHECK(ndr_pull_lsa_String(ndr, NDR_SCALARS, &r->unknown3));
 
3368
                NDR_CHECK(ndr_pull_lsa_String(ndr, NDR_SCALARS, &r->unknown4));
 
3369
                NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->unknown5));
 
3370
                NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->unknown6));
 
3371
                NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->unknown7));
 
3372
                NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->unknown8));
 
3373
                NDR_CHECK(ndr_pull_trailer_align(ndr, 5));
 
3374
        }
 
3375
        if (ndr_flags & NDR_BUFFERS) {
 
3376
                if (r->eventauditoptions) {
 
3377
                        _mem_save_eventauditoptions_0 = NDR_PULL_GET_MEM_CTX(ndr);
 
3378
                        NDR_PULL_SET_MEM_CTX(ndr, r->eventauditoptions, 0);
 
3379
                        NDR_CHECK(ndr_pull_array_size(ndr, &r->eventauditoptions));
 
3380
                        NDR_PULL_ALLOC_N(ndr, r->eventauditoptions, ndr_get_array_size(ndr, &r->eventauditoptions));
 
3381
                        _mem_save_eventauditoptions_1 = NDR_PULL_GET_MEM_CTX(ndr);
 
3382
                        NDR_PULL_SET_MEM_CTX(ndr, r->eventauditoptions, 0);
 
3383
                        for (cntr_eventauditoptions_1 = 0; cntr_eventauditoptions_1 < r->maxauditeventcount + 1; cntr_eventauditoptions_1++) {
 
3384
                                NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->eventauditoptions[cntr_eventauditoptions_1]));
 
3385
                        }
 
3386
                        NDR_PULL_SET_MEM_CTX(ndr, _mem_save_eventauditoptions_1, 0);
 
3387
                        NDR_PULL_SET_MEM_CTX(ndr, _mem_save_eventauditoptions_0, 0);
 
3388
                }
 
3389
                NDR_CHECK(ndr_pull_lsa_String(ndr, NDR_BUFFERS, &r->primary_domain_name));
 
3390
                if (r->sid) {
 
3391
                        _mem_save_sid_0 = NDR_PULL_GET_MEM_CTX(ndr);
 
3392
                        NDR_PULL_SET_MEM_CTX(ndr, r->sid, 0);
 
3393
                        NDR_CHECK(ndr_pull_dom_sid2(ndr, NDR_SCALARS|NDR_BUFFERS, r->sid));
 
3394
                        NDR_PULL_SET_MEM_CTX(ndr, _mem_save_sid_0, 0);
 
3395
                }
 
3396
                NDR_CHECK(ndr_pull_sec_desc_buf(ndr, NDR_BUFFERS, &r->sdbuf));
 
3397
                NDR_CHECK(ndr_pull_lsa_String(ndr, NDR_BUFFERS, &r->unknown1));
 
3398
                NDR_CHECK(ndr_pull_lsa_String(ndr, NDR_BUFFERS, &r->unknown2));
 
3399
                NDR_CHECK(ndr_pull_lsa_String(ndr, NDR_BUFFERS, &r->unknown3));
 
3400
                NDR_CHECK(ndr_pull_lsa_String(ndr, NDR_BUFFERS, &r->unknown4));
 
3401
                if (r->eventauditoptions) {
 
3402
                        NDR_CHECK(ndr_check_array_size(ndr, (void*)&r->eventauditoptions, r->maxauditeventcount + 1));
 
3403
                }
 
3404
        }
 
3405
        return NDR_ERR_SUCCESS;
 
3406
}
 
3407
 
 
3408
_PUBLIC_ void ndr_print_netr_DELTA_POLICY(struct ndr_print *ndr, const char *name, const struct netr_DELTA_POLICY *r)
 
3409
{
 
3410
        uint32_t cntr_eventauditoptions_1;
 
3411
        ndr_print_struct(ndr, name, "netr_DELTA_POLICY");
 
3412
        ndr->depth++;
 
3413
        ndr_print_uint32(ndr, "maxlogsize", r->maxlogsize);
 
3414
        ndr_print_NTTIME(ndr, "auditretentionperiod", r->auditretentionperiod);
 
3415
        ndr_print_uint8(ndr, "auditingmode", r->auditingmode);
 
3416
        ndr_print_uint32(ndr, "maxauditeventcount", r->maxauditeventcount);
 
3417
        ndr_print_ptr(ndr, "eventauditoptions", r->eventauditoptions);
 
3418
        ndr->depth++;
 
3419
        if (r->eventauditoptions) {
 
3420
                ndr->print(ndr, "%s: ARRAY(%d)", "eventauditoptions", (int)r->maxauditeventcount + 1);
 
3421
                ndr->depth++;
 
3422
                for (cntr_eventauditoptions_1=0;cntr_eventauditoptions_1<r->maxauditeventcount + 1;cntr_eventauditoptions_1++) {
 
3423
                        char *idx_1=NULL;
 
3424
                        if (asprintf(&idx_1, "[%d]", cntr_eventauditoptions_1) != -1) {
 
3425
                                ndr_print_uint32(ndr, "eventauditoptions", r->eventauditoptions[cntr_eventauditoptions_1]);
 
3426
                                free(idx_1);
 
3427
                        }
 
3428
                }
 
3429
                ndr->depth--;
 
3430
        }
 
3431
        ndr->depth--;
 
3432
        ndr_print_lsa_String(ndr, "primary_domain_name", &r->primary_domain_name);
 
3433
        ndr_print_ptr(ndr, "sid", r->sid);
 
3434
        ndr->depth++;
 
3435
        if (r->sid) {
 
3436
                ndr_print_dom_sid2(ndr, "sid", r->sid);
 
3437
        }
 
3438
        ndr->depth--;
 
3439
        ndr_print_netr_QUOTA_LIMITS(ndr, "quota_limits", &r->quota_limits);
 
3440
        ndr_print_udlong(ndr, "sequence_num", r->sequence_num);
 
3441
        ndr_print_NTTIME(ndr, "db_create_time", r->db_create_time);
 
3442
        ndr_print_uint32(ndr, "SecurityInformation", r->SecurityInformation);
 
3443
        ndr_print_sec_desc_buf(ndr, "sdbuf", &r->sdbuf);
 
3444
        ndr_print_lsa_String(ndr, "unknown1", &r->unknown1);
 
3445
        ndr_print_lsa_String(ndr, "unknown2", &r->unknown2);
 
3446
        ndr_print_lsa_String(ndr, "unknown3", &r->unknown3);
 
3447
        ndr_print_lsa_String(ndr, "unknown4", &r->unknown4);
 
3448
        ndr_print_uint32(ndr, "unknown5", r->unknown5);
 
3449
        ndr_print_uint32(ndr, "unknown6", r->unknown6);
 
3450
        ndr_print_uint32(ndr, "unknown7", r->unknown7);
 
3451
        ndr_print_uint32(ndr, "unknown8", r->unknown8);
 
3452
        ndr->depth--;
 
3453
}
 
3454
 
 
3455
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)
 
3456
{
 
3457
        uint32_t cntr_controller_names_1;
 
3458
        if (ndr_flags & NDR_SCALARS) {
 
3459
                NDR_CHECK(ndr_push_align(ndr, 5));
 
3460
                NDR_CHECK(ndr_push_lsa_String(ndr, NDR_SCALARS, &r->domain_name));
 
3461
                NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->num_controllers));
 
3462
                NDR_CHECK(ndr_push_unique_ptr(ndr, r->controller_names));
 
3463
                NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->SecurityInformation));
 
3464
                NDR_CHECK(ndr_push_sec_desc_buf(ndr, NDR_SCALARS, &r->sdbuf));
 
3465
                NDR_CHECK(ndr_push_lsa_String(ndr, NDR_SCALARS, &r->unknown1));
 
3466
                NDR_CHECK(ndr_push_lsa_String(ndr, NDR_SCALARS, &r->unknown2));
 
3467
                NDR_CHECK(ndr_push_lsa_String(ndr, NDR_SCALARS, &r->unknown3));
 
3468
                NDR_CHECK(ndr_push_lsa_String(ndr, NDR_SCALARS, &r->unknown4));
 
3469
                NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->posix_offset));
 
3470
                NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->unknown6));
 
3471
                NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->unknown7));
 
3472
                NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->unknown8));
 
3473
                NDR_CHECK(ndr_push_trailer_align(ndr, 5));
 
3474
        }
 
3475
        if (ndr_flags & NDR_BUFFERS) {
 
3476
                NDR_CHECK(ndr_push_lsa_String(ndr, NDR_BUFFERS, &r->domain_name));
 
3477
                if (r->controller_names) {
 
3478
                        NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, r->num_controllers));
 
3479
                        for (cntr_controller_names_1 = 0; cntr_controller_names_1 < r->num_controllers; cntr_controller_names_1++) {
 
3480
                                NDR_CHECK(ndr_push_lsa_String(ndr, NDR_SCALARS, &r->controller_names[cntr_controller_names_1]));
 
3481
                        }
 
3482
                        for (cntr_controller_names_1 = 0; cntr_controller_names_1 < r->num_controllers; cntr_controller_names_1++) {
 
3483
                                NDR_CHECK(ndr_push_lsa_String(ndr, NDR_BUFFERS, &r->controller_names[cntr_controller_names_1]));
 
3484
                        }
 
3485
                }
 
3486
                NDR_CHECK(ndr_push_sec_desc_buf(ndr, NDR_BUFFERS, &r->sdbuf));
 
3487
                NDR_CHECK(ndr_push_lsa_String(ndr, NDR_BUFFERS, &r->unknown1));
 
3488
                NDR_CHECK(ndr_push_lsa_String(ndr, NDR_BUFFERS, &r->unknown2));
 
3489
                NDR_CHECK(ndr_push_lsa_String(ndr, NDR_BUFFERS, &r->unknown3));
 
3490
                NDR_CHECK(ndr_push_lsa_String(ndr, NDR_BUFFERS, &r->unknown4));
 
3491
        }
 
3492
        return NDR_ERR_SUCCESS;
 
3493
}
 
3494
 
 
3495
static enum ndr_err_code ndr_pull_netr_DELTA_TRUSTED_DOMAIN(struct ndr_pull *ndr, int ndr_flags, struct netr_DELTA_TRUSTED_DOMAIN *r)
 
3496
{
 
3497
        uint32_t _ptr_controller_names;
 
3498
        uint32_t cntr_controller_names_1;
 
3499
        TALLOC_CTX *_mem_save_controller_names_0;
 
3500
        TALLOC_CTX *_mem_save_controller_names_1;
 
3501
        if (ndr_flags & NDR_SCALARS) {
 
3502
                NDR_CHECK(ndr_pull_align(ndr, 5));
 
3503
                NDR_CHECK(ndr_pull_lsa_String(ndr, NDR_SCALARS, &r->domain_name));
 
3504
                NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->num_controllers));
 
3505
                NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_controller_names));
 
3506
                if (_ptr_controller_names) {
 
3507
                        NDR_PULL_ALLOC(ndr, r->controller_names);
 
3508
                } else {
 
3509
                        r->controller_names = NULL;
 
3510
                }
 
3511
                NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->SecurityInformation));
 
3512
                NDR_CHECK(ndr_pull_sec_desc_buf(ndr, NDR_SCALARS, &r->sdbuf));
 
3513
                NDR_CHECK(ndr_pull_lsa_String(ndr, NDR_SCALARS, &r->unknown1));
 
3514
                NDR_CHECK(ndr_pull_lsa_String(ndr, NDR_SCALARS, &r->unknown2));
 
3515
                NDR_CHECK(ndr_pull_lsa_String(ndr, NDR_SCALARS, &r->unknown3));
 
3516
                NDR_CHECK(ndr_pull_lsa_String(ndr, NDR_SCALARS, &r->unknown4));
 
3517
                NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->posix_offset));
 
3518
                NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->unknown6));
 
3519
                NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->unknown7));
 
3520
                NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->unknown8));
 
3521
                NDR_CHECK(ndr_pull_trailer_align(ndr, 5));
 
3522
        }
 
3523
        if (ndr_flags & NDR_BUFFERS) {
 
3524
                NDR_CHECK(ndr_pull_lsa_String(ndr, NDR_BUFFERS, &r->domain_name));
 
3525
                if (r->controller_names) {
 
3526
                        _mem_save_controller_names_0 = NDR_PULL_GET_MEM_CTX(ndr);
 
3527
                        NDR_PULL_SET_MEM_CTX(ndr, r->controller_names, 0);
 
3528
                        NDR_CHECK(ndr_pull_array_size(ndr, &r->controller_names));
 
3529
                        NDR_PULL_ALLOC_N(ndr, r->controller_names, ndr_get_array_size(ndr, &r->controller_names));
 
3530
                        _mem_save_controller_names_1 = NDR_PULL_GET_MEM_CTX(ndr);
 
3531
                        NDR_PULL_SET_MEM_CTX(ndr, r->controller_names, 0);
 
3532
                        for (cntr_controller_names_1 = 0; cntr_controller_names_1 < r->num_controllers; cntr_controller_names_1++) {
 
3533
                                NDR_CHECK(ndr_pull_lsa_String(ndr, NDR_SCALARS, &r->controller_names[cntr_controller_names_1]));
 
3534
                        }
 
3535
                        for (cntr_controller_names_1 = 0; cntr_controller_names_1 < r->num_controllers; cntr_controller_names_1++) {
 
3536
                                NDR_CHECK(ndr_pull_lsa_String(ndr, NDR_BUFFERS, &r->controller_names[cntr_controller_names_1]));
 
3537
                        }
 
3538
                        NDR_PULL_SET_MEM_CTX(ndr, _mem_save_controller_names_1, 0);
 
3539
                        NDR_PULL_SET_MEM_CTX(ndr, _mem_save_controller_names_0, 0);
 
3540
                }
 
3541
                NDR_CHECK(ndr_pull_sec_desc_buf(ndr, NDR_BUFFERS, &r->sdbuf));
 
3542
                NDR_CHECK(ndr_pull_lsa_String(ndr, NDR_BUFFERS, &r->unknown1));
 
3543
                NDR_CHECK(ndr_pull_lsa_String(ndr, NDR_BUFFERS, &r->unknown2));
 
3544
                NDR_CHECK(ndr_pull_lsa_String(ndr, NDR_BUFFERS, &r->unknown3));
 
3545
                NDR_CHECK(ndr_pull_lsa_String(ndr, NDR_BUFFERS, &r->unknown4));
 
3546
                if (r->controller_names) {
 
3547
                        NDR_CHECK(ndr_check_array_size(ndr, (void*)&r->controller_names, r->num_controllers));
 
3548
                }
 
3549
        }
 
3550
        return NDR_ERR_SUCCESS;
 
3551
}
 
3552
 
 
3553
_PUBLIC_ void ndr_print_netr_DELTA_TRUSTED_DOMAIN(struct ndr_print *ndr, const char *name, const struct netr_DELTA_TRUSTED_DOMAIN *r)
 
3554
{
 
3555
        uint32_t cntr_controller_names_1;
 
3556
        ndr_print_struct(ndr, name, "netr_DELTA_TRUSTED_DOMAIN");
 
3557
        ndr->depth++;
 
3558
        ndr_print_lsa_String(ndr, "domain_name", &r->domain_name);
 
3559
        ndr_print_uint32(ndr, "num_controllers", r->num_controllers);
 
3560
        ndr_print_ptr(ndr, "controller_names", r->controller_names);
 
3561
        ndr->depth++;
 
3562
        if (r->controller_names) {
 
3563
                ndr->print(ndr, "%s: ARRAY(%d)", "controller_names", (int)r->num_controllers);
 
3564
                ndr->depth++;
 
3565
                for (cntr_controller_names_1=0;cntr_controller_names_1<r->num_controllers;cntr_controller_names_1++) {
 
3566
                        char *idx_1=NULL;
 
3567
                        if (asprintf(&idx_1, "[%d]", cntr_controller_names_1) != -1) {
 
3568
                                ndr_print_lsa_String(ndr, "controller_names", &r->controller_names[cntr_controller_names_1]);
 
3569
                                free(idx_1);
 
3570
                        }
 
3571
                }
 
3572
                ndr->depth--;
 
3573
        }
 
3574
        ndr->depth--;
 
3575
        ndr_print_uint32(ndr, "SecurityInformation", r->SecurityInformation);
 
3576
        ndr_print_sec_desc_buf(ndr, "sdbuf", &r->sdbuf);
 
3577
        ndr_print_lsa_String(ndr, "unknown1", &r->unknown1);
 
3578
        ndr_print_lsa_String(ndr, "unknown2", &r->unknown2);
 
3579
        ndr_print_lsa_String(ndr, "unknown3", &r->unknown3);
 
3580
        ndr_print_lsa_String(ndr, "unknown4", &r->unknown4);
 
3581
        ndr_print_uint32(ndr, "posix_offset", r->posix_offset);
 
3582
        ndr_print_uint32(ndr, "unknown6", r->unknown6);
 
3583
        ndr_print_uint32(ndr, "unknown7", r->unknown7);
 
3584
        ndr_print_uint32(ndr, "unknown8", r->unknown8);
 
3585
        ndr->depth--;
 
3586
}
 
3587
 
 
3588
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)
 
3589
{
 
3590
        if (ndr_flags & NDR_SCALARS) {
 
3591
                NDR_CHECK(ndr_push_align(ndr, 2));
 
3592
                NDR_CHECK(ndr_push_uint16(ndr, NDR_SCALARS, r->unknown));
 
3593
                NDR_CHECK(ndr_push_trailer_align(ndr, 2));
 
3594
        }
 
3595
        if (ndr_flags & NDR_BUFFERS) {
 
3596
        }
 
3597
        return NDR_ERR_SUCCESS;
 
3598
}
 
3599
 
 
3600
static enum ndr_err_code ndr_pull_netr_DELTA_DELETE_TRUST(struct ndr_pull *ndr, int ndr_flags, struct netr_DELTA_DELETE_TRUST *r)
 
3601
{
 
3602
        if (ndr_flags & NDR_SCALARS) {
 
3603
                NDR_CHECK(ndr_pull_align(ndr, 2));
 
3604
                NDR_CHECK(ndr_pull_uint16(ndr, NDR_SCALARS, &r->unknown));
 
3605
                NDR_CHECK(ndr_pull_trailer_align(ndr, 2));
 
3606
        }
 
3607
        if (ndr_flags & NDR_BUFFERS) {
 
3608
        }
 
3609
        return NDR_ERR_SUCCESS;
 
3610
}
 
3611
 
 
3612
_PUBLIC_ void ndr_print_netr_DELTA_DELETE_TRUST(struct ndr_print *ndr, const char *name, const struct netr_DELTA_DELETE_TRUST *r)
 
3613
{
 
3614
        ndr_print_struct(ndr, name, "netr_DELTA_DELETE_TRUST");
 
3615
        ndr->depth++;
 
3616
        ndr_print_uint16(ndr, "unknown", r->unknown);
 
3617
        ndr->depth--;
 
3618
}
 
3619
 
 
3620
static enum ndr_err_code ndr_push_netr_DELTA_ACCOUNT(struct ndr_push *ndr, int ndr_flags, const struct netr_DELTA_ACCOUNT *r)
 
3621
{
 
3622
        uint32_t cntr_privilege_attrib_1;
 
3623
        uint32_t cntr_privilege_name_1;
 
3624
        if (ndr_flags & NDR_SCALARS) {
 
3625
                NDR_CHECK(ndr_push_align(ndr, 5));
 
3626
                NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->privilege_entries));
 
3627
                NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->privilege_control));
 
3628
                NDR_CHECK(ndr_push_unique_ptr(ndr, r->privilege_attrib));
 
3629
                NDR_CHECK(ndr_push_unique_ptr(ndr, r->privilege_name));
 
3630
                NDR_CHECK(ndr_push_netr_QUOTA_LIMITS(ndr, NDR_SCALARS, &r->quotalimits));
 
3631
                NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->system_flags));
 
3632
                NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->SecurityInformation));
 
3633
                NDR_CHECK(ndr_push_sec_desc_buf(ndr, NDR_SCALARS, &r->sdbuf));
 
3634
                NDR_CHECK(ndr_push_lsa_String(ndr, NDR_SCALARS, &r->unknown1));
 
3635
                NDR_CHECK(ndr_push_lsa_String(ndr, NDR_SCALARS, &r->unknown2));
 
3636
                NDR_CHECK(ndr_push_lsa_String(ndr, NDR_SCALARS, &r->unknown3));
 
3637
                NDR_CHECK(ndr_push_lsa_String(ndr, NDR_SCALARS, &r->unknown4));
 
3638
                NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->unknown5));
 
3639
                NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->unknown6));
 
3640
                NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->unknown7));
 
3641
                NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->unknown8));
 
3642
                NDR_CHECK(ndr_push_trailer_align(ndr, 5));
 
3643
        }
 
3644
        if (ndr_flags & NDR_BUFFERS) {
 
3645
                if (r->privilege_attrib) {
 
3646
                        NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, r->privilege_entries));
 
3647
                        for (cntr_privilege_attrib_1 = 0; cntr_privilege_attrib_1 < r->privilege_entries; cntr_privilege_attrib_1++) {
 
3648
                                NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->privilege_attrib[cntr_privilege_attrib_1]));
 
3649
                        }
 
3650
                }
 
3651
                if (r->privilege_name) {
 
3652
                        NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, r->privilege_entries));
 
3653
                        for (cntr_privilege_name_1 = 0; cntr_privilege_name_1 < r->privilege_entries; cntr_privilege_name_1++) {
 
3654
                                NDR_CHECK(ndr_push_lsa_String(ndr, NDR_SCALARS, &r->privilege_name[cntr_privilege_name_1]));
 
3655
                        }
 
3656
                        for (cntr_privilege_name_1 = 0; cntr_privilege_name_1 < r->privilege_entries; cntr_privilege_name_1++) {
 
3657
                                NDR_CHECK(ndr_push_lsa_String(ndr, NDR_BUFFERS, &r->privilege_name[cntr_privilege_name_1]));
 
3658
                        }
 
3659
                }
 
3660
                NDR_CHECK(ndr_push_sec_desc_buf(ndr, NDR_BUFFERS, &r->sdbuf));
 
3661
                NDR_CHECK(ndr_push_lsa_String(ndr, NDR_BUFFERS, &r->unknown1));
 
3662
                NDR_CHECK(ndr_push_lsa_String(ndr, NDR_BUFFERS, &r->unknown2));
 
3663
                NDR_CHECK(ndr_push_lsa_String(ndr, NDR_BUFFERS, &r->unknown3));
 
3664
                NDR_CHECK(ndr_push_lsa_String(ndr, NDR_BUFFERS, &r->unknown4));
 
3665
        }
 
3666
        return NDR_ERR_SUCCESS;
 
3667
}
 
3668
 
 
3669
static enum ndr_err_code ndr_pull_netr_DELTA_ACCOUNT(struct ndr_pull *ndr, int ndr_flags, struct netr_DELTA_ACCOUNT *r)
 
3670
{
 
3671
        uint32_t _ptr_privilege_attrib;
 
3672
        uint32_t cntr_privilege_attrib_1;
 
3673
        TALLOC_CTX *_mem_save_privilege_attrib_0;
 
3674
        TALLOC_CTX *_mem_save_privilege_attrib_1;
 
3675
        uint32_t _ptr_privilege_name;
 
3676
        uint32_t cntr_privilege_name_1;
 
3677
        TALLOC_CTX *_mem_save_privilege_name_0;
 
3678
        TALLOC_CTX *_mem_save_privilege_name_1;
 
3679
        if (ndr_flags & NDR_SCALARS) {
 
3680
                NDR_CHECK(ndr_pull_align(ndr, 5));
 
3681
                NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->privilege_entries));
 
3682
                NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->privilege_control));
 
3683
                NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_privilege_attrib));
 
3684
                if (_ptr_privilege_attrib) {
 
3685
                        NDR_PULL_ALLOC(ndr, r->privilege_attrib);
 
3686
                } else {
 
3687
                        r->privilege_attrib = NULL;
 
3688
                }
 
3689
                NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_privilege_name));
 
3690
                if (_ptr_privilege_name) {
 
3691
                        NDR_PULL_ALLOC(ndr, r->privilege_name);
 
3692
                } else {
 
3693
                        r->privilege_name = NULL;
 
3694
                }
 
3695
                NDR_CHECK(ndr_pull_netr_QUOTA_LIMITS(ndr, NDR_SCALARS, &r->quotalimits));
 
3696
                NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->system_flags));
 
3697
                NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->SecurityInformation));
 
3698
                NDR_CHECK(ndr_pull_sec_desc_buf(ndr, NDR_SCALARS, &r->sdbuf));
 
3699
                NDR_CHECK(ndr_pull_lsa_String(ndr, NDR_SCALARS, &r->unknown1));
 
3700
                NDR_CHECK(ndr_pull_lsa_String(ndr, NDR_SCALARS, &r->unknown2));
 
3701
                NDR_CHECK(ndr_pull_lsa_String(ndr, NDR_SCALARS, &r->unknown3));
 
3702
                NDR_CHECK(ndr_pull_lsa_String(ndr, NDR_SCALARS, &r->unknown4));
 
3703
                NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->unknown5));
 
3704
                NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->unknown6));
 
3705
                NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->unknown7));
 
3706
                NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->unknown8));
 
3707
                NDR_CHECK(ndr_pull_trailer_align(ndr, 5));
 
3708
        }
 
3709
        if (ndr_flags & NDR_BUFFERS) {
 
3710
                if (r->privilege_attrib) {
 
3711
                        _mem_save_privilege_attrib_0 = NDR_PULL_GET_MEM_CTX(ndr);
 
3712
                        NDR_PULL_SET_MEM_CTX(ndr, r->privilege_attrib, 0);
 
3713
                        NDR_CHECK(ndr_pull_array_size(ndr, &r->privilege_attrib));
 
3714
                        NDR_PULL_ALLOC_N(ndr, r->privilege_attrib, ndr_get_array_size(ndr, &r->privilege_attrib));
 
3715
                        _mem_save_privilege_attrib_1 = NDR_PULL_GET_MEM_CTX(ndr);
 
3716
                        NDR_PULL_SET_MEM_CTX(ndr, r->privilege_attrib, 0);
 
3717
                        for (cntr_privilege_attrib_1 = 0; cntr_privilege_attrib_1 < r->privilege_entries; cntr_privilege_attrib_1++) {
 
3718
                                NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->privilege_attrib[cntr_privilege_attrib_1]));
 
3719
                        }
 
3720
                        NDR_PULL_SET_MEM_CTX(ndr, _mem_save_privilege_attrib_1, 0);
 
3721
                        NDR_PULL_SET_MEM_CTX(ndr, _mem_save_privilege_attrib_0, 0);
 
3722
                }
 
3723
                if (r->privilege_name) {
 
3724
                        _mem_save_privilege_name_0 = NDR_PULL_GET_MEM_CTX(ndr);
 
3725
                        NDR_PULL_SET_MEM_CTX(ndr, r->privilege_name, 0);
 
3726
                        NDR_CHECK(ndr_pull_array_size(ndr, &r->privilege_name));
 
3727
                        NDR_PULL_ALLOC_N(ndr, r->privilege_name, ndr_get_array_size(ndr, &r->privilege_name));
 
3728
                        _mem_save_privilege_name_1 = NDR_PULL_GET_MEM_CTX(ndr);
 
3729
                        NDR_PULL_SET_MEM_CTX(ndr, r->privilege_name, 0);
 
3730
                        for (cntr_privilege_name_1 = 0; cntr_privilege_name_1 < r->privilege_entries; cntr_privilege_name_1++) {
 
3731
                                NDR_CHECK(ndr_pull_lsa_String(ndr, NDR_SCALARS, &r->privilege_name[cntr_privilege_name_1]));
 
3732
                        }
 
3733
                        for (cntr_privilege_name_1 = 0; cntr_privilege_name_1 < r->privilege_entries; cntr_privilege_name_1++) {
 
3734
                                NDR_CHECK(ndr_pull_lsa_String(ndr, NDR_BUFFERS, &r->privilege_name[cntr_privilege_name_1]));
 
3735
                        }
 
3736
                        NDR_PULL_SET_MEM_CTX(ndr, _mem_save_privilege_name_1, 0);
 
3737
                        NDR_PULL_SET_MEM_CTX(ndr, _mem_save_privilege_name_0, 0);
 
3738
                }
 
3739
                NDR_CHECK(ndr_pull_sec_desc_buf(ndr, NDR_BUFFERS, &r->sdbuf));
 
3740
                NDR_CHECK(ndr_pull_lsa_String(ndr, NDR_BUFFERS, &r->unknown1));
 
3741
                NDR_CHECK(ndr_pull_lsa_String(ndr, NDR_BUFFERS, &r->unknown2));
 
3742
                NDR_CHECK(ndr_pull_lsa_String(ndr, NDR_BUFFERS, &r->unknown3));
 
3743
                NDR_CHECK(ndr_pull_lsa_String(ndr, NDR_BUFFERS, &r->unknown4));
 
3744
                if (r->privilege_attrib) {
 
3745
                        NDR_CHECK(ndr_check_array_size(ndr, (void*)&r->privilege_attrib, r->privilege_entries));
 
3746
                }
 
3747
                if (r->privilege_name) {
 
3748
                        NDR_CHECK(ndr_check_array_size(ndr, (void*)&r->privilege_name, r->privilege_entries));
 
3749
                }
 
3750
        }
 
3751
        return NDR_ERR_SUCCESS;
 
3752
}
 
3753
 
 
3754
_PUBLIC_ void ndr_print_netr_DELTA_ACCOUNT(struct ndr_print *ndr, const char *name, const struct netr_DELTA_ACCOUNT *r)
 
3755
{
 
3756
        uint32_t cntr_privilege_attrib_1;
 
3757
        uint32_t cntr_privilege_name_1;
 
3758
        ndr_print_struct(ndr, name, "netr_DELTA_ACCOUNT");
 
3759
        ndr->depth++;
 
3760
        ndr_print_uint32(ndr, "privilege_entries", r->privilege_entries);
 
3761
        ndr_print_uint32(ndr, "privilege_control", r->privilege_control);
 
3762
        ndr_print_ptr(ndr, "privilege_attrib", r->privilege_attrib);
 
3763
        ndr->depth++;
 
3764
        if (r->privilege_attrib) {
 
3765
                ndr->print(ndr, "%s: ARRAY(%d)", "privilege_attrib", (int)r->privilege_entries);
 
3766
                ndr->depth++;
 
3767
                for (cntr_privilege_attrib_1=0;cntr_privilege_attrib_1<r->privilege_entries;cntr_privilege_attrib_1++) {
 
3768
                        char *idx_1=NULL;
 
3769
                        if (asprintf(&idx_1, "[%d]", cntr_privilege_attrib_1) != -1) {
 
3770
                                ndr_print_uint32(ndr, "privilege_attrib", r->privilege_attrib[cntr_privilege_attrib_1]);
 
3771
                                free(idx_1);
 
3772
                        }
 
3773
                }
 
3774
                ndr->depth--;
 
3775
        }
 
3776
        ndr->depth--;
 
3777
        ndr_print_ptr(ndr, "privilege_name", r->privilege_name);
 
3778
        ndr->depth++;
 
3779
        if (r->privilege_name) {
 
3780
                ndr->print(ndr, "%s: ARRAY(%d)", "privilege_name", (int)r->privilege_entries);
 
3781
                ndr->depth++;
 
3782
                for (cntr_privilege_name_1=0;cntr_privilege_name_1<r->privilege_entries;cntr_privilege_name_1++) {
 
3783
                        char *idx_1=NULL;
 
3784
                        if (asprintf(&idx_1, "[%d]", cntr_privilege_name_1) != -1) {
 
3785
                                ndr_print_lsa_String(ndr, "privilege_name", &r->privilege_name[cntr_privilege_name_1]);
 
3786
                                free(idx_1);
 
3787
                        }
 
3788
                }
 
3789
                ndr->depth--;
 
3790
        }
 
3791
        ndr->depth--;
 
3792
        ndr_print_netr_QUOTA_LIMITS(ndr, "quotalimits", &r->quotalimits);
 
3793
        ndr_print_uint32(ndr, "system_flags", r->system_flags);
 
3794
        ndr_print_uint32(ndr, "SecurityInformation", r->SecurityInformation);
 
3795
        ndr_print_sec_desc_buf(ndr, "sdbuf", &r->sdbuf);
 
3796
        ndr_print_lsa_String(ndr, "unknown1", &r->unknown1);
 
3797
        ndr_print_lsa_String(ndr, "unknown2", &r->unknown2);
 
3798
        ndr_print_lsa_String(ndr, "unknown3", &r->unknown3);
 
3799
        ndr_print_lsa_String(ndr, "unknown4", &r->unknown4);
 
3800
        ndr_print_uint32(ndr, "unknown5", r->unknown5);
 
3801
        ndr_print_uint32(ndr, "unknown6", r->unknown6);
 
3802
        ndr_print_uint32(ndr, "unknown7", r->unknown7);
 
3803
        ndr_print_uint32(ndr, "unknown8", r->unknown8);
 
3804
        ndr->depth--;
 
3805
}
 
3806
 
 
3807
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)
 
3808
{
 
3809
        if (ndr_flags & NDR_SCALARS) {
 
3810
                NDR_CHECK(ndr_push_align(ndr, 2));
 
3811
                NDR_CHECK(ndr_push_uint16(ndr, NDR_SCALARS, r->unknown));
 
3812
                NDR_CHECK(ndr_push_trailer_align(ndr, 2));
 
3813
        }
 
3814
        if (ndr_flags & NDR_BUFFERS) {
 
3815
        }
 
3816
        return NDR_ERR_SUCCESS;
 
3817
}
 
3818
 
 
3819
static enum ndr_err_code ndr_pull_netr_DELTA_DELETE_ACCOUNT(struct ndr_pull *ndr, int ndr_flags, struct netr_DELTA_DELETE_ACCOUNT *r)
 
3820
{
 
3821
        if (ndr_flags & NDR_SCALARS) {
 
3822
                NDR_CHECK(ndr_pull_align(ndr, 2));
 
3823
                NDR_CHECK(ndr_pull_uint16(ndr, NDR_SCALARS, &r->unknown));
 
3824
                NDR_CHECK(ndr_pull_trailer_align(ndr, 2));
 
3825
        }
 
3826
        if (ndr_flags & NDR_BUFFERS) {
 
3827
        }
 
3828
        return NDR_ERR_SUCCESS;
 
3829
}
 
3830
 
 
3831
_PUBLIC_ void ndr_print_netr_DELTA_DELETE_ACCOUNT(struct ndr_print *ndr, const char *name, const struct netr_DELTA_DELETE_ACCOUNT *r)
 
3832
{
 
3833
        ndr_print_struct(ndr, name, "netr_DELTA_DELETE_ACCOUNT");
 
3834
        ndr->depth++;
 
3835
        ndr_print_uint16(ndr, "unknown", r->unknown);
 
3836
        ndr->depth--;
 
3837
}
 
3838
 
 
3839
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)
 
3840
{
 
3841
        if (ndr_flags & NDR_SCALARS) {
 
3842
                NDR_CHECK(ndr_push_align(ndr, 2));
 
3843
                NDR_CHECK(ndr_push_uint16(ndr, NDR_SCALARS, r->unknown));
 
3844
                NDR_CHECK(ndr_push_trailer_align(ndr, 2));
 
3845
        }
 
3846
        if (ndr_flags & NDR_BUFFERS) {
 
3847
        }
 
3848
        return NDR_ERR_SUCCESS;
 
3849
}
 
3850
 
 
3851
static enum ndr_err_code ndr_pull_netr_DELTA_DELETE_SECRET(struct ndr_pull *ndr, int ndr_flags, struct netr_DELTA_DELETE_SECRET *r)
 
3852
{
 
3853
        if (ndr_flags & NDR_SCALARS) {
 
3854
                NDR_CHECK(ndr_pull_align(ndr, 2));
 
3855
                NDR_CHECK(ndr_pull_uint16(ndr, NDR_SCALARS, &r->unknown));
 
3856
                NDR_CHECK(ndr_pull_trailer_align(ndr, 2));
 
3857
        }
 
3858
        if (ndr_flags & NDR_BUFFERS) {
 
3859
        }
 
3860
        return NDR_ERR_SUCCESS;
 
3861
}
 
3862
 
 
3863
_PUBLIC_ void ndr_print_netr_DELTA_DELETE_SECRET(struct ndr_print *ndr, const char *name, const struct netr_DELTA_DELETE_SECRET *r)
 
3864
{
 
3865
        ndr_print_struct(ndr, name, "netr_DELTA_DELETE_SECRET");
 
3866
        ndr->depth++;
 
3867
        ndr_print_uint16(ndr, "unknown", r->unknown);
 
3868
        ndr->depth--;
 
3869
}
 
3870
 
 
3871
static enum ndr_err_code ndr_push_netr_CIPHER_VALUE(struct ndr_push *ndr, int ndr_flags, const struct netr_CIPHER_VALUE *r)
 
3872
{
 
3873
        if (ndr_flags & NDR_SCALARS) {
 
3874
                NDR_CHECK(ndr_push_align(ndr, 5));
 
3875
                NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->len));
 
3876
                NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->maxlen));
 
3877
                NDR_CHECK(ndr_push_unique_ptr(ndr, r->cipher_data));
 
3878
                NDR_CHECK(ndr_push_trailer_align(ndr, 5));
 
3879
        }
 
3880
        if (ndr_flags & NDR_BUFFERS) {
 
3881
                if (r->cipher_data) {
 
3882
                        NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, r->maxlen));
 
3883
                        NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, 0));
 
3884
                        NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, r->len));
 
3885
                        NDR_CHECK(ndr_push_array_uint8(ndr, NDR_SCALARS, r->cipher_data, r->len));
 
3886
                }
 
3887
        }
 
3888
        return NDR_ERR_SUCCESS;
 
3889
}
 
3890
 
 
3891
static enum ndr_err_code ndr_pull_netr_CIPHER_VALUE(struct ndr_pull *ndr, int ndr_flags, struct netr_CIPHER_VALUE *r)
 
3892
{
 
3893
        uint32_t _ptr_cipher_data;
 
3894
        TALLOC_CTX *_mem_save_cipher_data_0;
 
3895
        if (ndr_flags & NDR_SCALARS) {
 
3896
                NDR_CHECK(ndr_pull_align(ndr, 5));
 
3897
                NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->len));
 
3898
                NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->maxlen));
 
3899
                NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_cipher_data));
 
3900
                if (_ptr_cipher_data) {
 
3901
                        NDR_PULL_ALLOC(ndr, r->cipher_data);
 
3902
                } else {
 
3903
                        r->cipher_data = NULL;
 
3904
                }
 
3905
                NDR_CHECK(ndr_pull_trailer_align(ndr, 5));
 
3906
        }
 
3907
        if (ndr_flags & NDR_BUFFERS) {
 
3908
                if (r->cipher_data) {
 
3909
                        _mem_save_cipher_data_0 = NDR_PULL_GET_MEM_CTX(ndr);
 
3910
                        NDR_PULL_SET_MEM_CTX(ndr, r->cipher_data, 0);
 
3911
                        NDR_CHECK(ndr_pull_array_size(ndr, &r->cipher_data));
 
3912
                        NDR_CHECK(ndr_pull_array_length(ndr, &r->cipher_data));
 
3913
                        if (ndr_get_array_length(ndr, &r->cipher_data) > ndr_get_array_size(ndr, &r->cipher_data)) {
 
3914
                                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));
 
3915
                        }
 
3916
                        NDR_PULL_ALLOC_N(ndr, r->cipher_data, ndr_get_array_size(ndr, &r->cipher_data));
 
3917
                        NDR_CHECK(ndr_pull_array_uint8(ndr, NDR_SCALARS, r->cipher_data, ndr_get_array_length(ndr, &r->cipher_data)));
 
3918
                        NDR_PULL_SET_MEM_CTX(ndr, _mem_save_cipher_data_0, 0);
 
3919
                }
 
3920
                if (r->cipher_data) {
 
3921
                        NDR_CHECK(ndr_check_array_size(ndr, (void*)&r->cipher_data, r->maxlen));
 
3922
                }
 
3923
                if (r->cipher_data) {
 
3924
                        NDR_CHECK(ndr_check_array_length(ndr, (void*)&r->cipher_data, r->len));
 
3925
                }
 
3926
        }
 
3927
        return NDR_ERR_SUCCESS;
 
3928
}
 
3929
 
 
3930
_PUBLIC_ void ndr_print_netr_CIPHER_VALUE(struct ndr_print *ndr, const char *name, const struct netr_CIPHER_VALUE *r)
 
3931
{
 
3932
        ndr_print_struct(ndr, name, "netr_CIPHER_VALUE");
 
3933
        ndr->depth++;
 
3934
        ndr_print_uint32(ndr, "len", r->len);
 
3935
        ndr_print_uint32(ndr, "maxlen", r->maxlen);
 
3936
        ndr_print_ptr(ndr, "cipher_data", r->cipher_data);
 
3937
        ndr->depth++;
 
3938
        if (r->cipher_data) {
 
3939
                ndr_print_array_uint8(ndr, "cipher_data", r->cipher_data, r->len);
 
3940
        }
 
3941
        ndr->depth--;
 
3942
        ndr->depth--;
 
3943
}
 
3944
 
 
3945
static enum ndr_err_code ndr_push_netr_DELTA_SECRET(struct ndr_push *ndr, int ndr_flags, const struct netr_DELTA_SECRET *r)
 
3946
{
 
3947
        if (ndr_flags & NDR_SCALARS) {
 
3948
                NDR_CHECK(ndr_push_align(ndr, 5));
 
3949
                NDR_CHECK(ndr_push_netr_CIPHER_VALUE(ndr, NDR_SCALARS, &r->current_cipher));
 
3950
                NDR_CHECK(ndr_push_NTTIME(ndr, NDR_SCALARS, r->current_cipher_set_time));
 
3951
                NDR_CHECK(ndr_push_netr_CIPHER_VALUE(ndr, NDR_SCALARS, &r->old_cipher));
 
3952
                NDR_CHECK(ndr_push_NTTIME(ndr, NDR_SCALARS, r->old_cipher_set_time));
 
3953
                NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->SecurityInformation));
 
3954
                NDR_CHECK(ndr_push_sec_desc_buf(ndr, NDR_SCALARS, &r->sdbuf));
 
3955
                NDR_CHECK(ndr_push_lsa_String(ndr, NDR_SCALARS, &r->unknown1));
 
3956
                NDR_CHECK(ndr_push_lsa_String(ndr, NDR_SCALARS, &r->unknown2));
 
3957
                NDR_CHECK(ndr_push_lsa_String(ndr, NDR_SCALARS, &r->unknown3));
 
3958
                NDR_CHECK(ndr_push_lsa_String(ndr, NDR_SCALARS, &r->unknown4));
 
3959
                NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->unknown5));
 
3960
                NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->unknown6));
 
3961
                NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->unknown7));
 
3962
                NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->unknown8));
 
3963
                NDR_CHECK(ndr_push_trailer_align(ndr, 5));
 
3964
        }
 
3965
        if (ndr_flags & NDR_BUFFERS) {
 
3966
                NDR_CHECK(ndr_push_netr_CIPHER_VALUE(ndr, NDR_BUFFERS, &r->current_cipher));
 
3967
                NDR_CHECK(ndr_push_netr_CIPHER_VALUE(ndr, NDR_BUFFERS, &r->old_cipher));
 
3968
                NDR_CHECK(ndr_push_sec_desc_buf(ndr, NDR_BUFFERS, &r->sdbuf));
 
3969
                NDR_CHECK(ndr_push_lsa_String(ndr, NDR_BUFFERS, &r->unknown1));
 
3970
                NDR_CHECK(ndr_push_lsa_String(ndr, NDR_BUFFERS, &r->unknown2));
 
3971
                NDR_CHECK(ndr_push_lsa_String(ndr, NDR_BUFFERS, &r->unknown3));
 
3972
                NDR_CHECK(ndr_push_lsa_String(ndr, NDR_BUFFERS, &r->unknown4));
 
3973
        }
 
3974
        return NDR_ERR_SUCCESS;
 
3975
}
 
3976
 
 
3977
static enum ndr_err_code ndr_pull_netr_DELTA_SECRET(struct ndr_pull *ndr, int ndr_flags, struct netr_DELTA_SECRET *r)
 
3978
{
 
3979
        if (ndr_flags & NDR_SCALARS) {
 
3980
                NDR_CHECK(ndr_pull_align(ndr, 5));
 
3981
                NDR_CHECK(ndr_pull_netr_CIPHER_VALUE(ndr, NDR_SCALARS, &r->current_cipher));
 
3982
                NDR_CHECK(ndr_pull_NTTIME(ndr, NDR_SCALARS, &r->current_cipher_set_time));
 
3983
                NDR_CHECK(ndr_pull_netr_CIPHER_VALUE(ndr, NDR_SCALARS, &r->old_cipher));
 
3984
                NDR_CHECK(ndr_pull_NTTIME(ndr, NDR_SCALARS, &r->old_cipher_set_time));
 
3985
                NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->SecurityInformation));
 
3986
                NDR_CHECK(ndr_pull_sec_desc_buf(ndr, NDR_SCALARS, &r->sdbuf));
 
3987
                NDR_CHECK(ndr_pull_lsa_String(ndr, NDR_SCALARS, &r->unknown1));
 
3988
                NDR_CHECK(ndr_pull_lsa_String(ndr, NDR_SCALARS, &r->unknown2));
 
3989
                NDR_CHECK(ndr_pull_lsa_String(ndr, NDR_SCALARS, &r->unknown3));
 
3990
                NDR_CHECK(ndr_pull_lsa_String(ndr, NDR_SCALARS, &r->unknown4));
 
3991
                NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->unknown5));
 
3992
                NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->unknown6));
 
3993
                NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->unknown7));
 
3994
                NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->unknown8));
 
3995
                NDR_CHECK(ndr_pull_trailer_align(ndr, 5));
 
3996
        }
 
3997
        if (ndr_flags & NDR_BUFFERS) {
 
3998
                NDR_CHECK(ndr_pull_netr_CIPHER_VALUE(ndr, NDR_BUFFERS, &r->current_cipher));
 
3999
                NDR_CHECK(ndr_pull_netr_CIPHER_VALUE(ndr, NDR_BUFFERS, &r->old_cipher));
 
4000
                NDR_CHECK(ndr_pull_sec_desc_buf(ndr, NDR_BUFFERS, &r->sdbuf));
 
4001
                NDR_CHECK(ndr_pull_lsa_String(ndr, NDR_BUFFERS, &r->unknown1));
 
4002
                NDR_CHECK(ndr_pull_lsa_String(ndr, NDR_BUFFERS, &r->unknown2));
 
4003
                NDR_CHECK(ndr_pull_lsa_String(ndr, NDR_BUFFERS, &r->unknown3));
 
4004
                NDR_CHECK(ndr_pull_lsa_String(ndr, NDR_BUFFERS, &r->unknown4));
 
4005
        }
 
4006
        return NDR_ERR_SUCCESS;
 
4007
}
 
4008
 
 
4009
_PUBLIC_ void ndr_print_netr_DELTA_SECRET(struct ndr_print *ndr, const char *name, const struct netr_DELTA_SECRET *r)
 
4010
{
 
4011
        ndr_print_struct(ndr, name, "netr_DELTA_SECRET");
 
4012
        ndr->depth++;
 
4013
        ndr_print_netr_CIPHER_VALUE(ndr, "current_cipher", &r->current_cipher);
 
4014
        ndr_print_NTTIME(ndr, "current_cipher_set_time", r->current_cipher_set_time);
 
4015
        ndr_print_netr_CIPHER_VALUE(ndr, "old_cipher", &r->old_cipher);
 
4016
        ndr_print_NTTIME(ndr, "old_cipher_set_time", r->old_cipher_set_time);
 
4017
        ndr_print_uint32(ndr, "SecurityInformation", r->SecurityInformation);
 
4018
        ndr_print_sec_desc_buf(ndr, "sdbuf", &r->sdbuf);
 
4019
        ndr_print_lsa_String(ndr, "unknown1", &r->unknown1);
 
4020
        ndr_print_lsa_String(ndr, "unknown2", &r->unknown2);
 
4021
        ndr_print_lsa_String(ndr, "unknown3", &r->unknown3);
 
4022
        ndr_print_lsa_String(ndr, "unknown4", &r->unknown4);
 
4023
        ndr_print_uint32(ndr, "unknown5", r->unknown5);
 
4024
        ndr_print_uint32(ndr, "unknown6", r->unknown6);
 
4025
        ndr_print_uint32(ndr, "unknown7", r->unknown7);
 
4026
        ndr_print_uint32(ndr, "unknown8", r->unknown8);
 
4027
        ndr->depth--;
 
4028
}
 
4029
 
 
4030
static enum ndr_err_code ndr_push_netr_DeltaEnum(struct ndr_push *ndr, int ndr_flags, enum netr_DeltaEnum r)
 
4031
{
 
4032
        NDR_CHECK(ndr_push_enum_uint1632(ndr, NDR_SCALARS, r));
 
4033
        return NDR_ERR_SUCCESS;
 
4034
}
 
4035
 
 
4036
static enum ndr_err_code ndr_pull_netr_DeltaEnum(struct ndr_pull *ndr, int ndr_flags, enum netr_DeltaEnum *r)
 
4037
{
 
4038
        uint16_t v;
 
4039
        NDR_CHECK(ndr_pull_enum_uint1632(ndr, NDR_SCALARS, &v));
 
4040
        *r = v;
 
4041
        return NDR_ERR_SUCCESS;
 
4042
}
 
4043
 
 
4044
_PUBLIC_ void ndr_print_netr_DeltaEnum(struct ndr_print *ndr, const char *name, enum netr_DeltaEnum r)
 
4045
{
 
4046
        const char *val = NULL;
 
4047
 
 
4048
        switch (r) {
 
4049
                case NETR_DELTA_DOMAIN: val = "NETR_DELTA_DOMAIN"; break;
 
4050
                case NETR_DELTA_GROUP: val = "NETR_DELTA_GROUP"; break;
 
4051
                case NETR_DELTA_DELETE_GROUP: val = "NETR_DELTA_DELETE_GROUP"; break;
 
4052
                case NETR_DELTA_RENAME_GROUP: val = "NETR_DELTA_RENAME_GROUP"; break;
 
4053
                case NETR_DELTA_USER: val = "NETR_DELTA_USER"; break;
 
4054
                case NETR_DELTA_DELETE_USER: val = "NETR_DELTA_DELETE_USER"; break;
 
4055
                case NETR_DELTA_RENAME_USER: val = "NETR_DELTA_RENAME_USER"; break;
 
4056
                case NETR_DELTA_GROUP_MEMBER: val = "NETR_DELTA_GROUP_MEMBER"; break;
 
4057
                case NETR_DELTA_ALIAS: val = "NETR_DELTA_ALIAS"; break;
 
4058
                case NETR_DELTA_DELETE_ALIAS: val = "NETR_DELTA_DELETE_ALIAS"; break;
 
4059
                case NETR_DELTA_RENAME_ALIAS: val = "NETR_DELTA_RENAME_ALIAS"; break;
 
4060
                case NETR_DELTA_ALIAS_MEMBER: val = "NETR_DELTA_ALIAS_MEMBER"; break;
 
4061
                case NETR_DELTA_POLICY: val = "NETR_DELTA_POLICY"; break;
 
4062
                case NETR_DELTA_TRUSTED_DOMAIN: val = "NETR_DELTA_TRUSTED_DOMAIN"; break;
 
4063
                case NETR_DELTA_DELETE_TRUST: val = "NETR_DELTA_DELETE_TRUST"; break;
 
4064
                case NETR_DELTA_ACCOUNT: val = "NETR_DELTA_ACCOUNT"; break;
 
4065
                case NETR_DELTA_DELETE_ACCOUNT: val = "NETR_DELTA_DELETE_ACCOUNT"; break;
 
4066
                case NETR_DELTA_SECRET: val = "NETR_DELTA_SECRET"; break;
 
4067
                case NETR_DELTA_DELETE_SECRET: val = "NETR_DELTA_DELETE_SECRET"; break;
 
4068
                case NETR_DELTA_DELETE_GROUP2: val = "NETR_DELTA_DELETE_GROUP2"; break;
 
4069
                case NETR_DELTA_DELETE_USER2: val = "NETR_DELTA_DELETE_USER2"; break;
 
4070
                case NETR_DELTA_MODIFY_COUNT: val = "NETR_DELTA_MODIFY_COUNT"; break;
 
4071
        }
 
4072
        ndr_print_enum(ndr, name, "ENUM", val, r);
 
4073
}
 
4074
 
 
4075
static enum ndr_err_code ndr_push_netr_DELTA_UNION(struct ndr_push *ndr, int ndr_flags, const union netr_DELTA_UNION *r)
 
4076
{
 
4077
        if (ndr_flags & NDR_SCALARS) {
 
4078
                int level = ndr_push_get_switch_value(ndr, r);
 
4079
                NDR_CHECK(ndr_push_netr_DeltaEnum(ndr, NDR_SCALARS, level));
 
4080
                NDR_CHECK(ndr_push_union_align(ndr, 5));
 
4081
                switch (level) {
 
4082
                        case NETR_DELTA_DOMAIN: {
 
4083
                                NDR_CHECK(ndr_push_unique_ptr(ndr, r->domain));
 
4084
                        break; }
 
4085
 
 
4086
                        case NETR_DELTA_GROUP: {
 
4087
                                NDR_CHECK(ndr_push_unique_ptr(ndr, r->group));
 
4088
                        break; }
 
4089
 
 
4090
                        case NETR_DELTA_DELETE_GROUP: {
 
4091
                        break; }
 
4092
 
 
4093
                        case NETR_DELTA_RENAME_GROUP: {
 
4094
                                NDR_CHECK(ndr_push_unique_ptr(ndr, r->rename_group));
 
4095
                        break; }
 
4096
 
 
4097
                        case NETR_DELTA_USER: {
 
4098
                                NDR_CHECK(ndr_push_unique_ptr(ndr, r->user));
 
4099
                        break; }
 
4100
 
 
4101
                        case NETR_DELTA_DELETE_USER: {
 
4102
                        break; }
 
4103
 
 
4104
                        case NETR_DELTA_RENAME_USER: {
 
4105
                                NDR_CHECK(ndr_push_unique_ptr(ndr, r->rename_user));
 
4106
                        break; }
 
4107
 
 
4108
                        case NETR_DELTA_GROUP_MEMBER: {
 
4109
                                NDR_CHECK(ndr_push_unique_ptr(ndr, r->group_member));
 
4110
                        break; }
 
4111
 
 
4112
                        case NETR_DELTA_ALIAS: {
 
4113
                                NDR_CHECK(ndr_push_unique_ptr(ndr, r->alias));
 
4114
                        break; }
 
4115
 
 
4116
                        case NETR_DELTA_DELETE_ALIAS: {
 
4117
                        break; }
 
4118
 
 
4119
                        case NETR_DELTA_RENAME_ALIAS: {
 
4120
                                NDR_CHECK(ndr_push_unique_ptr(ndr, r->rename_alias));
 
4121
                        break; }
 
4122
 
 
4123
                        case NETR_DELTA_ALIAS_MEMBER: {
 
4124
                                NDR_CHECK(ndr_push_unique_ptr(ndr, r->alias_member));
 
4125
                        break; }
 
4126
 
 
4127
                        case NETR_DELTA_POLICY: {
 
4128
                                NDR_CHECK(ndr_push_unique_ptr(ndr, r->policy));
 
4129
                        break; }
 
4130
 
 
4131
                        case NETR_DELTA_TRUSTED_DOMAIN: {
 
4132
                                NDR_CHECK(ndr_push_unique_ptr(ndr, r->trusted_domain));
 
4133
                        break; }
 
4134
 
 
4135
                        case NETR_DELTA_DELETE_TRUST: {
 
4136
                                NDR_CHECK(ndr_push_netr_DELTA_DELETE_TRUST(ndr, NDR_SCALARS, &r->delete_trust));
 
4137
                        break; }
 
4138
 
 
4139
                        case NETR_DELTA_ACCOUNT: {
 
4140
                                NDR_CHECK(ndr_push_unique_ptr(ndr, r->account));
 
4141
                        break; }
 
4142
 
 
4143
                        case NETR_DELTA_DELETE_ACCOUNT: {
 
4144
                                NDR_CHECK(ndr_push_netr_DELTA_DELETE_ACCOUNT(ndr, NDR_SCALARS, &r->delete_account));
 
4145
                        break; }
 
4146
 
 
4147
                        case NETR_DELTA_SECRET: {
 
4148
                                NDR_CHECK(ndr_push_unique_ptr(ndr, r->secret));
 
4149
                        break; }
 
4150
 
 
4151
                        case NETR_DELTA_DELETE_SECRET: {
 
4152
                                NDR_CHECK(ndr_push_netr_DELTA_DELETE_SECRET(ndr, NDR_SCALARS, &r->delete_secret));
 
4153
                        break; }
 
4154
 
 
4155
                        case NETR_DELTA_DELETE_GROUP2: {
 
4156
                                NDR_CHECK(ndr_push_unique_ptr(ndr, r->delete_group));
 
4157
                        break; }
 
4158
 
 
4159
                        case NETR_DELTA_DELETE_USER2: {
 
4160
                                NDR_CHECK(ndr_push_unique_ptr(ndr, r->delete_user));
 
4161
                        break; }
 
4162
 
 
4163
                        case NETR_DELTA_MODIFY_COUNT: {
 
4164
                                NDR_CHECK(ndr_push_unique_ptr(ndr, r->modified_count));
 
4165
                        break; }
 
4166
 
 
4167
                        default:
 
4168
                                return ndr_push_error(ndr, NDR_ERR_BAD_SWITCH, "Bad switch value %u at %s", level, __location__);
 
4169
                }
 
4170
        }
 
4171
        if (ndr_flags & NDR_BUFFERS) {
 
4172
                int level = ndr_push_get_switch_value(ndr, r);
 
4173
                switch (level) {
 
4174
                        case NETR_DELTA_DOMAIN:
 
4175
                                if (r->domain) {
 
4176
                                        NDR_CHECK(ndr_push_netr_DELTA_DOMAIN(ndr, NDR_SCALARS|NDR_BUFFERS, r->domain));
 
4177
                                }
 
4178
                        break;
 
4179
 
 
4180
                        case NETR_DELTA_GROUP:
 
4181
                                if (r->group) {
 
4182
                                        NDR_CHECK(ndr_push_netr_DELTA_GROUP(ndr, NDR_SCALARS|NDR_BUFFERS, r->group));
 
4183
                                }
 
4184
                        break;
 
4185
 
 
4186
                        case NETR_DELTA_DELETE_GROUP:
 
4187
                        break;
 
4188
 
 
4189
                        case NETR_DELTA_RENAME_GROUP:
 
4190
                                if (r->rename_group) {
 
4191
                                        NDR_CHECK(ndr_push_netr_DELTA_RENAME(ndr, NDR_SCALARS|NDR_BUFFERS, r->rename_group));
 
4192
                                }
 
4193
                        break;
 
4194
 
 
4195
                        case NETR_DELTA_USER:
 
4196
                                if (r->user) {
 
4197
                                        NDR_CHECK(ndr_push_netr_DELTA_USER(ndr, NDR_SCALARS|NDR_BUFFERS, r->user));
 
4198
                                }
 
4199
                        break;
 
4200
 
 
4201
                        case NETR_DELTA_DELETE_USER:
 
4202
                        break;
 
4203
 
 
4204
                        case NETR_DELTA_RENAME_USER:
 
4205
                                if (r->rename_user) {
 
4206
                                        NDR_CHECK(ndr_push_netr_DELTA_RENAME(ndr, NDR_SCALARS|NDR_BUFFERS, r->rename_user));
 
4207
                                }
 
4208
                        break;
 
4209
 
 
4210
                        case NETR_DELTA_GROUP_MEMBER:
 
4211
                                if (r->group_member) {
 
4212
                                        NDR_CHECK(ndr_push_netr_DELTA_GROUP_MEMBER(ndr, NDR_SCALARS|NDR_BUFFERS, r->group_member));
 
4213
                                }
 
4214
                        break;
 
4215
 
 
4216
                        case NETR_DELTA_ALIAS:
 
4217
                                if (r->alias) {
 
4218
                                        NDR_CHECK(ndr_push_netr_DELTA_ALIAS(ndr, NDR_SCALARS|NDR_BUFFERS, r->alias));
 
4219
                                }
 
4220
                        break;
 
4221
 
 
4222
                        case NETR_DELTA_DELETE_ALIAS:
 
4223
                        break;
 
4224
 
 
4225
                        case NETR_DELTA_RENAME_ALIAS:
 
4226
                                if (r->rename_alias) {
 
4227
                                        NDR_CHECK(ndr_push_netr_DELTA_RENAME(ndr, NDR_SCALARS|NDR_BUFFERS, r->rename_alias));
 
4228
                                }
 
4229
                        break;
 
4230
 
 
4231
                        case NETR_DELTA_ALIAS_MEMBER:
 
4232
                                if (r->alias_member) {
 
4233
                                        NDR_CHECK(ndr_push_netr_DELTA_ALIAS_MEMBER(ndr, NDR_SCALARS|NDR_BUFFERS, r->alias_member));
 
4234
                                }
 
4235
                        break;
 
4236
 
 
4237
                        case NETR_DELTA_POLICY:
 
4238
                                if (r->policy) {
 
4239
                                        NDR_CHECK(ndr_push_netr_DELTA_POLICY(ndr, NDR_SCALARS|NDR_BUFFERS, r->policy));
 
4240
                                }
 
4241
                        break;
 
4242
 
 
4243
                        case NETR_DELTA_TRUSTED_DOMAIN:
 
4244
                                if (r->trusted_domain) {
 
4245
                                        NDR_CHECK(ndr_push_netr_DELTA_TRUSTED_DOMAIN(ndr, NDR_SCALARS|NDR_BUFFERS, r->trusted_domain));
 
4246
                                }
 
4247
                        break;
 
4248
 
 
4249
                        case NETR_DELTA_DELETE_TRUST:
 
4250
                        break;
 
4251
 
 
4252
                        case NETR_DELTA_ACCOUNT:
 
4253
                                if (r->account) {
 
4254
                                        NDR_CHECK(ndr_push_netr_DELTA_ACCOUNT(ndr, NDR_SCALARS|NDR_BUFFERS, r->account));
 
4255
                                }
 
4256
                        break;
 
4257
 
 
4258
                        case NETR_DELTA_DELETE_ACCOUNT:
 
4259
                        break;
 
4260
 
 
4261
                        case NETR_DELTA_SECRET:
 
4262
                                if (r->secret) {
 
4263
                                        NDR_CHECK(ndr_push_netr_DELTA_SECRET(ndr, NDR_SCALARS|NDR_BUFFERS, r->secret));
 
4264
                                }
 
4265
                        break;
 
4266
 
 
4267
                        case NETR_DELTA_DELETE_SECRET:
 
4268
                        break;
 
4269
 
 
4270
                        case NETR_DELTA_DELETE_GROUP2:
 
4271
                                if (r->delete_group) {
 
4272
                                        NDR_CHECK(ndr_push_netr_DELTA_DELETE_USER(ndr, NDR_SCALARS|NDR_BUFFERS, r->delete_group));
 
4273
                                }
 
4274
                        break;
 
4275
 
 
4276
                        case NETR_DELTA_DELETE_USER2:
 
4277
                                if (r->delete_user) {
 
4278
                                        NDR_CHECK(ndr_push_netr_DELTA_DELETE_USER(ndr, NDR_SCALARS|NDR_BUFFERS, r->delete_user));
 
4279
                                }
 
4280
                        break;
 
4281
 
 
4282
                        case NETR_DELTA_MODIFY_COUNT:
 
4283
                                if (r->modified_count) {
 
4284
                                        NDR_CHECK(ndr_push_udlong(ndr, NDR_SCALARS, *r->modified_count));
 
4285
                                }
 
4286
                        break;
 
4287
 
 
4288
                        default:
 
4289
                                return ndr_push_error(ndr, NDR_ERR_BAD_SWITCH, "Bad switch value %u at %s", level, __location__);
 
4290
                }
 
4291
        }
 
4292
        return NDR_ERR_SUCCESS;
 
4293
}
 
4294
 
 
4295
static enum ndr_err_code ndr_pull_netr_DELTA_UNION(struct ndr_pull *ndr, int ndr_flags, union netr_DELTA_UNION *r)
 
4296
{
 
4297
        int level;
 
4298
        uint16_t _level;
 
4299
        TALLOC_CTX *_mem_save_domain_0;
 
4300
        TALLOC_CTX *_mem_save_group_0;
 
4301
        TALLOC_CTX *_mem_save_rename_group_0;
 
4302
        TALLOC_CTX *_mem_save_user_0;
 
4303
        TALLOC_CTX *_mem_save_rename_user_0;
 
4304
        TALLOC_CTX *_mem_save_group_member_0;
 
4305
        TALLOC_CTX *_mem_save_alias_0;
 
4306
        TALLOC_CTX *_mem_save_rename_alias_0;
 
4307
        TALLOC_CTX *_mem_save_alias_member_0;
 
4308
        TALLOC_CTX *_mem_save_policy_0;
 
4309
        TALLOC_CTX *_mem_save_trusted_domain_0;
 
4310
        TALLOC_CTX *_mem_save_account_0;
 
4311
        TALLOC_CTX *_mem_save_secret_0;
 
4312
        TALLOC_CTX *_mem_save_delete_group_0;
 
4313
        TALLOC_CTX *_mem_save_delete_user_0;
 
4314
        TALLOC_CTX *_mem_save_modified_count_0;
 
4315
        level = ndr_pull_get_switch_value(ndr, r);
 
4316
        if (ndr_flags & NDR_SCALARS) {
 
4317
                NDR_CHECK(ndr_pull_uint1632(ndr, NDR_SCALARS, &_level));
 
4318
                if (_level != level) {
 
4319
                        return ndr_pull_error(ndr, NDR_ERR_BAD_SWITCH, "Bad switch value %u for r at %s", _level, __location__);
 
4320
                }
 
4321
                NDR_CHECK(ndr_pull_union_align(ndr, 5));
 
4322
                switch (level) {
 
4323
                        case NETR_DELTA_DOMAIN: {
 
4324
                                uint32_t _ptr_domain;
 
4325
                                NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_domain));
 
4326
                                if (_ptr_domain) {
 
4327
                                        NDR_PULL_ALLOC(ndr, r->domain);
 
4328
                                } else {
 
4329
                                        r->domain = NULL;
 
4330
                                }
 
4331
                        break; }
 
4332
 
 
4333
                        case NETR_DELTA_GROUP: {
 
4334
                                uint32_t _ptr_group;
 
4335
                                NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_group));
 
4336
                                if (_ptr_group) {
 
4337
                                        NDR_PULL_ALLOC(ndr, r->group);
 
4338
                                } else {
 
4339
                                        r->group = NULL;
 
4340
                                }
 
4341
                        break; }
 
4342
 
 
4343
                        case NETR_DELTA_DELETE_GROUP: {
 
4344
                        break; }
 
4345
 
 
4346
                        case NETR_DELTA_RENAME_GROUP: {
 
4347
                                uint32_t _ptr_rename_group;
 
4348
                                NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_rename_group));
 
4349
                                if (_ptr_rename_group) {
 
4350
                                        NDR_PULL_ALLOC(ndr, r->rename_group);
 
4351
                                } else {
 
4352
                                        r->rename_group = NULL;
 
4353
                                }
 
4354
                        break; }
 
4355
 
 
4356
                        case NETR_DELTA_USER: {
 
4357
                                uint32_t _ptr_user;
 
4358
                                NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_user));
 
4359
                                if (_ptr_user) {
 
4360
                                        NDR_PULL_ALLOC(ndr, r->user);
 
4361
                                } else {
 
4362
                                        r->user = NULL;
 
4363
                                }
 
4364
                        break; }
 
4365
 
 
4366
                        case NETR_DELTA_DELETE_USER: {
 
4367
                        break; }
 
4368
 
 
4369
                        case NETR_DELTA_RENAME_USER: {
 
4370
                                uint32_t _ptr_rename_user;
 
4371
                                NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_rename_user));
 
4372
                                if (_ptr_rename_user) {
 
4373
                                        NDR_PULL_ALLOC(ndr, r->rename_user);
 
4374
                                } else {
 
4375
                                        r->rename_user = NULL;
 
4376
                                }
 
4377
                        break; }
 
4378
 
 
4379
                        case NETR_DELTA_GROUP_MEMBER: {
 
4380
                                uint32_t _ptr_group_member;
 
4381
                                NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_group_member));
 
4382
                                if (_ptr_group_member) {
 
4383
                                        NDR_PULL_ALLOC(ndr, r->group_member);
 
4384
                                } else {
 
4385
                                        r->group_member = NULL;
 
4386
                                }
 
4387
                        break; }
 
4388
 
 
4389
                        case NETR_DELTA_ALIAS: {
 
4390
                                uint32_t _ptr_alias;
 
4391
                                NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_alias));
 
4392
                                if (_ptr_alias) {
 
4393
                                        NDR_PULL_ALLOC(ndr, r->alias);
 
4394
                                } else {
 
4395
                                        r->alias = NULL;
 
4396
                                }
 
4397
                        break; }
 
4398
 
 
4399
                        case NETR_DELTA_DELETE_ALIAS: {
 
4400
                        break; }
 
4401
 
 
4402
                        case NETR_DELTA_RENAME_ALIAS: {
 
4403
                                uint32_t _ptr_rename_alias;
 
4404
                                NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_rename_alias));
 
4405
                                if (_ptr_rename_alias) {
 
4406
                                        NDR_PULL_ALLOC(ndr, r->rename_alias);
 
4407
                                } else {
 
4408
                                        r->rename_alias = NULL;
 
4409
                                }
 
4410
                        break; }
 
4411
 
 
4412
                        case NETR_DELTA_ALIAS_MEMBER: {
 
4413
                                uint32_t _ptr_alias_member;
 
4414
                                NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_alias_member));
 
4415
                                if (_ptr_alias_member) {
 
4416
                                        NDR_PULL_ALLOC(ndr, r->alias_member);
 
4417
                                } else {
 
4418
                                        r->alias_member = NULL;
 
4419
                                }
 
4420
                        break; }
 
4421
 
 
4422
                        case NETR_DELTA_POLICY: {
 
4423
                                uint32_t _ptr_policy;
 
4424
                                NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_policy));
 
4425
                                if (_ptr_policy) {
 
4426
                                        NDR_PULL_ALLOC(ndr, r->policy);
 
4427
                                } else {
 
4428
                                        r->policy = NULL;
 
4429
                                }
 
4430
                        break; }
 
4431
 
 
4432
                        case NETR_DELTA_TRUSTED_DOMAIN: {
 
4433
                                uint32_t _ptr_trusted_domain;
 
4434
                                NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_trusted_domain));
 
4435
                                if (_ptr_trusted_domain) {
 
4436
                                        NDR_PULL_ALLOC(ndr, r->trusted_domain);
 
4437
                                } else {
 
4438
                                        r->trusted_domain = NULL;
 
4439
                                }
 
4440
                        break; }
 
4441
 
 
4442
                        case NETR_DELTA_DELETE_TRUST: {
 
4443
                                NDR_CHECK(ndr_pull_netr_DELTA_DELETE_TRUST(ndr, NDR_SCALARS, &r->delete_trust));
 
4444
                        break; }
 
4445
 
 
4446
                        case NETR_DELTA_ACCOUNT: {
 
4447
                                uint32_t _ptr_account;
 
4448
                                NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_account));
 
4449
                                if (_ptr_account) {
 
4450
                                        NDR_PULL_ALLOC(ndr, r->account);
 
4451
                                } else {
 
4452
                                        r->account = NULL;
 
4453
                                }
 
4454
                        break; }
 
4455
 
 
4456
                        case NETR_DELTA_DELETE_ACCOUNT: {
 
4457
                                NDR_CHECK(ndr_pull_netr_DELTA_DELETE_ACCOUNT(ndr, NDR_SCALARS, &r->delete_account));
 
4458
                        break; }
 
4459
 
 
4460
                        case NETR_DELTA_SECRET: {
 
4461
                                uint32_t _ptr_secret;
 
4462
                                NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_secret));
 
4463
                                if (_ptr_secret) {
 
4464
                                        NDR_PULL_ALLOC(ndr, r->secret);
 
4465
                                } else {
 
4466
                                        r->secret = NULL;
 
4467
                                }
 
4468
                        break; }
 
4469
 
 
4470
                        case NETR_DELTA_DELETE_SECRET: {
 
4471
                                NDR_CHECK(ndr_pull_netr_DELTA_DELETE_SECRET(ndr, NDR_SCALARS, &r->delete_secret));
 
4472
                        break; }
 
4473
 
 
4474
                        case NETR_DELTA_DELETE_GROUP2: {
 
4475
                                uint32_t _ptr_delete_group;
 
4476
                                NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_delete_group));
 
4477
                                if (_ptr_delete_group) {
 
4478
                                        NDR_PULL_ALLOC(ndr, r->delete_group);
 
4479
                                } else {
 
4480
                                        r->delete_group = NULL;
 
4481
                                }
 
4482
                        break; }
 
4483
 
 
4484
                        case NETR_DELTA_DELETE_USER2: {
 
4485
                                uint32_t _ptr_delete_user;
 
4486
                                NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_delete_user));
 
4487
                                if (_ptr_delete_user) {
 
4488
                                        NDR_PULL_ALLOC(ndr, r->delete_user);
 
4489
                                } else {
 
4490
                                        r->delete_user = NULL;
 
4491
                                }
 
4492
                        break; }
 
4493
 
 
4494
                        case NETR_DELTA_MODIFY_COUNT: {
 
4495
                                uint32_t _ptr_modified_count;
 
4496
                                NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_modified_count));
 
4497
                                if (_ptr_modified_count) {
 
4498
                                        NDR_PULL_ALLOC(ndr, r->modified_count);
 
4499
                                } else {
 
4500
                                        r->modified_count = NULL;
 
4501
                                }
 
4502
                        break; }
 
4503
 
 
4504
                        default:
 
4505
                                return ndr_pull_error(ndr, NDR_ERR_BAD_SWITCH, "Bad switch value %u at %s", level, __location__);
 
4506
                }
 
4507
        }
 
4508
        if (ndr_flags & NDR_BUFFERS) {
 
4509
                switch (level) {
 
4510
                        case NETR_DELTA_DOMAIN:
 
4511
                                if (r->domain) {
 
4512
                                        _mem_save_domain_0 = NDR_PULL_GET_MEM_CTX(ndr);
 
4513
                                        NDR_PULL_SET_MEM_CTX(ndr, r->domain, 0);
 
4514
                                        NDR_CHECK(ndr_pull_netr_DELTA_DOMAIN(ndr, NDR_SCALARS|NDR_BUFFERS, r->domain));
 
4515
                                        NDR_PULL_SET_MEM_CTX(ndr, _mem_save_domain_0, 0);
 
4516
                                }
 
4517
                        break;
 
4518
 
 
4519
                        case NETR_DELTA_GROUP:
 
4520
                                if (r->group) {
 
4521
                                        _mem_save_group_0 = NDR_PULL_GET_MEM_CTX(ndr);
 
4522
                                        NDR_PULL_SET_MEM_CTX(ndr, r->group, 0);
 
4523
                                        NDR_CHECK(ndr_pull_netr_DELTA_GROUP(ndr, NDR_SCALARS|NDR_BUFFERS, r->group));
 
4524
                                        NDR_PULL_SET_MEM_CTX(ndr, _mem_save_group_0, 0);
 
4525
                                }
 
4526
                        break;
 
4527
 
 
4528
                        case NETR_DELTA_DELETE_GROUP:
 
4529
                        break;
 
4530
 
 
4531
                        case NETR_DELTA_RENAME_GROUP:
 
4532
                                if (r->rename_group) {
 
4533
                                        _mem_save_rename_group_0 = NDR_PULL_GET_MEM_CTX(ndr);
 
4534
                                        NDR_PULL_SET_MEM_CTX(ndr, r->rename_group, 0);
 
4535
                                        NDR_CHECK(ndr_pull_netr_DELTA_RENAME(ndr, NDR_SCALARS|NDR_BUFFERS, r->rename_group));
 
4536
                                        NDR_PULL_SET_MEM_CTX(ndr, _mem_save_rename_group_0, 0);
 
4537
                                }
 
4538
                        break;
 
4539
 
 
4540
                        case NETR_DELTA_USER:
 
4541
                                if (r->user) {
 
4542
                                        _mem_save_user_0 = NDR_PULL_GET_MEM_CTX(ndr);
 
4543
                                        NDR_PULL_SET_MEM_CTX(ndr, r->user, 0);
 
4544
                                        NDR_CHECK(ndr_pull_netr_DELTA_USER(ndr, NDR_SCALARS|NDR_BUFFERS, r->user));
 
4545
                                        NDR_PULL_SET_MEM_CTX(ndr, _mem_save_user_0, 0);
 
4546
                                }
 
4547
                        break;
 
4548
 
 
4549
                        case NETR_DELTA_DELETE_USER:
 
4550
                        break;
 
4551
 
 
4552
                        case NETR_DELTA_RENAME_USER:
 
4553
                                if (r->rename_user) {
 
4554
                                        _mem_save_rename_user_0 = NDR_PULL_GET_MEM_CTX(ndr);
 
4555
                                        NDR_PULL_SET_MEM_CTX(ndr, r->rename_user, 0);
 
4556
                                        NDR_CHECK(ndr_pull_netr_DELTA_RENAME(ndr, NDR_SCALARS|NDR_BUFFERS, r->rename_user));
 
4557
                                        NDR_PULL_SET_MEM_CTX(ndr, _mem_save_rename_user_0, 0);
 
4558
                                }
 
4559
                        break;
 
4560
 
 
4561
                        case NETR_DELTA_GROUP_MEMBER:
 
4562
                                if (r->group_member) {
 
4563
                                        _mem_save_group_member_0 = NDR_PULL_GET_MEM_CTX(ndr);
 
4564
                                        NDR_PULL_SET_MEM_CTX(ndr, r->group_member, 0);
 
4565
                                        NDR_CHECK(ndr_pull_netr_DELTA_GROUP_MEMBER(ndr, NDR_SCALARS|NDR_BUFFERS, r->group_member));
 
4566
                                        NDR_PULL_SET_MEM_CTX(ndr, _mem_save_group_member_0, 0);
 
4567
                                }
 
4568
                        break;
 
4569
 
 
4570
                        case NETR_DELTA_ALIAS:
 
4571
                                if (r->alias) {
 
4572
                                        _mem_save_alias_0 = NDR_PULL_GET_MEM_CTX(ndr);
 
4573
                                        NDR_PULL_SET_MEM_CTX(ndr, r->alias, 0);
 
4574
                                        NDR_CHECK(ndr_pull_netr_DELTA_ALIAS(ndr, NDR_SCALARS|NDR_BUFFERS, r->alias));
 
4575
                                        NDR_PULL_SET_MEM_CTX(ndr, _mem_save_alias_0, 0);
 
4576
                                }
 
4577
                        break;
 
4578
 
 
4579
                        case NETR_DELTA_DELETE_ALIAS:
 
4580
                        break;
 
4581
 
 
4582
                        case NETR_DELTA_RENAME_ALIAS:
 
4583
                                if (r->rename_alias) {
 
4584
                                        _mem_save_rename_alias_0 = NDR_PULL_GET_MEM_CTX(ndr);
 
4585
                                        NDR_PULL_SET_MEM_CTX(ndr, r->rename_alias, 0);
 
4586
                                        NDR_CHECK(ndr_pull_netr_DELTA_RENAME(ndr, NDR_SCALARS|NDR_BUFFERS, r->rename_alias));
 
4587
                                        NDR_PULL_SET_MEM_CTX(ndr, _mem_save_rename_alias_0, 0);
 
4588
                                }
 
4589
                        break;
 
4590
 
 
4591
                        case NETR_DELTA_ALIAS_MEMBER:
 
4592
                                if (r->alias_member) {
 
4593
                                        _mem_save_alias_member_0 = NDR_PULL_GET_MEM_CTX(ndr);
 
4594
                                        NDR_PULL_SET_MEM_CTX(ndr, r->alias_member, 0);
 
4595
                                        NDR_CHECK(ndr_pull_netr_DELTA_ALIAS_MEMBER(ndr, NDR_SCALARS|NDR_BUFFERS, r->alias_member));
 
4596
                                        NDR_PULL_SET_MEM_CTX(ndr, _mem_save_alias_member_0, 0);
 
4597
                                }
 
4598
                        break;
 
4599
 
 
4600
                        case NETR_DELTA_POLICY:
 
4601
                                if (r->policy) {
 
4602
                                        _mem_save_policy_0 = NDR_PULL_GET_MEM_CTX(ndr);
 
4603
                                        NDR_PULL_SET_MEM_CTX(ndr, r->policy, 0);
 
4604
                                        NDR_CHECK(ndr_pull_netr_DELTA_POLICY(ndr, NDR_SCALARS|NDR_BUFFERS, r->policy));
 
4605
                                        NDR_PULL_SET_MEM_CTX(ndr, _mem_save_policy_0, 0);
 
4606
                                }
 
4607
                        break;
 
4608
 
 
4609
                        case NETR_DELTA_TRUSTED_DOMAIN:
 
4610
                                if (r->trusted_domain) {
 
4611
                                        _mem_save_trusted_domain_0 = NDR_PULL_GET_MEM_CTX(ndr);
 
4612
                                        NDR_PULL_SET_MEM_CTX(ndr, r->trusted_domain, 0);
 
4613
                                        NDR_CHECK(ndr_pull_netr_DELTA_TRUSTED_DOMAIN(ndr, NDR_SCALARS|NDR_BUFFERS, r->trusted_domain));
 
4614
                                        NDR_PULL_SET_MEM_CTX(ndr, _mem_save_trusted_domain_0, 0);
 
4615
                                }
 
4616
                        break;
 
4617
 
 
4618
                        case NETR_DELTA_DELETE_TRUST:
 
4619
                        break;
 
4620
 
 
4621
                        case NETR_DELTA_ACCOUNT:
 
4622
                                if (r->account) {
 
4623
                                        _mem_save_account_0 = NDR_PULL_GET_MEM_CTX(ndr);
 
4624
                                        NDR_PULL_SET_MEM_CTX(ndr, r->account, 0);
 
4625
                                        NDR_CHECK(ndr_pull_netr_DELTA_ACCOUNT(ndr, NDR_SCALARS|NDR_BUFFERS, r->account));
 
4626
                                        NDR_PULL_SET_MEM_CTX(ndr, _mem_save_account_0, 0);
 
4627
                                }
 
4628
                        break;
 
4629
 
 
4630
                        case NETR_DELTA_DELETE_ACCOUNT:
 
4631
                        break;
 
4632
 
 
4633
                        case NETR_DELTA_SECRET:
 
4634
                                if (r->secret) {
 
4635
                                        _mem_save_secret_0 = NDR_PULL_GET_MEM_CTX(ndr);
 
4636
                                        NDR_PULL_SET_MEM_CTX(ndr, r->secret, 0);
 
4637
                                        NDR_CHECK(ndr_pull_netr_DELTA_SECRET(ndr, NDR_SCALARS|NDR_BUFFERS, r->secret));
 
4638
                                        NDR_PULL_SET_MEM_CTX(ndr, _mem_save_secret_0, 0);
 
4639
                                }
 
4640
                        break;
 
4641
 
 
4642
                        case NETR_DELTA_DELETE_SECRET:
 
4643
                        break;
 
4644
 
 
4645
                        case NETR_DELTA_DELETE_GROUP2:
 
4646
                                if (r->delete_group) {
 
4647
                                        _mem_save_delete_group_0 = NDR_PULL_GET_MEM_CTX(ndr);
 
4648
                                        NDR_PULL_SET_MEM_CTX(ndr, r->delete_group, 0);
 
4649
                                        NDR_CHECK(ndr_pull_netr_DELTA_DELETE_USER(ndr, NDR_SCALARS|NDR_BUFFERS, r->delete_group));
 
4650
                                        NDR_PULL_SET_MEM_CTX(ndr, _mem_save_delete_group_0, 0);
 
4651
                                }
 
4652
                        break;
 
4653
 
 
4654
                        case NETR_DELTA_DELETE_USER2:
 
4655
                                if (r->delete_user) {
 
4656
                                        _mem_save_delete_user_0 = NDR_PULL_GET_MEM_CTX(ndr);
 
4657
                                        NDR_PULL_SET_MEM_CTX(ndr, r->delete_user, 0);
 
4658
                                        NDR_CHECK(ndr_pull_netr_DELTA_DELETE_USER(ndr, NDR_SCALARS|NDR_BUFFERS, r->delete_user));
 
4659
                                        NDR_PULL_SET_MEM_CTX(ndr, _mem_save_delete_user_0, 0);
 
4660
                                }
 
4661
                        break;
 
4662
 
 
4663
                        case NETR_DELTA_MODIFY_COUNT:
 
4664
                                if (r->modified_count) {
 
4665
                                        _mem_save_modified_count_0 = NDR_PULL_GET_MEM_CTX(ndr);
 
4666
                                        NDR_PULL_SET_MEM_CTX(ndr, r->modified_count, 0);
 
4667
                                        NDR_CHECK(ndr_pull_udlong(ndr, NDR_SCALARS, r->modified_count));
 
4668
                                        NDR_PULL_SET_MEM_CTX(ndr, _mem_save_modified_count_0, 0);
 
4669
                                }
 
4670
                        break;
 
4671
 
 
4672
                        default:
 
4673
                                return ndr_pull_error(ndr, NDR_ERR_BAD_SWITCH, "Bad switch value %u at %s", level, __location__);
 
4674
                }
 
4675
        }
 
4676
        return NDR_ERR_SUCCESS;
 
4677
}
 
4678
 
 
4679
_PUBLIC_ void ndr_print_netr_DELTA_UNION(struct ndr_print *ndr, const char *name, const union netr_DELTA_UNION *r)
 
4680
{
 
4681
        int level;
 
4682
        level = ndr_print_get_switch_value(ndr, r);
 
4683
        ndr_print_union(ndr, name, level, "netr_DELTA_UNION");
 
4684
        switch (level) {
 
4685
                case NETR_DELTA_DOMAIN:
 
4686
                        ndr_print_ptr(ndr, "domain", r->domain);
 
4687
                        ndr->depth++;
 
4688
                        if (r->domain) {
 
4689
                                ndr_print_netr_DELTA_DOMAIN(ndr, "domain", r->domain);
 
4690
                        }
 
4691
                        ndr->depth--;
 
4692
                break;
 
4693
 
 
4694
                case NETR_DELTA_GROUP:
 
4695
                        ndr_print_ptr(ndr, "group", r->group);
 
4696
                        ndr->depth++;
 
4697
                        if (r->group) {
 
4698
                                ndr_print_netr_DELTA_GROUP(ndr, "group", r->group);
 
4699
                        }
 
4700
                        ndr->depth--;
 
4701
                break;
 
4702
 
 
4703
                case NETR_DELTA_DELETE_GROUP:
 
4704
                break;
 
4705
 
 
4706
                case NETR_DELTA_RENAME_GROUP:
 
4707
                        ndr_print_ptr(ndr, "rename_group", r->rename_group);
 
4708
                        ndr->depth++;
 
4709
                        if (r->rename_group) {
 
4710
                                ndr_print_netr_DELTA_RENAME(ndr, "rename_group", r->rename_group);
 
4711
                        }
 
4712
                        ndr->depth--;
 
4713
                break;
 
4714
 
 
4715
                case NETR_DELTA_USER:
 
4716
                        ndr_print_ptr(ndr, "user", r->user);
 
4717
                        ndr->depth++;
 
4718
                        if (r->user) {
 
4719
                                ndr_print_netr_DELTA_USER(ndr, "user", r->user);
 
4720
                        }
 
4721
                        ndr->depth--;
 
4722
                break;
 
4723
 
 
4724
                case NETR_DELTA_DELETE_USER:
 
4725
                break;
 
4726
 
 
4727
                case NETR_DELTA_RENAME_USER:
 
4728
                        ndr_print_ptr(ndr, "rename_user", r->rename_user);
 
4729
                        ndr->depth++;
 
4730
                        if (r->rename_user) {
 
4731
                                ndr_print_netr_DELTA_RENAME(ndr, "rename_user", r->rename_user);
 
4732
                        }
 
4733
                        ndr->depth--;
 
4734
                break;
 
4735
 
 
4736
                case NETR_DELTA_GROUP_MEMBER:
 
4737
                        ndr_print_ptr(ndr, "group_member", r->group_member);
 
4738
                        ndr->depth++;
 
4739
                        if (r->group_member) {
 
4740
                                ndr_print_netr_DELTA_GROUP_MEMBER(ndr, "group_member", r->group_member);
 
4741
                        }
 
4742
                        ndr->depth--;
 
4743
                break;
 
4744
 
 
4745
                case NETR_DELTA_ALIAS:
 
4746
                        ndr_print_ptr(ndr, "alias", r->alias);
 
4747
                        ndr->depth++;
 
4748
                        if (r->alias) {
 
4749
                                ndr_print_netr_DELTA_ALIAS(ndr, "alias", r->alias);
 
4750
                        }
 
4751
                        ndr->depth--;
 
4752
                break;
 
4753
 
 
4754
                case NETR_DELTA_DELETE_ALIAS:
 
4755
                break;
 
4756
 
 
4757
                case NETR_DELTA_RENAME_ALIAS:
 
4758
                        ndr_print_ptr(ndr, "rename_alias", r->rename_alias);
 
4759
                        ndr->depth++;
 
4760
                        if (r->rename_alias) {
 
4761
                                ndr_print_netr_DELTA_RENAME(ndr, "rename_alias", r->rename_alias);
 
4762
                        }
 
4763
                        ndr->depth--;
 
4764
                break;
 
4765
 
 
4766
                case NETR_DELTA_ALIAS_MEMBER:
 
4767
                        ndr_print_ptr(ndr, "alias_member", r->alias_member);
 
4768
                        ndr->depth++;
 
4769
                        if (r->alias_member) {
 
4770
                                ndr_print_netr_DELTA_ALIAS_MEMBER(ndr, "alias_member", r->alias_member);
 
4771
                        }
 
4772
                        ndr->depth--;
 
4773
                break;
 
4774
 
 
4775
                case NETR_DELTA_POLICY:
 
4776
                        ndr_print_ptr(ndr, "policy", r->policy);
 
4777
                        ndr->depth++;
 
4778
                        if (r->policy) {
 
4779
                                ndr_print_netr_DELTA_POLICY(ndr, "policy", r->policy);
 
4780
                        }
 
4781
                        ndr->depth--;
 
4782
                break;
 
4783
 
 
4784
                case NETR_DELTA_TRUSTED_DOMAIN:
 
4785
                        ndr_print_ptr(ndr, "trusted_domain", r->trusted_domain);
 
4786
                        ndr->depth++;
 
4787
                        if (r->trusted_domain) {
 
4788
                                ndr_print_netr_DELTA_TRUSTED_DOMAIN(ndr, "trusted_domain", r->trusted_domain);
 
4789
                        }
 
4790
                        ndr->depth--;
 
4791
                break;
 
4792
 
 
4793
                case NETR_DELTA_DELETE_TRUST:
 
4794
                        ndr_print_netr_DELTA_DELETE_TRUST(ndr, "delete_trust", &r->delete_trust);
 
4795
                break;
 
4796
 
 
4797
                case NETR_DELTA_ACCOUNT:
 
4798
                        ndr_print_ptr(ndr, "account", r->account);
 
4799
                        ndr->depth++;
 
4800
                        if (r->account) {
 
4801
                                ndr_print_netr_DELTA_ACCOUNT(ndr, "account", r->account);
 
4802
                        }
 
4803
                        ndr->depth--;
 
4804
                break;
 
4805
 
 
4806
                case NETR_DELTA_DELETE_ACCOUNT:
 
4807
                        ndr_print_netr_DELTA_DELETE_ACCOUNT(ndr, "delete_account", &r->delete_account);
 
4808
                break;
 
4809
 
 
4810
                case NETR_DELTA_SECRET:
 
4811
                        ndr_print_ptr(ndr, "secret", r->secret);
 
4812
                        ndr->depth++;
 
4813
                        if (r->secret) {
 
4814
                                ndr_print_netr_DELTA_SECRET(ndr, "secret", r->secret);
 
4815
                        }
 
4816
                        ndr->depth--;
 
4817
                break;
 
4818
 
 
4819
                case NETR_DELTA_DELETE_SECRET:
 
4820
                        ndr_print_netr_DELTA_DELETE_SECRET(ndr, "delete_secret", &r->delete_secret);
 
4821
                break;
 
4822
 
 
4823
                case NETR_DELTA_DELETE_GROUP2:
 
4824
                        ndr_print_ptr(ndr, "delete_group", r->delete_group);
 
4825
                        ndr->depth++;
 
4826
                        if (r->delete_group) {
 
4827
                                ndr_print_netr_DELTA_DELETE_USER(ndr, "delete_group", r->delete_group);
 
4828
                        }
 
4829
                        ndr->depth--;
 
4830
                break;
 
4831
 
 
4832
                case NETR_DELTA_DELETE_USER2:
 
4833
                        ndr_print_ptr(ndr, "delete_user", r->delete_user);
 
4834
                        ndr->depth++;
 
4835
                        if (r->delete_user) {
 
4836
                                ndr_print_netr_DELTA_DELETE_USER(ndr, "delete_user", r->delete_user);
 
4837
                        }
 
4838
                        ndr->depth--;
 
4839
                break;
 
4840
 
 
4841
                case NETR_DELTA_MODIFY_COUNT:
 
4842
                        ndr_print_ptr(ndr, "modified_count", r->modified_count);
 
4843
                        ndr->depth++;
 
4844
                        if (r->modified_count) {
 
4845
                                ndr_print_udlong(ndr, "modified_count", *r->modified_count);
 
4846
                        }
 
4847
                        ndr->depth--;
 
4848
                break;
 
4849
 
 
4850
                default:
 
4851
                        ndr_print_bad_level(ndr, name, level);
 
4852
        }
 
4853
}
 
4854
 
 
4855
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)
 
4856
{
 
4857
        if (ndr_flags & NDR_SCALARS) {
 
4858
                int level = ndr_push_get_switch_value(ndr, r);
 
4859
                NDR_CHECK(ndr_push_netr_DeltaEnum(ndr, NDR_SCALARS, level));
 
4860
                NDR_CHECK(ndr_push_union_align(ndr, 5));
 
4861
                switch (level) {
 
4862
                        case NETR_DELTA_DOMAIN: {
 
4863
                                NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->rid));
 
4864
                        break; }
 
4865
 
 
4866
                        case NETR_DELTA_GROUP: {
 
4867
                                NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->rid));
 
4868
                        break; }
 
4869
 
 
4870
                        case NETR_DELTA_DELETE_GROUP: {
 
4871
                                NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->rid));
 
4872
                        break; }
 
4873
 
 
4874
                        case NETR_DELTA_RENAME_GROUP: {
 
4875
                                NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->rid));
 
4876
                        break; }
 
4877
 
 
4878
                        case NETR_DELTA_USER: {
 
4879
                                NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->rid));
 
4880
                        break; }
 
4881
 
 
4882
                        case NETR_DELTA_DELETE_USER: {
 
4883
                                NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->rid));
 
4884
                        break; }
 
4885
 
 
4886
                        case NETR_DELTA_RENAME_USER: {
 
4887
                                NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->rid));
 
4888
                        break; }
 
4889
 
 
4890
                        case NETR_DELTA_GROUP_MEMBER: {
 
4891
                                NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->rid));
 
4892
                        break; }
 
4893
 
 
4894
                        case NETR_DELTA_ALIAS: {
 
4895
                                NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->rid));
 
4896
                        break; }
 
4897
 
 
4898
                        case NETR_DELTA_DELETE_ALIAS: {
 
4899
                                NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->rid));
 
4900
                        break; }
 
4901
 
 
4902
                        case NETR_DELTA_RENAME_ALIAS: {
 
4903
                                NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->rid));
 
4904
                        break; }
 
4905
 
 
4906
                        case NETR_DELTA_ALIAS_MEMBER: {
 
4907
                                NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->rid));
 
4908
                        break; }
 
4909
 
 
4910
                        case NETR_DELTA_POLICY: {
 
4911
                                NDR_CHECK(ndr_push_unique_ptr(ndr, r->sid));
 
4912
                        break; }
 
4913
 
 
4914
                        case NETR_DELTA_TRUSTED_DOMAIN: {
 
4915
                                NDR_CHECK(ndr_push_unique_ptr(ndr, r->sid));
 
4916
                        break; }
 
4917
 
 
4918
                        case NETR_DELTA_DELETE_TRUST: {
 
4919
                                NDR_CHECK(ndr_push_unique_ptr(ndr, r->sid));
 
4920
                        break; }
 
4921
 
 
4922
                        case NETR_DELTA_ACCOUNT: {
 
4923
                                NDR_CHECK(ndr_push_unique_ptr(ndr, r->sid));
 
4924
                        break; }
 
4925
 
 
4926
                        case NETR_DELTA_DELETE_ACCOUNT: {
 
4927
                                NDR_CHECK(ndr_push_unique_ptr(ndr, r->sid));
 
4928
                        break; }
 
4929
 
 
4930
                        case NETR_DELTA_SECRET: {
 
4931
                                NDR_CHECK(ndr_push_unique_ptr(ndr, r->name));
 
4932
                        break; }
 
4933
 
 
4934
                        case NETR_DELTA_DELETE_SECRET: {
 
4935
                                NDR_CHECK(ndr_push_unique_ptr(ndr, r->name));
 
4936
                        break; }
 
4937
 
 
4938
                        case NETR_DELTA_DELETE_GROUP2: {
 
4939
                                NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->rid));
 
4940
                        break; }
 
4941
 
 
4942
                        case NETR_DELTA_DELETE_USER2: {
 
4943
                                NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->rid));
 
4944
                        break; }
 
4945
 
 
4946
                        case NETR_DELTA_MODIFY_COUNT: {
 
4947
                        break; }
 
4948
 
 
4949
                        default:
 
4950
                                return ndr_push_error(ndr, NDR_ERR_BAD_SWITCH, "Bad switch value %u at %s", level, __location__);
 
4951
                }
 
4952
        }
 
4953
        if (ndr_flags & NDR_BUFFERS) {
 
4954
                int level = ndr_push_get_switch_value(ndr, r);
 
4955
                switch (level) {
 
4956
                        case NETR_DELTA_DOMAIN:
 
4957
                        break;
 
4958
 
 
4959
                        case NETR_DELTA_GROUP:
 
4960
                        break;
 
4961
 
 
4962
                        case NETR_DELTA_DELETE_GROUP:
 
4963
                        break;
 
4964
 
 
4965
                        case NETR_DELTA_RENAME_GROUP:
 
4966
                        break;
 
4967
 
 
4968
                        case NETR_DELTA_USER:
 
4969
                        break;
 
4970
 
 
4971
                        case NETR_DELTA_DELETE_USER:
 
4972
                        break;
 
4973
 
 
4974
                        case NETR_DELTA_RENAME_USER:
 
4975
                        break;
 
4976
 
 
4977
                        case NETR_DELTA_GROUP_MEMBER:
 
4978
                        break;
 
4979
 
 
4980
                        case NETR_DELTA_ALIAS:
 
4981
                        break;
 
4982
 
 
4983
                        case NETR_DELTA_DELETE_ALIAS:
 
4984
                        break;
 
4985
 
 
4986
                        case NETR_DELTA_RENAME_ALIAS:
 
4987
                        break;
 
4988
 
 
4989
                        case NETR_DELTA_ALIAS_MEMBER:
 
4990
                        break;
 
4991
 
 
4992
                        case NETR_DELTA_POLICY:
 
4993
                                if (r->sid) {
 
4994
                                        NDR_CHECK(ndr_push_dom_sid2(ndr, NDR_SCALARS|NDR_BUFFERS, r->sid));
 
4995
                                }
 
4996
                        break;
 
4997
 
 
4998
                        case NETR_DELTA_TRUSTED_DOMAIN:
 
4999
                                if (r->sid) {
 
5000
                                        NDR_CHECK(ndr_push_dom_sid2(ndr, NDR_SCALARS|NDR_BUFFERS, r->sid));
 
5001
                                }
 
5002
                        break;
 
5003
 
 
5004
                        case NETR_DELTA_DELETE_TRUST:
 
5005
                                if (r->sid) {
 
5006
                                        NDR_CHECK(ndr_push_dom_sid2(ndr, NDR_SCALARS|NDR_BUFFERS, r->sid));
 
5007
                                }
 
5008
                        break;
 
5009
 
 
5010
                        case NETR_DELTA_ACCOUNT:
 
5011
                                if (r->sid) {
 
5012
                                        NDR_CHECK(ndr_push_dom_sid2(ndr, NDR_SCALARS|NDR_BUFFERS, r->sid));
 
5013
                                }
 
5014
                        break;
 
5015
 
 
5016
                        case NETR_DELTA_DELETE_ACCOUNT:
 
5017
                                if (r->sid) {
 
5018
                                        NDR_CHECK(ndr_push_dom_sid2(ndr, NDR_SCALARS|NDR_BUFFERS, r->sid));
 
5019
                                }
 
5020
                        break;
 
5021
 
 
5022
                        case NETR_DELTA_SECRET:
 
5023
                                if (r->name) {
 
5024
                                        NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->name, CH_UTF16)));
 
5025
                                        NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, 0));
 
5026
                                        NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->name, CH_UTF16)));
 
5027
                                        NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->name, ndr_charset_length(r->name, CH_UTF16), sizeof(uint16_t), CH_UTF16));
 
5028
                                }
 
5029
                        break;
 
5030
 
 
5031
                        case NETR_DELTA_DELETE_SECRET:
 
5032
                                if (r->name) {
 
5033
                                        NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->name, CH_UTF16)));
 
5034
                                        NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, 0));
 
5035
                                        NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->name, CH_UTF16)));
 
5036
                                        NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->name, ndr_charset_length(r->name, CH_UTF16), sizeof(uint16_t), CH_UTF16));
 
5037
                                }
 
5038
                        break;
 
5039
 
 
5040
                        case NETR_DELTA_DELETE_GROUP2:
 
5041
                        break;
 
5042
 
 
5043
                        case NETR_DELTA_DELETE_USER2:
 
5044
                        break;
 
5045
 
 
5046
                        case NETR_DELTA_MODIFY_COUNT:
 
5047
                        break;
 
5048
 
 
5049
                        default:
 
5050
                                return ndr_push_error(ndr, NDR_ERR_BAD_SWITCH, "Bad switch value %u at %s", level, __location__);
 
5051
                }
 
5052
        }
 
5053
        return NDR_ERR_SUCCESS;
 
5054
}
 
5055
 
 
5056
static enum ndr_err_code ndr_pull_netr_DELTA_ID_UNION(struct ndr_pull *ndr, int ndr_flags, union netr_DELTA_ID_UNION *r)
 
5057
{
 
5058
        int level;
 
5059
        uint16_t _level;
 
5060
        TALLOC_CTX *_mem_save_sid_0;
 
5061
        TALLOC_CTX *_mem_save_name_0;
 
5062
        level = ndr_pull_get_switch_value(ndr, r);
 
5063
        if (ndr_flags & NDR_SCALARS) {
 
5064
                NDR_CHECK(ndr_pull_uint1632(ndr, NDR_SCALARS, &_level));
 
5065
                if (_level != level) {
 
5066
                        return ndr_pull_error(ndr, NDR_ERR_BAD_SWITCH, "Bad switch value %u for r at %s", _level, __location__);
 
5067
                }
 
5068
                NDR_CHECK(ndr_pull_union_align(ndr, 5));
 
5069
                switch (level) {
 
5070
                        case NETR_DELTA_DOMAIN: {
 
5071
                                NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->rid));
 
5072
                        break; }
 
5073
 
 
5074
                        case NETR_DELTA_GROUP: {
 
5075
                                NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->rid));
 
5076
                        break; }
 
5077
 
 
5078
                        case NETR_DELTA_DELETE_GROUP: {
 
5079
                                NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->rid));
 
5080
                        break; }
 
5081
 
 
5082
                        case NETR_DELTA_RENAME_GROUP: {
 
5083
                                NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->rid));
 
5084
                        break; }
 
5085
 
 
5086
                        case NETR_DELTA_USER: {
 
5087
                                NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->rid));
 
5088
                        break; }
 
5089
 
 
5090
                        case NETR_DELTA_DELETE_USER: {
 
5091
                                NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->rid));
 
5092
                        break; }
 
5093
 
 
5094
                        case NETR_DELTA_RENAME_USER: {
 
5095
                                NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->rid));
 
5096
                        break; }
 
5097
 
 
5098
                        case NETR_DELTA_GROUP_MEMBER: {
 
5099
                                NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->rid));
 
5100
                        break; }
 
5101
 
 
5102
                        case NETR_DELTA_ALIAS: {
 
5103
                                NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->rid));
 
5104
                        break; }
 
5105
 
 
5106
                        case NETR_DELTA_DELETE_ALIAS: {
 
5107
                                NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->rid));
 
5108
                        break; }
 
5109
 
 
5110
                        case NETR_DELTA_RENAME_ALIAS: {
 
5111
                                NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->rid));
 
5112
                        break; }
 
5113
 
 
5114
                        case NETR_DELTA_ALIAS_MEMBER: {
 
5115
                                NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->rid));
 
5116
                        break; }
 
5117
 
 
5118
                        case NETR_DELTA_POLICY: {
 
5119
                                uint32_t _ptr_sid;
 
5120
                                NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_sid));
 
5121
                                if (_ptr_sid) {
 
5122
                                        NDR_PULL_ALLOC(ndr, r->sid);
 
5123
                                } else {
 
5124
                                        r->sid = NULL;
 
5125
                                }
 
5126
                        break; }
 
5127
 
 
5128
                        case NETR_DELTA_TRUSTED_DOMAIN: {
 
5129
                                uint32_t _ptr_sid;
 
5130
                                NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_sid));
 
5131
                                if (_ptr_sid) {
 
5132
                                        NDR_PULL_ALLOC(ndr, r->sid);
 
5133
                                } else {
 
5134
                                        r->sid = NULL;
 
5135
                                }
 
5136
                        break; }
 
5137
 
 
5138
                        case NETR_DELTA_DELETE_TRUST: {
 
5139
                                uint32_t _ptr_sid;
 
5140
                                NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_sid));
 
5141
                                if (_ptr_sid) {
 
5142
                                        NDR_PULL_ALLOC(ndr, r->sid);
 
5143
                                } else {
 
5144
                                        r->sid = NULL;
 
5145
                                }
 
5146
                        break; }
 
5147
 
 
5148
                        case NETR_DELTA_ACCOUNT: {
 
5149
                                uint32_t _ptr_sid;
 
5150
                                NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_sid));
 
5151
                                if (_ptr_sid) {
 
5152
                                        NDR_PULL_ALLOC(ndr, r->sid);
 
5153
                                } else {
 
5154
                                        r->sid = NULL;
 
5155
                                }
 
5156
                        break; }
 
5157
 
 
5158
                        case NETR_DELTA_DELETE_ACCOUNT: {
 
5159
                                uint32_t _ptr_sid;
 
5160
                                NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_sid));
 
5161
                                if (_ptr_sid) {
 
5162
                                        NDR_PULL_ALLOC(ndr, r->sid);
 
5163
                                } else {
 
5164
                                        r->sid = NULL;
 
5165
                                }
 
5166
                        break; }
 
5167
 
 
5168
                        case NETR_DELTA_SECRET: {
 
5169
                                uint32_t _ptr_name;
 
5170
                                NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_name));
 
5171
                                if (_ptr_name) {
 
5172
                                        NDR_PULL_ALLOC(ndr, r->name);
 
5173
                                } else {
 
5174
                                        r->name = NULL;
 
5175
                                }
 
5176
                        break; }
 
5177
 
 
5178
                        case NETR_DELTA_DELETE_SECRET: {
 
5179
                                uint32_t _ptr_name;
 
5180
                                NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_name));
 
5181
                                if (_ptr_name) {
 
5182
                                        NDR_PULL_ALLOC(ndr, r->name);
 
5183
                                } else {
 
5184
                                        r->name = NULL;
 
5185
                                }
 
5186
                        break; }
 
5187
 
 
5188
                        case NETR_DELTA_DELETE_GROUP2: {
 
5189
                                NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->rid));
 
5190
                        break; }
 
5191
 
 
5192
                        case NETR_DELTA_DELETE_USER2: {
 
5193
                                NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->rid));
 
5194
                        break; }
 
5195
 
 
5196
                        case NETR_DELTA_MODIFY_COUNT: {
 
5197
                        break; }
 
5198
 
 
5199
                        default:
 
5200
                                return ndr_pull_error(ndr, NDR_ERR_BAD_SWITCH, "Bad switch value %u at %s", level, __location__);
 
5201
                }
 
5202
        }
 
5203
        if (ndr_flags & NDR_BUFFERS) {
 
5204
                switch (level) {
 
5205
                        case NETR_DELTA_DOMAIN:
 
5206
                        break;
 
5207
 
 
5208
                        case NETR_DELTA_GROUP:
 
5209
                        break;
 
5210
 
 
5211
                        case NETR_DELTA_DELETE_GROUP:
 
5212
                        break;
 
5213
 
 
5214
                        case NETR_DELTA_RENAME_GROUP:
 
5215
                        break;
 
5216
 
 
5217
                        case NETR_DELTA_USER:
 
5218
                        break;
 
5219
 
 
5220
                        case NETR_DELTA_DELETE_USER:
 
5221
                        break;
 
5222
 
 
5223
                        case NETR_DELTA_RENAME_USER:
 
5224
                        break;
 
5225
 
 
5226
                        case NETR_DELTA_GROUP_MEMBER:
 
5227
                        break;
 
5228
 
 
5229
                        case NETR_DELTA_ALIAS:
 
5230
                        break;
 
5231
 
 
5232
                        case NETR_DELTA_DELETE_ALIAS:
 
5233
                        break;
 
5234
 
 
5235
                        case NETR_DELTA_RENAME_ALIAS:
 
5236
                        break;
 
5237
 
 
5238
                        case NETR_DELTA_ALIAS_MEMBER:
 
5239
                        break;
 
5240
 
 
5241
                        case NETR_DELTA_POLICY:
 
5242
                                if (r->sid) {
 
5243
                                        _mem_save_sid_0 = NDR_PULL_GET_MEM_CTX(ndr);
 
5244
                                        NDR_PULL_SET_MEM_CTX(ndr, r->sid, 0);
 
5245
                                        NDR_CHECK(ndr_pull_dom_sid2(ndr, NDR_SCALARS|NDR_BUFFERS, r->sid));
 
5246
                                        NDR_PULL_SET_MEM_CTX(ndr, _mem_save_sid_0, 0);
 
5247
                                }
 
5248
                        break;
 
5249
 
 
5250
                        case NETR_DELTA_TRUSTED_DOMAIN:
 
5251
                                if (r->sid) {
 
5252
                                        _mem_save_sid_0 = NDR_PULL_GET_MEM_CTX(ndr);
 
5253
                                        NDR_PULL_SET_MEM_CTX(ndr, r->sid, 0);
 
5254
                                        NDR_CHECK(ndr_pull_dom_sid2(ndr, NDR_SCALARS|NDR_BUFFERS, r->sid));
 
5255
                                        NDR_PULL_SET_MEM_CTX(ndr, _mem_save_sid_0, 0);
 
5256
                                }
 
5257
                        break;
 
5258
 
 
5259
                        case NETR_DELTA_DELETE_TRUST:
 
5260
                                if (r->sid) {
 
5261
                                        _mem_save_sid_0 = NDR_PULL_GET_MEM_CTX(ndr);
 
5262
                                        NDR_PULL_SET_MEM_CTX(ndr, r->sid, 0);
 
5263
                                        NDR_CHECK(ndr_pull_dom_sid2(ndr, NDR_SCALARS|NDR_BUFFERS, r->sid));
 
5264
                                        NDR_PULL_SET_MEM_CTX(ndr, _mem_save_sid_0, 0);
 
5265
                                }
 
5266
                        break;
 
5267
 
 
5268
                        case NETR_DELTA_ACCOUNT:
 
5269
                                if (r->sid) {
 
5270
                                        _mem_save_sid_0 = NDR_PULL_GET_MEM_CTX(ndr);
 
5271
                                        NDR_PULL_SET_MEM_CTX(ndr, r->sid, 0);
 
5272
                                        NDR_CHECK(ndr_pull_dom_sid2(ndr, NDR_SCALARS|NDR_BUFFERS, r->sid));
 
5273
                                        NDR_PULL_SET_MEM_CTX(ndr, _mem_save_sid_0, 0);
 
5274
                                }
 
5275
                        break;
 
5276
 
 
5277
                        case NETR_DELTA_DELETE_ACCOUNT:
 
5278
                                if (r->sid) {
 
5279
                                        _mem_save_sid_0 = NDR_PULL_GET_MEM_CTX(ndr);
 
5280
                                        NDR_PULL_SET_MEM_CTX(ndr, r->sid, 0);
 
5281
                                        NDR_CHECK(ndr_pull_dom_sid2(ndr, NDR_SCALARS|NDR_BUFFERS, r->sid));
 
5282
                                        NDR_PULL_SET_MEM_CTX(ndr, _mem_save_sid_0, 0);
 
5283
                                }
 
5284
                        break;
 
5285
 
 
5286
                        case NETR_DELTA_SECRET:
 
5287
                                if (r->name) {
 
5288
                                        _mem_save_name_0 = NDR_PULL_GET_MEM_CTX(ndr);
 
5289
                                        NDR_PULL_SET_MEM_CTX(ndr, r->name, 0);
 
5290
                                        NDR_CHECK(ndr_pull_array_size(ndr, &r->name));
 
5291
                                        NDR_CHECK(ndr_pull_array_length(ndr, &r->name));
 
5292
                                        if (ndr_get_array_length(ndr, &r->name) > ndr_get_array_size(ndr, &r->name)) {
 
5293
                                                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));
 
5294
                                        }
 
5295
                                        NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->name), sizeof(uint16_t)));
 
5296
                                        NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->name, ndr_get_array_length(ndr, &r->name), sizeof(uint16_t), CH_UTF16));
 
5297
                                        NDR_PULL_SET_MEM_CTX(ndr, _mem_save_name_0, 0);
 
5298
                                }
 
5299
                        break;
 
5300
 
 
5301
                        case NETR_DELTA_DELETE_SECRET:
 
5302
                                if (r->name) {
 
5303
                                        _mem_save_name_0 = NDR_PULL_GET_MEM_CTX(ndr);
 
5304
                                        NDR_PULL_SET_MEM_CTX(ndr, r->name, 0);
 
5305
                                        NDR_CHECK(ndr_pull_array_size(ndr, &r->name));
 
5306
                                        NDR_CHECK(ndr_pull_array_length(ndr, &r->name));
 
5307
                                        if (ndr_get_array_length(ndr, &r->name) > ndr_get_array_size(ndr, &r->name)) {
 
5308
                                                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));
 
5309
                                        }
 
5310
                                        NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->name), sizeof(uint16_t)));
 
5311
                                        NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->name, ndr_get_array_length(ndr, &r->name), sizeof(uint16_t), CH_UTF16));
 
5312
                                        NDR_PULL_SET_MEM_CTX(ndr, _mem_save_name_0, 0);
 
5313
                                }
 
5314
                        break;
 
5315
 
 
5316
                        case NETR_DELTA_DELETE_GROUP2:
 
5317
                        break;
 
5318
 
 
5319
                        case NETR_DELTA_DELETE_USER2:
 
5320
                        break;
 
5321
 
 
5322
                        case NETR_DELTA_MODIFY_COUNT:
 
5323
                        break;
 
5324
 
 
5325
                        default:
 
5326
                                return ndr_pull_error(ndr, NDR_ERR_BAD_SWITCH, "Bad switch value %u at %s", level, __location__);
 
5327
                }
 
5328
        }
 
5329
        return NDR_ERR_SUCCESS;
 
5330
}
 
5331
 
 
5332
_PUBLIC_ void ndr_print_netr_DELTA_ID_UNION(struct ndr_print *ndr, const char *name, const union netr_DELTA_ID_UNION *r)
 
5333
{
 
5334
        int level;
 
5335
        level = ndr_print_get_switch_value(ndr, r);
 
5336
        ndr_print_union(ndr, name, level, "netr_DELTA_ID_UNION");
 
5337
        switch (level) {
 
5338
                case NETR_DELTA_DOMAIN:
 
5339
                        ndr_print_uint32(ndr, "rid", r->rid);
 
5340
                break;
 
5341
 
 
5342
                case NETR_DELTA_GROUP:
 
5343
                        ndr_print_uint32(ndr, "rid", r->rid);
 
5344
                break;
 
5345
 
 
5346
                case NETR_DELTA_DELETE_GROUP:
 
5347
                        ndr_print_uint32(ndr, "rid", r->rid);
 
5348
                break;
 
5349
 
 
5350
                case NETR_DELTA_RENAME_GROUP:
 
5351
                        ndr_print_uint32(ndr, "rid", r->rid);
 
5352
                break;
 
5353
 
 
5354
                case NETR_DELTA_USER:
 
5355
                        ndr_print_uint32(ndr, "rid", r->rid);
 
5356
                break;
 
5357
 
 
5358
                case NETR_DELTA_DELETE_USER:
 
5359
                        ndr_print_uint32(ndr, "rid", r->rid);
 
5360
                break;
 
5361
 
 
5362
                case NETR_DELTA_RENAME_USER:
 
5363
                        ndr_print_uint32(ndr, "rid", r->rid);
 
5364
                break;
 
5365
 
 
5366
                case NETR_DELTA_GROUP_MEMBER:
 
5367
                        ndr_print_uint32(ndr, "rid", r->rid);
 
5368
                break;
 
5369
 
 
5370
                case NETR_DELTA_ALIAS:
 
5371
                        ndr_print_uint32(ndr, "rid", r->rid);
 
5372
                break;
 
5373
 
 
5374
                case NETR_DELTA_DELETE_ALIAS:
 
5375
                        ndr_print_uint32(ndr, "rid", r->rid);
 
5376
                break;
 
5377
 
 
5378
                case NETR_DELTA_RENAME_ALIAS:
 
5379
                        ndr_print_uint32(ndr, "rid", r->rid);
 
5380
                break;
 
5381
 
 
5382
                case NETR_DELTA_ALIAS_MEMBER:
 
5383
                        ndr_print_uint32(ndr, "rid", r->rid);
 
5384
                break;
 
5385
 
 
5386
                case NETR_DELTA_POLICY:
 
5387
                        ndr_print_ptr(ndr, "sid", r->sid);
 
5388
                        ndr->depth++;
 
5389
                        if (r->sid) {
 
5390
                                ndr_print_dom_sid2(ndr, "sid", r->sid);
 
5391
                        }
 
5392
                        ndr->depth--;
 
5393
                break;
 
5394
 
 
5395
                case NETR_DELTA_TRUSTED_DOMAIN:
 
5396
                        ndr_print_ptr(ndr, "sid", r->sid);
 
5397
                        ndr->depth++;
 
5398
                        if (r->sid) {
 
5399
                                ndr_print_dom_sid2(ndr, "sid", r->sid);
 
5400
                        }
 
5401
                        ndr->depth--;
 
5402
                break;
 
5403
 
 
5404
                case NETR_DELTA_DELETE_TRUST:
 
5405
                        ndr_print_ptr(ndr, "sid", r->sid);
 
5406
                        ndr->depth++;
 
5407
                        if (r->sid) {
 
5408
                                ndr_print_dom_sid2(ndr, "sid", r->sid);
 
5409
                        }
 
5410
                        ndr->depth--;
 
5411
                break;
 
5412
 
 
5413
                case NETR_DELTA_ACCOUNT:
 
5414
                        ndr_print_ptr(ndr, "sid", r->sid);
 
5415
                        ndr->depth++;
 
5416
                        if (r->sid) {
 
5417
                                ndr_print_dom_sid2(ndr, "sid", r->sid);
 
5418
                        }
 
5419
                        ndr->depth--;
 
5420
                break;
 
5421
 
 
5422
                case NETR_DELTA_DELETE_ACCOUNT:
 
5423
                        ndr_print_ptr(ndr, "sid", r->sid);
 
5424
                        ndr->depth++;
 
5425
                        if (r->sid) {
 
5426
                                ndr_print_dom_sid2(ndr, "sid", r->sid);
 
5427
                        }
 
5428
                        ndr->depth--;
 
5429
                break;
 
5430
 
 
5431
                case NETR_DELTA_SECRET:
 
5432
                        ndr_print_ptr(ndr, "name", r->name);
 
5433
                        ndr->depth++;
 
5434
                        if (r->name) {
 
5435
                                ndr_print_string(ndr, "name", r->name);
 
5436
                        }
 
5437
                        ndr->depth--;
 
5438
                break;
 
5439
 
 
5440
                case NETR_DELTA_DELETE_SECRET:
 
5441
                        ndr_print_ptr(ndr, "name", r->name);
 
5442
                        ndr->depth++;
 
5443
                        if (r->name) {
 
5444
                                ndr_print_string(ndr, "name", r->name);
 
5445
                        }
 
5446
                        ndr->depth--;
 
5447
                break;
 
5448
 
 
5449
                case NETR_DELTA_DELETE_GROUP2:
 
5450
                        ndr_print_uint32(ndr, "rid", r->rid);
 
5451
                break;
 
5452
 
 
5453
                case NETR_DELTA_DELETE_USER2:
 
5454
                        ndr_print_uint32(ndr, "rid", r->rid);
 
5455
                break;
 
5456
 
 
5457
                case NETR_DELTA_MODIFY_COUNT:
 
5458
                break;
 
5459
 
 
5460
                default:
 
5461
                        ndr_print_bad_level(ndr, name, level);
 
5462
        }
 
5463
}
 
5464
 
 
5465
static enum ndr_err_code ndr_push_netr_DELTA_ENUM(struct ndr_push *ndr, int ndr_flags, const struct netr_DELTA_ENUM *r)
 
5466
{
 
5467
        if (ndr_flags & NDR_SCALARS) {
 
5468
                NDR_CHECK(ndr_push_align(ndr, 5));
 
5469
                NDR_CHECK(ndr_push_netr_DeltaEnum(ndr, NDR_SCALARS, r->delta_type));
 
5470
                NDR_CHECK(ndr_push_set_switch_value(ndr, &r->delta_id_union, r->delta_type));
 
5471
                NDR_CHECK(ndr_push_netr_DELTA_ID_UNION(ndr, NDR_SCALARS, &r->delta_id_union));
 
5472
                NDR_CHECK(ndr_push_set_switch_value(ndr, &r->delta_union, r->delta_type));
 
5473
                NDR_CHECK(ndr_push_netr_DELTA_UNION(ndr, NDR_SCALARS, &r->delta_union));
 
5474
                NDR_CHECK(ndr_push_trailer_align(ndr, 5));
 
5475
        }
 
5476
        if (ndr_flags & NDR_BUFFERS) {
 
5477
                NDR_CHECK(ndr_push_netr_DELTA_ID_UNION(ndr, NDR_BUFFERS, &r->delta_id_union));
 
5478
                NDR_CHECK(ndr_push_netr_DELTA_UNION(ndr, NDR_BUFFERS, &r->delta_union));
 
5479
        }
 
5480
        return NDR_ERR_SUCCESS;
 
5481
}
 
5482
 
 
5483
static enum ndr_err_code ndr_pull_netr_DELTA_ENUM(struct ndr_pull *ndr, int ndr_flags, struct netr_DELTA_ENUM *r)
 
5484
{
 
5485
        if (ndr_flags & NDR_SCALARS) {
 
5486
                NDR_CHECK(ndr_pull_align(ndr, 5));
 
5487
                NDR_CHECK(ndr_pull_netr_DeltaEnum(ndr, NDR_SCALARS, &r->delta_type));
 
5488
                NDR_CHECK(ndr_pull_set_switch_value(ndr, &r->delta_id_union, r->delta_type));
 
5489
                NDR_CHECK(ndr_pull_netr_DELTA_ID_UNION(ndr, NDR_SCALARS, &r->delta_id_union));
 
5490
                NDR_CHECK(ndr_pull_set_switch_value(ndr, &r->delta_union, r->delta_type));
 
5491
                NDR_CHECK(ndr_pull_netr_DELTA_UNION(ndr, NDR_SCALARS, &r->delta_union));
 
5492
                NDR_CHECK(ndr_pull_trailer_align(ndr, 5));
 
5493
        }
 
5494
        if (ndr_flags & NDR_BUFFERS) {
 
5495
                NDR_CHECK(ndr_pull_netr_DELTA_ID_UNION(ndr, NDR_BUFFERS, &r->delta_id_union));
 
5496
                NDR_CHECK(ndr_pull_netr_DELTA_UNION(ndr, NDR_BUFFERS, &r->delta_union));
 
5497
        }
 
5498
        return NDR_ERR_SUCCESS;
 
5499
}
 
5500
 
 
5501
_PUBLIC_ void ndr_print_netr_DELTA_ENUM(struct ndr_print *ndr, const char *name, const struct netr_DELTA_ENUM *r)
 
5502
{
 
5503
        ndr_print_struct(ndr, name, "netr_DELTA_ENUM");
 
5504
        ndr->depth++;
 
5505
        ndr_print_netr_DeltaEnum(ndr, "delta_type", r->delta_type);
 
5506
        ndr_print_set_switch_value(ndr, &r->delta_id_union, r->delta_type);
 
5507
        ndr_print_netr_DELTA_ID_UNION(ndr, "delta_id_union", &r->delta_id_union);
 
5508
        ndr_print_set_switch_value(ndr, &r->delta_union, r->delta_type);
 
5509
        ndr_print_netr_DELTA_UNION(ndr, "delta_union", &r->delta_union);
 
5510
        ndr->depth--;
 
5511
}
 
5512
 
 
5513
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)
 
5514
{
 
5515
        uint32_t cntr_delta_enum_1;
 
5516
        if (ndr_flags & NDR_SCALARS) {
 
5517
                NDR_CHECK(ndr_push_align(ndr, 5));
 
5518
                NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->num_deltas));
 
5519
                NDR_CHECK(ndr_push_unique_ptr(ndr, r->delta_enum));
 
5520
                NDR_CHECK(ndr_push_trailer_align(ndr, 5));
 
5521
        }
 
5522
        if (ndr_flags & NDR_BUFFERS) {
 
5523
                if (r->delta_enum) {
 
5524
                        NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, r->num_deltas));
 
5525
                        for (cntr_delta_enum_1 = 0; cntr_delta_enum_1 < r->num_deltas; cntr_delta_enum_1++) {
 
5526
                                NDR_CHECK(ndr_push_netr_DELTA_ENUM(ndr, NDR_SCALARS, &r->delta_enum[cntr_delta_enum_1]));
 
5527
                        }
 
5528
                        for (cntr_delta_enum_1 = 0; cntr_delta_enum_1 < r->num_deltas; cntr_delta_enum_1++) {
 
5529
                                NDR_CHECK(ndr_push_netr_DELTA_ENUM(ndr, NDR_BUFFERS, &r->delta_enum[cntr_delta_enum_1]));
 
5530
                        }
 
5531
                }
 
5532
        }
 
5533
        return NDR_ERR_SUCCESS;
 
5534
}
 
5535
 
 
5536
static enum ndr_err_code ndr_pull_netr_DELTA_ENUM_ARRAY(struct ndr_pull *ndr, int ndr_flags, struct netr_DELTA_ENUM_ARRAY *r)
 
5537
{
 
5538
        uint32_t _ptr_delta_enum;
 
5539
        uint32_t cntr_delta_enum_1;
 
5540
        TALLOC_CTX *_mem_save_delta_enum_0;
 
5541
        TALLOC_CTX *_mem_save_delta_enum_1;
 
5542
        if (ndr_flags & NDR_SCALARS) {
 
5543
                NDR_CHECK(ndr_pull_align(ndr, 5));
 
5544
                NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->num_deltas));
 
5545
                NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_delta_enum));
 
5546
                if (_ptr_delta_enum) {
 
5547
                        NDR_PULL_ALLOC(ndr, r->delta_enum);
 
5548
                } else {
 
5549
                        r->delta_enum = NULL;
 
5550
                }
 
5551
                NDR_CHECK(ndr_pull_trailer_align(ndr, 5));
 
5552
        }
 
5553
        if (ndr_flags & NDR_BUFFERS) {
 
5554
                if (r->delta_enum) {
 
5555
                        _mem_save_delta_enum_0 = NDR_PULL_GET_MEM_CTX(ndr);
 
5556
                        NDR_PULL_SET_MEM_CTX(ndr, r->delta_enum, 0);
 
5557
                        NDR_CHECK(ndr_pull_array_size(ndr, &r->delta_enum));
 
5558
                        NDR_PULL_ALLOC_N(ndr, r->delta_enum, ndr_get_array_size(ndr, &r->delta_enum));
 
5559
                        _mem_save_delta_enum_1 = NDR_PULL_GET_MEM_CTX(ndr);
 
5560
                        NDR_PULL_SET_MEM_CTX(ndr, r->delta_enum, 0);
 
5561
                        for (cntr_delta_enum_1 = 0; cntr_delta_enum_1 < r->num_deltas; cntr_delta_enum_1++) {
 
5562
                                NDR_CHECK(ndr_pull_netr_DELTA_ENUM(ndr, NDR_SCALARS, &r->delta_enum[cntr_delta_enum_1]));
 
5563
                        }
 
5564
                        for (cntr_delta_enum_1 = 0; cntr_delta_enum_1 < r->num_deltas; cntr_delta_enum_1++) {
 
5565
                                NDR_CHECK(ndr_pull_netr_DELTA_ENUM(ndr, NDR_BUFFERS, &r->delta_enum[cntr_delta_enum_1]));
 
5566
                        }
 
5567
                        NDR_PULL_SET_MEM_CTX(ndr, _mem_save_delta_enum_1, 0);
 
5568
                        NDR_PULL_SET_MEM_CTX(ndr, _mem_save_delta_enum_0, 0);
 
5569
                }
 
5570
                if (r->delta_enum) {
 
5571
                        NDR_CHECK(ndr_check_array_size(ndr, (void*)&r->delta_enum, r->num_deltas));
 
5572
                }
 
5573
        }
 
5574
        return NDR_ERR_SUCCESS;
 
5575
}
 
5576
 
 
5577
_PUBLIC_ void ndr_print_netr_DELTA_ENUM_ARRAY(struct ndr_print *ndr, const char *name, const struct netr_DELTA_ENUM_ARRAY *r)
 
5578
{
 
5579
        uint32_t cntr_delta_enum_1;
 
5580
        ndr_print_struct(ndr, name, "netr_DELTA_ENUM_ARRAY");
 
5581
        ndr->depth++;
 
5582
        ndr_print_uint32(ndr, "num_deltas", r->num_deltas);
 
5583
        ndr_print_ptr(ndr, "delta_enum", r->delta_enum);
 
5584
        ndr->depth++;
 
5585
        if (r->delta_enum) {
 
5586
                ndr->print(ndr, "%s: ARRAY(%d)", "delta_enum", (int)r->num_deltas);
 
5587
                ndr->depth++;
 
5588
                for (cntr_delta_enum_1=0;cntr_delta_enum_1<r->num_deltas;cntr_delta_enum_1++) {
 
5589
                        char *idx_1=NULL;
 
5590
                        if (asprintf(&idx_1, "[%d]", cntr_delta_enum_1) != -1) {
 
5591
                                ndr_print_netr_DELTA_ENUM(ndr, "delta_enum", &r->delta_enum[cntr_delta_enum_1]);
 
5592
                                free(idx_1);
 
5593
                        }
 
5594
                }
 
5595
                ndr->depth--;
 
5596
        }
 
5597
        ndr->depth--;
 
5598
        ndr->depth--;
 
5599
}
 
5600
 
 
5601
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)
 
5602
{
 
5603
        {
 
5604
                uint32_t _flags_save_STRUCT = ndr->flags;
 
5605
                ndr_set_flags(&ndr->flags, LIBNDR_PRINT_ARRAY_HEX);
 
5606
                if (ndr_flags & NDR_SCALARS) {
 
5607
                        NDR_CHECK(ndr_push_align(ndr, 4));
 
5608
                        NDR_CHECK(ndr_push_array_uint8(ndr, NDR_SCALARS, r->computer_name, 16));
 
5609
                        NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->timecreated));
 
5610
                        NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->serial_number));
 
5611
                        NDR_CHECK(ndr_push_trailer_align(ndr, 4));
 
5612
                }
 
5613
                if (ndr_flags & NDR_BUFFERS) {
 
5614
                }
 
5615
                ndr->flags = _flags_save_STRUCT;
 
5616
        }
 
5617
        return NDR_ERR_SUCCESS;
 
5618
}
 
5619
 
 
5620
static enum ndr_err_code ndr_pull_netr_UAS_INFO_0(struct ndr_pull *ndr, int ndr_flags, struct netr_UAS_INFO_0 *r)
 
5621
{
 
5622
        {
 
5623
                uint32_t _flags_save_STRUCT = ndr->flags;
 
5624
                ndr_set_flags(&ndr->flags, LIBNDR_PRINT_ARRAY_HEX);
 
5625
                if (ndr_flags & NDR_SCALARS) {
 
5626
                        NDR_CHECK(ndr_pull_align(ndr, 4));
 
5627
                        NDR_CHECK(ndr_pull_array_uint8(ndr, NDR_SCALARS, r->computer_name, 16));
 
5628
                        NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->timecreated));
 
5629
                        NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->serial_number));
 
5630
                        NDR_CHECK(ndr_pull_trailer_align(ndr, 4));
 
5631
                }
 
5632
                if (ndr_flags & NDR_BUFFERS) {
 
5633
                }
 
5634
                ndr->flags = _flags_save_STRUCT;
 
5635
        }
 
5636
        return NDR_ERR_SUCCESS;
 
5637
}
 
5638
 
 
5639
_PUBLIC_ void ndr_print_netr_UAS_INFO_0(struct ndr_print *ndr, const char *name, const struct netr_UAS_INFO_0 *r)
 
5640
{
 
5641
        ndr_print_struct(ndr, name, "netr_UAS_INFO_0");
 
5642
        {
 
5643
                uint32_t _flags_save_STRUCT = ndr->flags;
 
5644
                ndr_set_flags(&ndr->flags, LIBNDR_PRINT_ARRAY_HEX);
 
5645
                ndr->depth++;
 
5646
                ndr_print_array_uint8(ndr, "computer_name", r->computer_name, 16);
 
5647
                ndr_print_uint32(ndr, "timecreated", r->timecreated);
 
5648
                ndr_print_uint32(ndr, "serial_number", r->serial_number);
 
5649
                ndr->depth--;
 
5650
                ndr->flags = _flags_save_STRUCT;
 
5651
        }
 
5652
}
 
5653
 
 
5654
static enum ndr_err_code ndr_push_netr_AccountBuffer(struct ndr_push *ndr, int ndr_flags, const struct netr_AccountBuffer *r)
 
5655
{
 
5656
        if (ndr_flags & NDR_SCALARS) {
 
5657
                NDR_CHECK(ndr_push_align(ndr, 4));
 
5658
                {
 
5659
                        uint32_t _flags_save_DATA_BLOB = ndr->flags;
 
5660
                        ndr_set_flags(&ndr->flags, LIBNDR_FLAG_REMAINING);
 
5661
                        NDR_CHECK(ndr_push_DATA_BLOB(ndr, NDR_SCALARS, r->blob));
 
5662
                        ndr->flags = _flags_save_DATA_BLOB;
 
5663
                }
 
5664
                NDR_CHECK(ndr_push_trailer_align(ndr, 4));
 
5665
        }
 
5666
        if (ndr_flags & NDR_BUFFERS) {
 
5667
        }
 
5668
        return NDR_ERR_SUCCESS;
 
5669
}
 
5670
 
 
5671
static enum ndr_err_code ndr_pull_netr_AccountBuffer(struct ndr_pull *ndr, int ndr_flags, struct netr_AccountBuffer *r)
 
5672
{
 
5673
        if (ndr_flags & NDR_SCALARS) {
 
5674
                NDR_CHECK(ndr_pull_align(ndr, 4));
 
5675
                {
 
5676
                        uint32_t _flags_save_DATA_BLOB = ndr->flags;
 
5677
                        ndr_set_flags(&ndr->flags, LIBNDR_FLAG_REMAINING);
 
5678
                        NDR_CHECK(ndr_pull_DATA_BLOB(ndr, NDR_SCALARS, &r->blob));
 
5679
                        ndr->flags = _flags_save_DATA_BLOB;
 
5680
                }
 
5681
                NDR_CHECK(ndr_pull_trailer_align(ndr, 4));
 
5682
        }
 
5683
        if (ndr_flags & NDR_BUFFERS) {
 
5684
        }
 
5685
        return NDR_ERR_SUCCESS;
 
5686
}
 
5687
 
 
5688
_PUBLIC_ void ndr_print_netr_AccountBuffer(struct ndr_print *ndr, const char *name, const struct netr_AccountBuffer *r)
 
5689
{
 
5690
        ndr_print_struct(ndr, name, "netr_AccountBuffer");
 
5691
        ndr->depth++;
 
5692
        ndr_print_DATA_BLOB(ndr, "blob", r->blob);
 
5693
        ndr->depth--;
 
5694
}
 
5695
 
 
5696
static enum ndr_err_code ndr_push_netr_InfoFlags(struct ndr_push *ndr, int ndr_flags, uint32_t r)
 
5697
{
 
5698
        NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r));
 
5699
        return NDR_ERR_SUCCESS;
 
5700
}
 
5701
 
 
5702
static enum ndr_err_code ndr_pull_netr_InfoFlags(struct ndr_pull *ndr, int ndr_flags, uint32_t *r)
 
5703
{
 
5704
        uint32_t v;
 
5705
        NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &v));
 
5706
        *r = v;
 
5707
        return NDR_ERR_SUCCESS;
 
5708
}
 
5709
 
 
5710
_PUBLIC_ void ndr_print_netr_InfoFlags(struct ndr_print *ndr, const char *name, uint32_t r)
 
5711
{
 
5712
        ndr_print_uint32(ndr, name, r);
 
5713
        ndr->depth++;
 
5714
        ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "NETLOGON_REPLICATION_NEEDED", NETLOGON_REPLICATION_NEEDED, r);
 
5715
        ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "NETLOGON_REPLICATION_IN_PROGRESS", NETLOGON_REPLICATION_IN_PROGRESS, r);
 
5716
        ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "NETLOGON_FULL_SYNC_REPLICATION", NETLOGON_FULL_SYNC_REPLICATION, r);
 
5717
        ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "NETLOGON_REDO_NEEDED", NETLOGON_REDO_NEEDED, r);
 
5718
        ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "NETLOGON_HAS_IP", NETLOGON_HAS_IP, r);
 
5719
        ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "NETLOGON_HAS_TIMESERV", NETLOGON_HAS_TIMESERV, r);
 
5720
        ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "NETLOGON_DNS_UPDATE_FAILURE", NETLOGON_DNS_UPDATE_FAILURE, r);
 
5721
        ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "NETLOGON_VERIFY_STATUS_RETURNED", NETLOGON_VERIFY_STATUS_RETURNED, r);
 
5722
        ndr->depth--;
 
5723
}
 
5724
 
 
5725
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)
 
5726
{
 
5727
        if (ndr_flags & NDR_SCALARS) {
 
5728
                NDR_CHECK(ndr_push_align(ndr, 4));
 
5729
                NDR_CHECK(ndr_push_netr_InfoFlags(ndr, NDR_SCALARS, r->flags));
 
5730
                NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->pdc_connection_status));
 
5731
                NDR_CHECK(ndr_push_trailer_align(ndr, 4));
 
5732
        }
 
5733
        if (ndr_flags & NDR_BUFFERS) {
 
5734
        }
 
5735
        return NDR_ERR_SUCCESS;
 
5736
}
 
5737
 
 
5738
static enum ndr_err_code ndr_pull_netr_NETLOGON_INFO_1(struct ndr_pull *ndr, int ndr_flags, struct netr_NETLOGON_INFO_1 *r)
 
5739
{
 
5740
        if (ndr_flags & NDR_SCALARS) {
 
5741
                NDR_CHECK(ndr_pull_align(ndr, 4));
 
5742
                NDR_CHECK(ndr_pull_netr_InfoFlags(ndr, NDR_SCALARS, &r->flags));
 
5743
                NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->pdc_connection_status));
 
5744
                NDR_CHECK(ndr_pull_trailer_align(ndr, 4));
 
5745
        }
 
5746
        if (ndr_flags & NDR_BUFFERS) {
 
5747
        }
 
5748
        return NDR_ERR_SUCCESS;
 
5749
}
 
5750
 
 
5751
_PUBLIC_ void ndr_print_netr_NETLOGON_INFO_1(struct ndr_print *ndr, const char *name, const struct netr_NETLOGON_INFO_1 *r)
 
5752
{
 
5753
        ndr_print_struct(ndr, name, "netr_NETLOGON_INFO_1");
 
5754
        ndr->depth++;
 
5755
        ndr_print_netr_InfoFlags(ndr, "flags", r->flags);
 
5756
        ndr_print_WERROR(ndr, "pdc_connection_status", r->pdc_connection_status);
 
5757
        ndr->depth--;
 
5758
}
 
5759
 
 
5760
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)
 
5761
{
 
5762
        if (ndr_flags & NDR_SCALARS) {
 
5763
                NDR_CHECK(ndr_push_align(ndr, 5));
 
5764
                NDR_CHECK(ndr_push_netr_InfoFlags(ndr, NDR_SCALARS, r->flags));
 
5765
                NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->pdc_connection_status));
 
5766
                NDR_CHECK(ndr_push_unique_ptr(ndr, r->trusted_dc_name));
 
5767
                NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->tc_connection_status));
 
5768
                NDR_CHECK(ndr_push_trailer_align(ndr, 5));
 
5769
        }
 
5770
        if (ndr_flags & NDR_BUFFERS) {
 
5771
                if (r->trusted_dc_name) {
 
5772
                        NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->trusted_dc_name, CH_UTF16)));
 
5773
                        NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, 0));
 
5774
                        NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->trusted_dc_name, CH_UTF16)));
 
5775
                        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));
 
5776
                }
 
5777
        }
 
5778
        return NDR_ERR_SUCCESS;
 
5779
}
 
5780
 
 
5781
static enum ndr_err_code ndr_pull_netr_NETLOGON_INFO_2(struct ndr_pull *ndr, int ndr_flags, struct netr_NETLOGON_INFO_2 *r)
 
5782
{
 
5783
        uint32_t _ptr_trusted_dc_name;
 
5784
        TALLOC_CTX *_mem_save_trusted_dc_name_0;
 
5785
        if (ndr_flags & NDR_SCALARS) {
 
5786
                NDR_CHECK(ndr_pull_align(ndr, 5));
 
5787
                NDR_CHECK(ndr_pull_netr_InfoFlags(ndr, NDR_SCALARS, &r->flags));
 
5788
                NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->pdc_connection_status));
 
5789
                NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_trusted_dc_name));
 
5790
                if (_ptr_trusted_dc_name) {
 
5791
                        NDR_PULL_ALLOC(ndr, r->trusted_dc_name);
 
5792
                } else {
 
5793
                        r->trusted_dc_name = NULL;
 
5794
                }
 
5795
                NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->tc_connection_status));
 
5796
                NDR_CHECK(ndr_pull_trailer_align(ndr, 5));
 
5797
        }
 
5798
        if (ndr_flags & NDR_BUFFERS) {
 
5799
                if (r->trusted_dc_name) {
 
5800
                        _mem_save_trusted_dc_name_0 = NDR_PULL_GET_MEM_CTX(ndr);
 
5801
                        NDR_PULL_SET_MEM_CTX(ndr, r->trusted_dc_name, 0);
 
5802
                        NDR_CHECK(ndr_pull_array_size(ndr, &r->trusted_dc_name));
 
5803
                        NDR_CHECK(ndr_pull_array_length(ndr, &r->trusted_dc_name));
 
5804
                        if (ndr_get_array_length(ndr, &r->trusted_dc_name) > ndr_get_array_size(ndr, &r->trusted_dc_name)) {
 
5805
                                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));
 
5806
                        }
 
5807
                        NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->trusted_dc_name), sizeof(uint16_t)));
 
5808
                        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));
 
5809
                        NDR_PULL_SET_MEM_CTX(ndr, _mem_save_trusted_dc_name_0, 0);
 
5810
                }
 
5811
        }
 
5812
        return NDR_ERR_SUCCESS;
 
5813
}
 
5814
 
 
5815
_PUBLIC_ void ndr_print_netr_NETLOGON_INFO_2(struct ndr_print *ndr, const char *name, const struct netr_NETLOGON_INFO_2 *r)
 
5816
{
 
5817
        ndr_print_struct(ndr, name, "netr_NETLOGON_INFO_2");
 
5818
        ndr->depth++;
 
5819
        ndr_print_netr_InfoFlags(ndr, "flags", r->flags);
 
5820
        ndr_print_WERROR(ndr, "pdc_connection_status", r->pdc_connection_status);
 
5821
        ndr_print_ptr(ndr, "trusted_dc_name", r->trusted_dc_name);
 
5822
        ndr->depth++;
 
5823
        if (r->trusted_dc_name) {
 
5824
                ndr_print_string(ndr, "trusted_dc_name", r->trusted_dc_name);
 
5825
        }
 
5826
        ndr->depth--;
 
5827
        ndr_print_WERROR(ndr, "tc_connection_status", r->tc_connection_status);
 
5828
        ndr->depth--;
 
5829
}
 
5830
 
 
5831
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)
 
5832
{
 
5833
        if (ndr_flags & NDR_SCALARS) {
 
5834
                NDR_CHECK(ndr_push_align(ndr, 4));
 
5835
                NDR_CHECK(ndr_push_netr_InfoFlags(ndr, NDR_SCALARS, r->flags));
 
5836
                NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->logon_attempts));
 
5837
                NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->unknown1));
 
5838
                NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->unknown2));
 
5839
                NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->unknown3));
 
5840
                NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->unknown4));
 
5841
                NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->unknown5));
 
5842
                NDR_CHECK(ndr_push_trailer_align(ndr, 4));
 
5843
        }
 
5844
        if (ndr_flags & NDR_BUFFERS) {
 
5845
        }
 
5846
        return NDR_ERR_SUCCESS;
 
5847
}
 
5848
 
 
5849
static enum ndr_err_code ndr_pull_netr_NETLOGON_INFO_3(struct ndr_pull *ndr, int ndr_flags, struct netr_NETLOGON_INFO_3 *r)
 
5850
{
 
5851
        if (ndr_flags & NDR_SCALARS) {
 
5852
                NDR_CHECK(ndr_pull_align(ndr, 4));
 
5853
                NDR_CHECK(ndr_pull_netr_InfoFlags(ndr, NDR_SCALARS, &r->flags));
 
5854
                NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->logon_attempts));
 
5855
                NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->unknown1));
 
5856
                NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->unknown2));
 
5857
                NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->unknown3));
 
5858
                NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->unknown4));
 
5859
                NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->unknown5));
 
5860
                NDR_CHECK(ndr_pull_trailer_align(ndr, 4));
 
5861
        }
 
5862
        if (ndr_flags & NDR_BUFFERS) {
 
5863
        }
 
5864
        return NDR_ERR_SUCCESS;
 
5865
}
 
5866
 
 
5867
_PUBLIC_ void ndr_print_netr_NETLOGON_INFO_3(struct ndr_print *ndr, const char *name, const struct netr_NETLOGON_INFO_3 *r)
 
5868
{
 
5869
        ndr_print_struct(ndr, name, "netr_NETLOGON_INFO_3");
 
5870
        ndr->depth++;
 
5871
        ndr_print_netr_InfoFlags(ndr, "flags", r->flags);
 
5872
        ndr_print_uint32(ndr, "logon_attempts", r->logon_attempts);
 
5873
        ndr_print_uint32(ndr, "unknown1", r->unknown1);
 
5874
        ndr_print_uint32(ndr, "unknown2", r->unknown2);
 
5875
        ndr_print_uint32(ndr, "unknown3", r->unknown3);
 
5876
        ndr_print_uint32(ndr, "unknown4", r->unknown4);
 
5877
        ndr_print_uint32(ndr, "unknown5", r->unknown5);
 
5878
        ndr->depth--;
 
5879
}
 
5880
 
 
5881
static enum ndr_err_code ndr_push_netr_NETLOGON_INFO_4(struct ndr_push *ndr, int ndr_flags, const struct netr_NETLOGON_INFO_4 *r)
 
5882
{
 
5883
        if (ndr_flags & NDR_SCALARS) {
 
5884
                NDR_CHECK(ndr_push_align(ndr, 5));
 
5885
                NDR_CHECK(ndr_push_unique_ptr(ndr, r->trusted_dc_name));
 
5886
                NDR_CHECK(ndr_push_unique_ptr(ndr, r->trusted_domain_name));
 
5887
                NDR_CHECK(ndr_push_trailer_align(ndr, 5));
 
5888
        }
 
5889
        if (ndr_flags & NDR_BUFFERS) {
 
5890
                if (r->trusted_dc_name) {
 
5891
                        NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->trusted_dc_name, CH_UTF16)));
 
5892
                        NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, 0));
 
5893
                        NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->trusted_dc_name, CH_UTF16)));
 
5894
                        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));
 
5895
                }
 
5896
                if (r->trusted_domain_name) {
 
5897
                        NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->trusted_domain_name, CH_UTF16)));
 
5898
                        NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, 0));
 
5899
                        NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->trusted_domain_name, CH_UTF16)));
 
5900
                        NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->trusted_domain_name, ndr_charset_length(r->trusted_domain_name, CH_UTF16), sizeof(uint16_t), CH_UTF16));
 
5901
                }
 
5902
        }
 
5903
        return NDR_ERR_SUCCESS;
 
5904
}
 
5905
 
 
5906
static enum ndr_err_code ndr_pull_netr_NETLOGON_INFO_4(struct ndr_pull *ndr, int ndr_flags, struct netr_NETLOGON_INFO_4 *r)
 
5907
{
 
5908
        uint32_t _ptr_trusted_dc_name;
 
5909
        TALLOC_CTX *_mem_save_trusted_dc_name_0;
 
5910
        uint32_t _ptr_trusted_domain_name;
 
5911
        TALLOC_CTX *_mem_save_trusted_domain_name_0;
 
5912
        if (ndr_flags & NDR_SCALARS) {
 
5913
                NDR_CHECK(ndr_pull_align(ndr, 5));
 
5914
                NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_trusted_dc_name));
 
5915
                if (_ptr_trusted_dc_name) {
 
5916
                        NDR_PULL_ALLOC(ndr, r->trusted_dc_name);
 
5917
                } else {
 
5918
                        r->trusted_dc_name = NULL;
 
5919
                }
 
5920
                NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_trusted_domain_name));
 
5921
                if (_ptr_trusted_domain_name) {
 
5922
                        NDR_PULL_ALLOC(ndr, r->trusted_domain_name);
 
5923
                } else {
 
5924
                        r->trusted_domain_name = NULL;
 
5925
                }
 
5926
                NDR_CHECK(ndr_pull_trailer_align(ndr, 5));
 
5927
        }
 
5928
        if (ndr_flags & NDR_BUFFERS) {
 
5929
                if (r->trusted_dc_name) {
 
5930
                        _mem_save_trusted_dc_name_0 = NDR_PULL_GET_MEM_CTX(ndr);
 
5931
                        NDR_PULL_SET_MEM_CTX(ndr, r->trusted_dc_name, 0);
 
5932
                        NDR_CHECK(ndr_pull_array_size(ndr, &r->trusted_dc_name));
 
5933
                        NDR_CHECK(ndr_pull_array_length(ndr, &r->trusted_dc_name));
 
5934
                        if (ndr_get_array_length(ndr, &r->trusted_dc_name) > ndr_get_array_size(ndr, &r->trusted_dc_name)) {
 
5935
                                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));
 
5936
                        }
 
5937
                        NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->trusted_dc_name), sizeof(uint16_t)));
 
5938
                        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));
 
5939
                        NDR_PULL_SET_MEM_CTX(ndr, _mem_save_trusted_dc_name_0, 0);
 
5940
                }
 
5941
                if (r->trusted_domain_name) {
 
5942
                        _mem_save_trusted_domain_name_0 = NDR_PULL_GET_MEM_CTX(ndr);
 
5943
                        NDR_PULL_SET_MEM_CTX(ndr, r->trusted_domain_name, 0);
 
5944
                        NDR_CHECK(ndr_pull_array_size(ndr, &r->trusted_domain_name));
 
5945
                        NDR_CHECK(ndr_pull_array_length(ndr, &r->trusted_domain_name));
 
5946
                        if (ndr_get_array_length(ndr, &r->trusted_domain_name) > ndr_get_array_size(ndr, &r->trusted_domain_name)) {
 
5947
                                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_domain_name), ndr_get_array_length(ndr, &r->trusted_domain_name));
 
5948
                        }
 
5949
                        NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->trusted_domain_name), sizeof(uint16_t)));
 
5950
                        NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->trusted_domain_name, ndr_get_array_length(ndr, &r->trusted_domain_name), sizeof(uint16_t), CH_UTF16));
 
5951
                        NDR_PULL_SET_MEM_CTX(ndr, _mem_save_trusted_domain_name_0, 0);
 
5952
                }
 
5953
        }
 
5954
        return NDR_ERR_SUCCESS;
 
5955
}
 
5956
 
 
5957
_PUBLIC_ void ndr_print_netr_NETLOGON_INFO_4(struct ndr_print *ndr, const char *name, const struct netr_NETLOGON_INFO_4 *r)
 
5958
{
 
5959
        ndr_print_struct(ndr, name, "netr_NETLOGON_INFO_4");
 
5960
        ndr->depth++;
 
5961
        ndr_print_ptr(ndr, "trusted_dc_name", r->trusted_dc_name);
 
5962
        ndr->depth++;
 
5963
        if (r->trusted_dc_name) {
 
5964
                ndr_print_string(ndr, "trusted_dc_name", r->trusted_dc_name);
 
5965
        }
 
5966
        ndr->depth--;
 
5967
        ndr_print_ptr(ndr, "trusted_domain_name", r->trusted_domain_name);
 
5968
        ndr->depth++;
 
5969
        if (r->trusted_domain_name) {
 
5970
                ndr_print_string(ndr, "trusted_domain_name", r->trusted_domain_name);
 
5971
        }
 
5972
        ndr->depth--;
 
5973
        ndr->depth--;
 
5974
}
 
5975
 
 
5976
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)
 
5977
{
 
5978
        if (ndr_flags & NDR_SCALARS) {
 
5979
                int level = ndr_push_get_switch_value(ndr, r);
 
5980
                NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, level));
 
5981
                NDR_CHECK(ndr_push_union_align(ndr, 5));
 
5982
                switch (level) {
 
5983
                        case 1: {
 
5984
                                NDR_CHECK(ndr_push_unique_ptr(ndr, r->info1));
 
5985
                        break; }
 
5986
 
 
5987
                        case 2: {
 
5988
                                NDR_CHECK(ndr_push_unique_ptr(ndr, r->info2));
 
5989
                        break; }
 
5990
 
 
5991
                        case 3: {
 
5992
                                NDR_CHECK(ndr_push_unique_ptr(ndr, r->info3));
 
5993
                        break; }
 
5994
 
 
5995
                        case 4: {
 
5996
                                NDR_CHECK(ndr_push_unique_ptr(ndr, r->info4));
 
5997
                        break; }
 
5998
 
 
5999
                        default: {
 
6000
                        break; }
 
6001
 
 
6002
                }
 
6003
        }
 
6004
        if (ndr_flags & NDR_BUFFERS) {
 
6005
                int level = ndr_push_get_switch_value(ndr, r);
 
6006
                switch (level) {
 
6007
                        case 1:
 
6008
                                if (r->info1) {
 
6009
                                        NDR_CHECK(ndr_push_netr_NETLOGON_INFO_1(ndr, NDR_SCALARS, r->info1));
 
6010
                                }
 
6011
                        break;
 
6012
 
 
6013
                        case 2:
 
6014
                                if (r->info2) {
 
6015
                                        NDR_CHECK(ndr_push_netr_NETLOGON_INFO_2(ndr, NDR_SCALARS|NDR_BUFFERS, r->info2));
 
6016
                                }
 
6017
                        break;
 
6018
 
 
6019
                        case 3:
 
6020
                                if (r->info3) {
 
6021
                                        NDR_CHECK(ndr_push_netr_NETLOGON_INFO_3(ndr, NDR_SCALARS, r->info3));
 
6022
                                }
 
6023
                        break;
 
6024
 
 
6025
                        case 4:
 
6026
                                if (r->info4) {
 
6027
                                        NDR_CHECK(ndr_push_netr_NETLOGON_INFO_4(ndr, NDR_SCALARS|NDR_BUFFERS, r->info4));
 
6028
                                }
 
6029
                        break;
 
6030
 
 
6031
                        default:
 
6032
                        break;
 
6033
 
 
6034
                }
 
6035
        }
 
6036
        return NDR_ERR_SUCCESS;
 
6037
}
 
6038
 
 
6039
static enum ndr_err_code ndr_pull_netr_CONTROL_QUERY_INFORMATION(struct ndr_pull *ndr, int ndr_flags, union netr_CONTROL_QUERY_INFORMATION *r)
 
6040
{
 
6041
        int level;
 
6042
        uint32_t _level;
 
6043
        TALLOC_CTX *_mem_save_info1_0;
 
6044
        TALLOC_CTX *_mem_save_info2_0;
 
6045
        TALLOC_CTX *_mem_save_info3_0;
 
6046
        TALLOC_CTX *_mem_save_info4_0;
 
6047
        level = ndr_pull_get_switch_value(ndr, r);
 
6048
        if (ndr_flags & NDR_SCALARS) {
 
6049
                NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &_level));
 
6050
                if (_level != level) {
 
6051
                        return ndr_pull_error(ndr, NDR_ERR_BAD_SWITCH, "Bad switch value %u for r at %s", _level, __location__);
 
6052
                }
 
6053
                NDR_CHECK(ndr_pull_union_align(ndr, 5));
 
6054
                switch (level) {
 
6055
                        case 1: {
 
6056
                                uint32_t _ptr_info1;
 
6057
                                NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_info1));
 
6058
                                if (_ptr_info1) {
 
6059
                                        NDR_PULL_ALLOC(ndr, r->info1);
 
6060
                                } else {
 
6061
                                        r->info1 = NULL;
 
6062
                                }
 
6063
                        break; }
 
6064
 
 
6065
                        case 2: {
 
6066
                                uint32_t _ptr_info2;
 
6067
                                NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_info2));
 
6068
                                if (_ptr_info2) {
 
6069
                                        NDR_PULL_ALLOC(ndr, r->info2);
 
6070
                                } else {
 
6071
                                        r->info2 = NULL;
 
6072
                                }
 
6073
                        break; }
 
6074
 
 
6075
                        case 3: {
 
6076
                                uint32_t _ptr_info3;
 
6077
                                NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_info3));
 
6078
                                if (_ptr_info3) {
 
6079
                                        NDR_PULL_ALLOC(ndr, r->info3);
 
6080
                                } else {
 
6081
                                        r->info3 = NULL;
 
6082
                                }
 
6083
                        break; }
 
6084
 
 
6085
                        case 4: {
 
6086
                                uint32_t _ptr_info4;
 
6087
                                NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_info4));
 
6088
                                if (_ptr_info4) {
 
6089
                                        NDR_PULL_ALLOC(ndr, r->info4);
 
6090
                                } else {
 
6091
                                        r->info4 = NULL;
 
6092
                                }
 
6093
                        break; }
 
6094
 
 
6095
                        default: {
 
6096
                        break; }
 
6097
 
 
6098
                }
 
6099
        }
 
6100
        if (ndr_flags & NDR_BUFFERS) {
 
6101
                switch (level) {
 
6102
                        case 1:
 
6103
                                if (r->info1) {
 
6104
                                        _mem_save_info1_0 = NDR_PULL_GET_MEM_CTX(ndr);
 
6105
                                        NDR_PULL_SET_MEM_CTX(ndr, r->info1, 0);
 
6106
                                        NDR_CHECK(ndr_pull_netr_NETLOGON_INFO_1(ndr, NDR_SCALARS, r->info1));
 
6107
                                        NDR_PULL_SET_MEM_CTX(ndr, _mem_save_info1_0, 0);
 
6108
                                }
 
6109
                        break;
 
6110
 
 
6111
                        case 2:
 
6112
                                if (r->info2) {
 
6113
                                        _mem_save_info2_0 = NDR_PULL_GET_MEM_CTX(ndr);
 
6114
                                        NDR_PULL_SET_MEM_CTX(ndr, r->info2, 0);
 
6115
                                        NDR_CHECK(ndr_pull_netr_NETLOGON_INFO_2(ndr, NDR_SCALARS|NDR_BUFFERS, r->info2));
 
6116
                                        NDR_PULL_SET_MEM_CTX(ndr, _mem_save_info2_0, 0);
 
6117
                                }
 
6118
                        break;
 
6119
 
 
6120
                        case 3:
 
6121
                                if (r->info3) {
 
6122
                                        _mem_save_info3_0 = NDR_PULL_GET_MEM_CTX(ndr);
 
6123
                                        NDR_PULL_SET_MEM_CTX(ndr, r->info3, 0);
 
6124
                                        NDR_CHECK(ndr_pull_netr_NETLOGON_INFO_3(ndr, NDR_SCALARS, r->info3));
 
6125
                                        NDR_PULL_SET_MEM_CTX(ndr, _mem_save_info3_0, 0);
 
6126
                                }
 
6127
                        break;
 
6128
 
 
6129
                        case 4:
 
6130
                                if (r->info4) {
 
6131
                                        _mem_save_info4_0 = NDR_PULL_GET_MEM_CTX(ndr);
 
6132
                                        NDR_PULL_SET_MEM_CTX(ndr, r->info4, 0);
 
6133
                                        NDR_CHECK(ndr_pull_netr_NETLOGON_INFO_4(ndr, NDR_SCALARS|NDR_BUFFERS, r->info4));
 
6134
                                        NDR_PULL_SET_MEM_CTX(ndr, _mem_save_info4_0, 0);
 
6135
                                }
 
6136
                        break;
 
6137
 
 
6138
                        default:
 
6139
                        break;
 
6140
 
 
6141
                }
 
6142
        }
 
6143
        return NDR_ERR_SUCCESS;
 
6144
}
 
6145
 
 
6146
_PUBLIC_ void ndr_print_netr_CONTROL_QUERY_INFORMATION(struct ndr_print *ndr, const char *name, const union netr_CONTROL_QUERY_INFORMATION *r)
 
6147
{
 
6148
        int level;
 
6149
        level = ndr_print_get_switch_value(ndr, r);
 
6150
        ndr_print_union(ndr, name, level, "netr_CONTROL_QUERY_INFORMATION");
 
6151
        switch (level) {
 
6152
                case 1:
 
6153
                        ndr_print_ptr(ndr, "info1", r->info1);
 
6154
                        ndr->depth++;
 
6155
                        if (r->info1) {
 
6156
                                ndr_print_netr_NETLOGON_INFO_1(ndr, "info1", r->info1);
 
6157
                        }
 
6158
                        ndr->depth--;
 
6159
                break;
 
6160
 
 
6161
                case 2:
 
6162
                        ndr_print_ptr(ndr, "info2", r->info2);
 
6163
                        ndr->depth++;
 
6164
                        if (r->info2) {
 
6165
                                ndr_print_netr_NETLOGON_INFO_2(ndr, "info2", r->info2);
 
6166
                        }
 
6167
                        ndr->depth--;
 
6168
                break;
 
6169
 
 
6170
                case 3:
 
6171
                        ndr_print_ptr(ndr, "info3", r->info3);
 
6172
                        ndr->depth++;
 
6173
                        if (r->info3) {
 
6174
                                ndr_print_netr_NETLOGON_INFO_3(ndr, "info3", r->info3);
 
6175
                        }
 
6176
                        ndr->depth--;
 
6177
                break;
 
6178
 
 
6179
                case 4:
 
6180
                        ndr_print_ptr(ndr, "info4", r->info4);
 
6181
                        ndr->depth++;
 
6182
                        if (r->info4) {
 
6183
                                ndr_print_netr_NETLOGON_INFO_4(ndr, "info4", r->info4);
 
6184
                        }
 
6185
                        ndr->depth--;
 
6186
                break;
 
6187
 
 
6188
                default:
 
6189
                break;
 
6190
 
 
6191
        }
 
6192
}
 
6193
 
 
6194
static enum ndr_err_code ndr_push_netr_LogonControlCode(struct ndr_push *ndr, int ndr_flags, enum netr_LogonControlCode r)
 
6195
{
 
6196
        NDR_CHECK(ndr_push_enum_uint32(ndr, NDR_SCALARS, r));
 
6197
        return NDR_ERR_SUCCESS;
 
6198
}
 
6199
 
 
6200
static enum ndr_err_code ndr_pull_netr_LogonControlCode(struct ndr_pull *ndr, int ndr_flags, enum netr_LogonControlCode *r)
 
6201
{
 
6202
        uint32_t v;
 
6203
        NDR_CHECK(ndr_pull_enum_uint32(ndr, NDR_SCALARS, &v));
 
6204
        *r = v;
 
6205
        return NDR_ERR_SUCCESS;
 
6206
}
 
6207
 
 
6208
_PUBLIC_ void ndr_print_netr_LogonControlCode(struct ndr_print *ndr, const char *name, enum netr_LogonControlCode r)
 
6209
{
 
6210
        const char *val = NULL;
 
6211
 
 
6212
        switch (r) {
 
6213
                case NETLOGON_CONTROL_QUERY: val = "NETLOGON_CONTROL_QUERY"; break;
 
6214
                case NETLOGON_CONTROL_REPLICATE: val = "NETLOGON_CONTROL_REPLICATE"; break;
 
6215
                case NETLOGON_CONTROL_SYNCHRONIZE: val = "NETLOGON_CONTROL_SYNCHRONIZE"; break;
 
6216
                case NETLOGON_CONTROL_PDC_REPLICATE: val = "NETLOGON_CONTROL_PDC_REPLICATE"; break;
 
6217
                case NETLOGON_CONTROL_REDISCOVER: val = "NETLOGON_CONTROL_REDISCOVER"; break;
 
6218
                case NETLOGON_CONTROL_TC_QUERY: val = "NETLOGON_CONTROL_TC_QUERY"; break;
 
6219
                case NETLOGON_CONTROL_TRANSPORT_NOTIFY: val = "NETLOGON_CONTROL_TRANSPORT_NOTIFY"; break;
 
6220
                case NETLOGON_CONTROL_FIND_USER: val = "NETLOGON_CONTROL_FIND_USER"; break;
 
6221
                case NETLOGON_CONTROL_CHANGE_PASSWORD: val = "NETLOGON_CONTROL_CHANGE_PASSWORD"; break;
 
6222
                case NETLOGON_CONTROL_TC_VERIFY: val = "NETLOGON_CONTROL_TC_VERIFY"; break;
 
6223
                case NETLOGON_CONTROL_FORCE_DNS_REG: val = "NETLOGON_CONTROL_FORCE_DNS_REG"; break;
 
6224
                case NETLOGON_CONTROL_QUERY_DNS_REG: val = "NETLOGON_CONTROL_QUERY_DNS_REG"; break;
 
6225
                case NETLOGON_CONTROL_BACKUP_CHANGE_LOG: val = "NETLOGON_CONTROL_BACKUP_CHANGE_LOG"; break;
 
6226
                case NETLOGON_CONTROL_TRUNCATE_LOG: val = "NETLOGON_CONTROL_TRUNCATE_LOG"; break;
 
6227
                case NETLOGON_CONTROL_SET_DBFLAG: val = "NETLOGON_CONTROL_SET_DBFLAG"; break;
 
6228
                case NETLOGON_CONTROL_BREAKPOINT: val = "NETLOGON_CONTROL_BREAKPOINT"; break;
 
6229
        }
 
6230
        ndr_print_enum(ndr, name, "ENUM", val, r);
 
6231
}
 
6232
 
 
6233
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)
 
6234
{
 
6235
        if (ndr_flags & NDR_SCALARS) {
 
6236
                int level = ndr_push_get_switch_value(ndr, r);
 
6237
                NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, level));
 
6238
                NDR_CHECK(ndr_push_union_align(ndr, 5));
 
6239
                switch (level) {
 
6240
                        case NETLOGON_CONTROL_REDISCOVER: {
 
6241
                                NDR_CHECK(ndr_push_unique_ptr(ndr, r->domain));
 
6242
                        break; }
 
6243
 
 
6244
                        case NETLOGON_CONTROL_TC_QUERY: {
 
6245
                                NDR_CHECK(ndr_push_unique_ptr(ndr, r->domain));
 
6246
                        break; }
 
6247
 
 
6248
                        case NETLOGON_CONTROL_TRANSPORT_NOTIFY: {
 
6249
                                NDR_CHECK(ndr_push_unique_ptr(ndr, r->domain));
 
6250
                        break; }
 
6251
 
 
6252
                        case NETLOGON_CONTROL_CHANGE_PASSWORD: {
 
6253
                                NDR_CHECK(ndr_push_unique_ptr(ndr, r->domain));
 
6254
                        break; }
 
6255
 
 
6256
                        case NETLOGON_CONTROL_TC_VERIFY: {
 
6257
                                NDR_CHECK(ndr_push_unique_ptr(ndr, r->domain));
 
6258
                        break; }
 
6259
 
 
6260
                        case NETLOGON_CONTROL_FIND_USER: {
 
6261
                                NDR_CHECK(ndr_push_unique_ptr(ndr, r->user));
 
6262
                        break; }
 
6263
 
 
6264
                        case NETLOGON_CONTROL_SET_DBFLAG: {
 
6265
                                NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->debug_level));
 
6266
                        break; }
 
6267
 
 
6268
                        default: {
 
6269
                        break; }
 
6270
 
 
6271
                }
 
6272
        }
 
6273
        if (ndr_flags & NDR_BUFFERS) {
 
6274
                int level = ndr_push_get_switch_value(ndr, r);
 
6275
                switch (level) {
 
6276
                        case NETLOGON_CONTROL_REDISCOVER:
 
6277
                                if (r->domain) {
 
6278
                                        NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->domain, CH_UTF16)));
 
6279
                                        NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, 0));
 
6280
                                        NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->domain, CH_UTF16)));
 
6281
                                        NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->domain, ndr_charset_length(r->domain, CH_UTF16), sizeof(uint16_t), CH_UTF16));
 
6282
                                }
 
6283
                        break;
 
6284
 
 
6285
                        case NETLOGON_CONTROL_TC_QUERY:
 
6286
                                if (r->domain) {
 
6287
                                        NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->domain, CH_UTF16)));
 
6288
                                        NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, 0));
 
6289
                                        NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->domain, CH_UTF16)));
 
6290
                                        NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->domain, ndr_charset_length(r->domain, CH_UTF16), sizeof(uint16_t), CH_UTF16));
 
6291
                                }
 
6292
                        break;
 
6293
 
 
6294
                        case NETLOGON_CONTROL_TRANSPORT_NOTIFY:
 
6295
                                if (r->domain) {
 
6296
                                        NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->domain, CH_UTF16)));
 
6297
                                        NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, 0));
 
6298
                                        NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->domain, CH_UTF16)));
 
6299
                                        NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->domain, ndr_charset_length(r->domain, CH_UTF16), sizeof(uint16_t), CH_UTF16));
 
6300
                                }
 
6301
                        break;
 
6302
 
 
6303
                        case NETLOGON_CONTROL_CHANGE_PASSWORD:
 
6304
                                if (r->domain) {
 
6305
                                        NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->domain, CH_UTF16)));
 
6306
                                        NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, 0));
 
6307
                                        NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->domain, CH_UTF16)));
 
6308
                                        NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->domain, ndr_charset_length(r->domain, CH_UTF16), sizeof(uint16_t), CH_UTF16));
 
6309
                                }
 
6310
                        break;
 
6311
 
 
6312
                        case NETLOGON_CONTROL_TC_VERIFY:
 
6313
                                if (r->domain) {
 
6314
                                        NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->domain, CH_UTF16)));
 
6315
                                        NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, 0));
 
6316
                                        NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->domain, CH_UTF16)));
 
6317
                                        NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->domain, ndr_charset_length(r->domain, CH_UTF16), sizeof(uint16_t), CH_UTF16));
 
6318
                                }
 
6319
                        break;
 
6320
 
 
6321
                        case NETLOGON_CONTROL_FIND_USER:
 
6322
                                if (r->user) {
 
6323
                                        NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->user, CH_UTF16)));
 
6324
                                        NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, 0));
 
6325
                                        NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->user, CH_UTF16)));
 
6326
                                        NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->user, ndr_charset_length(r->user, CH_UTF16), sizeof(uint16_t), CH_UTF16));
 
6327
                                }
 
6328
                        break;
 
6329
 
 
6330
                        case NETLOGON_CONTROL_SET_DBFLAG:
 
6331
                        break;
 
6332
 
 
6333
                        default:
 
6334
                        break;
 
6335
 
 
6336
                }
 
6337
        }
 
6338
        return NDR_ERR_SUCCESS;
 
6339
}
 
6340
 
 
6341
static enum ndr_err_code ndr_pull_netr_CONTROL_DATA_INFORMATION(struct ndr_pull *ndr, int ndr_flags, union netr_CONTROL_DATA_INFORMATION *r)
 
6342
{
 
6343
        int level;
 
6344
        uint32_t _level;
 
6345
        TALLOC_CTX *_mem_save_domain_0;
 
6346
        TALLOC_CTX *_mem_save_user_0;
 
6347
        level = ndr_pull_get_switch_value(ndr, r);
 
6348
        if (ndr_flags & NDR_SCALARS) {
 
6349
                NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &_level));
 
6350
                if (_level != level) {
 
6351
                        return ndr_pull_error(ndr, NDR_ERR_BAD_SWITCH, "Bad switch value %u for r at %s", _level, __location__);
 
6352
                }
 
6353
                NDR_CHECK(ndr_pull_union_align(ndr, 5));
 
6354
                switch (level) {
 
6355
                        case NETLOGON_CONTROL_REDISCOVER: {
 
6356
                                uint32_t _ptr_domain;
 
6357
                                NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_domain));
 
6358
                                if (_ptr_domain) {
 
6359
                                        NDR_PULL_ALLOC(ndr, r->domain);
 
6360
                                } else {
 
6361
                                        r->domain = NULL;
 
6362
                                }
 
6363
                        break; }
 
6364
 
 
6365
                        case NETLOGON_CONTROL_TC_QUERY: {
 
6366
                                uint32_t _ptr_domain;
 
6367
                                NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_domain));
 
6368
                                if (_ptr_domain) {
 
6369
                                        NDR_PULL_ALLOC(ndr, r->domain);
 
6370
                                } else {
 
6371
                                        r->domain = NULL;
 
6372
                                }
 
6373
                        break; }
 
6374
 
 
6375
                        case NETLOGON_CONTROL_TRANSPORT_NOTIFY: {
 
6376
                                uint32_t _ptr_domain;
 
6377
                                NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_domain));
 
6378
                                if (_ptr_domain) {
 
6379
                                        NDR_PULL_ALLOC(ndr, r->domain);
 
6380
                                } else {
 
6381
                                        r->domain = NULL;
 
6382
                                }
 
6383
                        break; }
 
6384
 
 
6385
                        case NETLOGON_CONTROL_CHANGE_PASSWORD: {
 
6386
                                uint32_t _ptr_domain;
 
6387
                                NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_domain));
 
6388
                                if (_ptr_domain) {
 
6389
                                        NDR_PULL_ALLOC(ndr, r->domain);
 
6390
                                } else {
 
6391
                                        r->domain = NULL;
 
6392
                                }
 
6393
                        break; }
 
6394
 
 
6395
                        case NETLOGON_CONTROL_TC_VERIFY: {
 
6396
                                uint32_t _ptr_domain;
 
6397
                                NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_domain));
 
6398
                                if (_ptr_domain) {
 
6399
                                        NDR_PULL_ALLOC(ndr, r->domain);
 
6400
                                } else {
 
6401
                                        r->domain = NULL;
 
6402
                                }
 
6403
                        break; }
 
6404
 
 
6405
                        case NETLOGON_CONTROL_FIND_USER: {
 
6406
                                uint32_t _ptr_user;
 
6407
                                NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_user));
 
6408
                                if (_ptr_user) {
 
6409
                                        NDR_PULL_ALLOC(ndr, r->user);
 
6410
                                } else {
 
6411
                                        r->user = NULL;
 
6412
                                }
 
6413
                        break; }
 
6414
 
 
6415
                        case NETLOGON_CONTROL_SET_DBFLAG: {
 
6416
                                NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->debug_level));
 
6417
                        break; }
 
6418
 
 
6419
                        default: {
 
6420
                        break; }
 
6421
 
 
6422
                }
 
6423
        }
 
6424
        if (ndr_flags & NDR_BUFFERS) {
 
6425
                switch (level) {
 
6426
                        case NETLOGON_CONTROL_REDISCOVER:
 
6427
                                if (r->domain) {
 
6428
                                        _mem_save_domain_0 = NDR_PULL_GET_MEM_CTX(ndr);
 
6429
                                        NDR_PULL_SET_MEM_CTX(ndr, r->domain, 0);
 
6430
                                        NDR_CHECK(ndr_pull_array_size(ndr, &r->domain));
 
6431
                                        NDR_CHECK(ndr_pull_array_length(ndr, &r->domain));
 
6432
                                        if (ndr_get_array_length(ndr, &r->domain) > ndr_get_array_size(ndr, &r->domain)) {
 
6433
                                                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));
 
6434
                                        }
 
6435
                                        NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->domain), sizeof(uint16_t)));
 
6436
                                        NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->domain, ndr_get_array_length(ndr, &r->domain), sizeof(uint16_t), CH_UTF16));
 
6437
                                        NDR_PULL_SET_MEM_CTX(ndr, _mem_save_domain_0, 0);
 
6438
                                }
 
6439
                        break;
 
6440
 
 
6441
                        case NETLOGON_CONTROL_TC_QUERY:
 
6442
                                if (r->domain) {
 
6443
                                        _mem_save_domain_0 = NDR_PULL_GET_MEM_CTX(ndr);
 
6444
                                        NDR_PULL_SET_MEM_CTX(ndr, r->domain, 0);
 
6445
                                        NDR_CHECK(ndr_pull_array_size(ndr, &r->domain));
 
6446
                                        NDR_CHECK(ndr_pull_array_length(ndr, &r->domain));
 
6447
                                        if (ndr_get_array_length(ndr, &r->domain) > ndr_get_array_size(ndr, &r->domain)) {
 
6448
                                                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));
 
6449
                                        }
 
6450
                                        NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->domain), sizeof(uint16_t)));
 
6451
                                        NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->domain, ndr_get_array_length(ndr, &r->domain), sizeof(uint16_t), CH_UTF16));
 
6452
                                        NDR_PULL_SET_MEM_CTX(ndr, _mem_save_domain_0, 0);
 
6453
                                }
 
6454
                        break;
 
6455
 
 
6456
                        case NETLOGON_CONTROL_TRANSPORT_NOTIFY:
 
6457
                                if (r->domain) {
 
6458
                                        _mem_save_domain_0 = NDR_PULL_GET_MEM_CTX(ndr);
 
6459
                                        NDR_PULL_SET_MEM_CTX(ndr, r->domain, 0);
 
6460
                                        NDR_CHECK(ndr_pull_array_size(ndr, &r->domain));
 
6461
                                        NDR_CHECK(ndr_pull_array_length(ndr, &r->domain));
 
6462
                                        if (ndr_get_array_length(ndr, &r->domain) > ndr_get_array_size(ndr, &r->domain)) {
 
6463
                                                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));
 
6464
                                        }
 
6465
                                        NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->domain), sizeof(uint16_t)));
 
6466
                                        NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->domain, ndr_get_array_length(ndr, &r->domain), sizeof(uint16_t), CH_UTF16));
 
6467
                                        NDR_PULL_SET_MEM_CTX(ndr, _mem_save_domain_0, 0);
 
6468
                                }
 
6469
                        break;
 
6470
 
 
6471
                        case NETLOGON_CONTROL_CHANGE_PASSWORD:
 
6472
                                if (r->domain) {
 
6473
                                        _mem_save_domain_0 = NDR_PULL_GET_MEM_CTX(ndr);
 
6474
                                        NDR_PULL_SET_MEM_CTX(ndr, r->domain, 0);
 
6475
                                        NDR_CHECK(ndr_pull_array_size(ndr, &r->domain));
 
6476
                                        NDR_CHECK(ndr_pull_array_length(ndr, &r->domain));
 
6477
                                        if (ndr_get_array_length(ndr, &r->domain) > ndr_get_array_size(ndr, &r->domain)) {
 
6478
                                                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));
 
6479
                                        }
 
6480
                                        NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->domain), sizeof(uint16_t)));
 
6481
                                        NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->domain, ndr_get_array_length(ndr, &r->domain), sizeof(uint16_t), CH_UTF16));
 
6482
                                        NDR_PULL_SET_MEM_CTX(ndr, _mem_save_domain_0, 0);
 
6483
                                }
 
6484
                        break;
 
6485
 
 
6486
                        case NETLOGON_CONTROL_TC_VERIFY:
 
6487
                                if (r->domain) {
 
6488
                                        _mem_save_domain_0 = NDR_PULL_GET_MEM_CTX(ndr);
 
6489
                                        NDR_PULL_SET_MEM_CTX(ndr, r->domain, 0);
 
6490
                                        NDR_CHECK(ndr_pull_array_size(ndr, &r->domain));
 
6491
                                        NDR_CHECK(ndr_pull_array_length(ndr, &r->domain));
 
6492
                                        if (ndr_get_array_length(ndr, &r->domain) > ndr_get_array_size(ndr, &r->domain)) {
 
6493
                                                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));
 
6494
                                        }
 
6495
                                        NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->domain), sizeof(uint16_t)));
 
6496
                                        NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->domain, ndr_get_array_length(ndr, &r->domain), sizeof(uint16_t), CH_UTF16));
 
6497
                                        NDR_PULL_SET_MEM_CTX(ndr, _mem_save_domain_0, 0);
 
6498
                                }
 
6499
                        break;
 
6500
 
 
6501
                        case NETLOGON_CONTROL_FIND_USER:
 
6502
                                if (r->user) {
 
6503
                                        _mem_save_user_0 = NDR_PULL_GET_MEM_CTX(ndr);
 
6504
                                        NDR_PULL_SET_MEM_CTX(ndr, r->user, 0);
 
6505
                                        NDR_CHECK(ndr_pull_array_size(ndr, &r->user));
 
6506
                                        NDR_CHECK(ndr_pull_array_length(ndr, &r->user));
 
6507
                                        if (ndr_get_array_length(ndr, &r->user) > ndr_get_array_size(ndr, &r->user)) {
 
6508
                                                return ndr_pull_error(ndr, NDR_ERR_ARRAY_SIZE, "Bad array size %u should exceed array length %u", ndr_get_array_size(ndr, &r->user), ndr_get_array_length(ndr, &r->user));
 
6509
                                        }
 
6510
                                        NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->user), sizeof(uint16_t)));
 
6511
                                        NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->user, ndr_get_array_length(ndr, &r->user), sizeof(uint16_t), CH_UTF16));
 
6512
                                        NDR_PULL_SET_MEM_CTX(ndr, _mem_save_user_0, 0);
 
6513
                                }
 
6514
                        break;
 
6515
 
 
6516
                        case NETLOGON_CONTROL_SET_DBFLAG:
 
6517
                        break;
 
6518
 
 
6519
                        default:
 
6520
                        break;
 
6521
 
 
6522
                }
 
6523
        }
 
6524
        return NDR_ERR_SUCCESS;
 
6525
}
 
6526
 
 
6527
_PUBLIC_ void ndr_print_netr_CONTROL_DATA_INFORMATION(struct ndr_print *ndr, const char *name, const union netr_CONTROL_DATA_INFORMATION *r)
 
6528
{
 
6529
        int level;
 
6530
        level = ndr_print_get_switch_value(ndr, r);
 
6531
        ndr_print_union(ndr, name, level, "netr_CONTROL_DATA_INFORMATION");
 
6532
        switch (level) {
 
6533
                case NETLOGON_CONTROL_REDISCOVER:
 
6534
                        ndr_print_ptr(ndr, "domain", r->domain);
 
6535
                        ndr->depth++;
 
6536
                        if (r->domain) {
 
6537
                                ndr_print_string(ndr, "domain", r->domain);
 
6538
                        }
 
6539
                        ndr->depth--;
 
6540
                break;
 
6541
 
 
6542
                case NETLOGON_CONTROL_TC_QUERY:
 
6543
                        ndr_print_ptr(ndr, "domain", r->domain);
 
6544
                        ndr->depth++;
 
6545
                        if (r->domain) {
 
6546
                                ndr_print_string(ndr, "domain", r->domain);
 
6547
                        }
 
6548
                        ndr->depth--;
 
6549
                break;
 
6550
 
 
6551
                case NETLOGON_CONTROL_TRANSPORT_NOTIFY:
 
6552
                        ndr_print_ptr(ndr, "domain", r->domain);
 
6553
                        ndr->depth++;
 
6554
                        if (r->domain) {
 
6555
                                ndr_print_string(ndr, "domain", r->domain);
 
6556
                        }
 
6557
                        ndr->depth--;
 
6558
                break;
 
6559
 
 
6560
                case NETLOGON_CONTROL_CHANGE_PASSWORD:
 
6561
                        ndr_print_ptr(ndr, "domain", r->domain);
 
6562
                        ndr->depth++;
 
6563
                        if (r->domain) {
 
6564
                                ndr_print_string(ndr, "domain", r->domain);
 
6565
                        }
 
6566
                        ndr->depth--;
 
6567
                break;
 
6568
 
 
6569
                case NETLOGON_CONTROL_TC_VERIFY:
 
6570
                        ndr_print_ptr(ndr, "domain", r->domain);
 
6571
                        ndr->depth++;
 
6572
                        if (r->domain) {
 
6573
                                ndr_print_string(ndr, "domain", r->domain);
 
6574
                        }
 
6575
                        ndr->depth--;
 
6576
                break;
 
6577
 
 
6578
                case NETLOGON_CONTROL_FIND_USER:
 
6579
                        ndr_print_ptr(ndr, "user", r->user);
 
6580
                        ndr->depth++;
 
6581
                        if (r->user) {
 
6582
                                ndr_print_string(ndr, "user", r->user);
 
6583
                        }
 
6584
                        ndr->depth--;
 
6585
                break;
 
6586
 
 
6587
                case NETLOGON_CONTROL_SET_DBFLAG:
 
6588
                        ndr_print_uint32(ndr, "debug_level", r->debug_level);
 
6589
                break;
 
6590
 
 
6591
                default:
 
6592
                break;
 
6593
 
 
6594
        }
 
6595
}
 
6596
 
 
6597
_PUBLIC_ enum ndr_err_code ndr_push_netr_NegotiateFlags(struct ndr_push *ndr, int ndr_flags, uint32_t r)
 
6598
{
 
6599
        NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r));
 
6600
        return NDR_ERR_SUCCESS;
 
6601
}
 
6602
 
 
6603
_PUBLIC_ enum ndr_err_code ndr_pull_netr_NegotiateFlags(struct ndr_pull *ndr, int ndr_flags, uint32_t *r)
 
6604
{
 
6605
        uint32_t v;
 
6606
        NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &v));
 
6607
        *r = v;
 
6608
        return NDR_ERR_SUCCESS;
 
6609
}
 
6610
 
 
6611
_PUBLIC_ void ndr_print_netr_NegotiateFlags(struct ndr_print *ndr, const char *name, uint32_t r)
 
6612
{
 
6613
        ndr_print_uint32(ndr, name, r);
 
6614
        ndr->depth++;
 
6615
        ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "NETLOGON_NEG_ACCOUNT_LOCKOUT", NETLOGON_NEG_ACCOUNT_LOCKOUT, r);
 
6616
        ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "NETLOGON_NEG_PERSISTENT_SAMREPL", NETLOGON_NEG_PERSISTENT_SAMREPL, r);
 
6617
        ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "NETLOGON_NEG_ARCFOUR", NETLOGON_NEG_ARCFOUR, r);
 
6618
        ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "NETLOGON_NEG_PROMOTION_COUNT", NETLOGON_NEG_PROMOTION_COUNT, r);
 
6619
        ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "NETLOGON_NEG_CHANGELOG_BDC", NETLOGON_NEG_CHANGELOG_BDC, r);
 
6620
        ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "NETLOGON_NEG_FULL_SYNC_REPL", NETLOGON_NEG_FULL_SYNC_REPL, r);
 
6621
        ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "NETLOGON_NEG_MULTIPLE_SIDS", NETLOGON_NEG_MULTIPLE_SIDS, r);
 
6622
        ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "NETLOGON_NEG_REDO", NETLOGON_NEG_REDO, r);
 
6623
        ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "NETLOGON_NEG_PASSWORD_CHANGE_REFUSAL", NETLOGON_NEG_PASSWORD_CHANGE_REFUSAL, r);
 
6624
        ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "NETLOGON_NEG_SEND_PASSWORD_INFO_PDC", NETLOGON_NEG_SEND_PASSWORD_INFO_PDC, r);
 
6625
        ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "NETLOGON_NEG_GENERIC_PASSTHROUGH", NETLOGON_NEG_GENERIC_PASSTHROUGH, r);
 
6626
        ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "NETLOGON_NEG_CONCURRENT_RPC", NETLOGON_NEG_CONCURRENT_RPC, r);
 
6627
        ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "NETLOGON_NEG_AVOID_ACCOUNT_DB_REPL", NETLOGON_NEG_AVOID_ACCOUNT_DB_REPL, r);
 
6628
        ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "NETLOGON_NEG_AVOID_SECURITYAUTH_DB_REPL", NETLOGON_NEG_AVOID_SECURITYAUTH_DB_REPL, r);
 
6629
        ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "NETLOGON_NEG_STRONG_KEYS", NETLOGON_NEG_STRONG_KEYS, r);
 
6630
        ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "NETLOGON_NEG_TRANSITIVE_TRUSTS", NETLOGON_NEG_TRANSITIVE_TRUSTS, r);
 
6631
        ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "NETLOGON_NEG_DNS_DOMAIN_TRUSTS", NETLOGON_NEG_DNS_DOMAIN_TRUSTS, r);
 
6632
        ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "NETLOGON_NEG_PASSWORD_SET2", NETLOGON_NEG_PASSWORD_SET2, r);
 
6633
        ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "NETLOGON_NEG_GETDOMAININFO", NETLOGON_NEG_GETDOMAININFO, r);
 
6634
        ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "NETLOGON_NEG_CROSS_FOREST_TRUSTS", NETLOGON_NEG_CROSS_FOREST_TRUSTS, r);
 
6635
        ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "NETLOGON_NEG_NEUTRALIZE_NT4_EMULATION", NETLOGON_NEG_NEUTRALIZE_NT4_EMULATION, r);
 
6636
        ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "NETLOGON_NEG_RODC_PASSTHROUGH", NETLOGON_NEG_RODC_PASSTHROUGH, r);
 
6637
        ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "NETLOGON_NEG_SUPPORTS_AES_SHA2", NETLOGON_NEG_SUPPORTS_AES_SHA2, r);
 
6638
        ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "NETLOGON_NEG_SUPPORTS_AES", NETLOGON_NEG_SUPPORTS_AES, r);
 
6639
        ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "NETLOGON_NEG_AUTHENTICATED_RPC_LSASS", NETLOGON_NEG_AUTHENTICATED_RPC_LSASS, r);
 
6640
        ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "NETLOGON_NEG_AUTHENTICATED_RPC", NETLOGON_NEG_AUTHENTICATED_RPC, r);
 
6641
        ndr->depth--;
 
6642
}
 
6643
 
 
6644
static enum ndr_err_code ndr_push_SyncStateEnum(struct ndr_push *ndr, int ndr_flags, enum SyncStateEnum r)
 
6645
{
 
6646
        NDR_CHECK(ndr_push_enum_uint1632(ndr, NDR_SCALARS, r));
 
6647
        return NDR_ERR_SUCCESS;
 
6648
}
 
6649
 
 
6650
static enum ndr_err_code ndr_pull_SyncStateEnum(struct ndr_pull *ndr, int ndr_flags, enum SyncStateEnum *r)
 
6651
{
 
6652
        uint16_t v;
 
6653
        NDR_CHECK(ndr_pull_enum_uint1632(ndr, NDR_SCALARS, &v));
 
6654
        *r = v;
 
6655
        return NDR_ERR_SUCCESS;
 
6656
}
 
6657
 
 
6658
_PUBLIC_ void ndr_print_SyncStateEnum(struct ndr_print *ndr, const char *name, enum SyncStateEnum r)
 
6659
{
 
6660
        const char *val = NULL;
 
6661
 
 
6662
        switch (r) {
 
6663
                case SYNCSTATE_NORMAL_STATE: val = "SYNCSTATE_NORMAL_STATE"; break;
 
6664
                case SYNCSTATE_DOMAIN_STATE: val = "SYNCSTATE_DOMAIN_STATE"; break;
 
6665
                case SYNCSTATE_GROUP_STATE: val = "SYNCSTATE_GROUP_STATE"; break;
 
6666
                case SYNCSTATE_UAS_BUILT_IN_GROUP_STATE: val = "SYNCSTATE_UAS_BUILT_IN_GROUP_STATE"; break;
 
6667
                case SYNCSTATE_USER_STATE: val = "SYNCSTATE_USER_STATE"; break;
 
6668
                case SYNCSTATE_GROUP_MEMBER_STATE: val = "SYNCSTATE_GROUP_MEMBER_STATE"; break;
 
6669
                case SYNCSTATE_ALIAS_STATE: val = "SYNCSTATE_ALIAS_STATE"; break;
 
6670
                case SYNCSTATE_ALIAS_MEMBER_STATE: val = "SYNCSTATE_ALIAS_MEMBER_STATE"; break;
 
6671
                case SYNCSTATE_SAM_DONE_STATE: val = "SYNCSTATE_SAM_DONE_STATE"; break;
 
6672
        }
 
6673
        ndr_print_enum(ndr, name, "ENUM", val, r);
 
6674
}
 
6675
 
 
6676
static enum ndr_err_code ndr_push_netr_ChangeLogFlags(struct ndr_push *ndr, int ndr_flags, uint16_t r)
 
6677
{
 
6678
        NDR_CHECK(ndr_push_uint16(ndr, NDR_SCALARS, r));
 
6679
        return NDR_ERR_SUCCESS;
 
6680
}
 
6681
 
 
6682
static enum ndr_err_code ndr_pull_netr_ChangeLogFlags(struct ndr_pull *ndr, int ndr_flags, uint16_t *r)
 
6683
{
 
6684
        uint16_t v;
 
6685
        NDR_CHECK(ndr_pull_uint16(ndr, NDR_SCALARS, &v));
 
6686
        *r = v;
 
6687
        return NDR_ERR_SUCCESS;
 
6688
}
 
6689
 
 
6690
_PUBLIC_ void ndr_print_netr_ChangeLogFlags(struct ndr_print *ndr, const char *name, uint16_t r)
 
6691
{
 
6692
        ndr_print_uint16(ndr, name, r);
 
6693
        ndr->depth++;
 
6694
        ndr_print_bitmap_flag(ndr, sizeof(uint16_t), "NETR_CHANGELOG_IMMEDIATE_REPL_REQUIRED", NETR_CHANGELOG_IMMEDIATE_REPL_REQUIRED, r);
 
6695
        ndr_print_bitmap_flag(ndr, sizeof(uint16_t), "NETR_CHANGELOG_CHANGED_PASSWORD", NETR_CHANGELOG_CHANGED_PASSWORD, r);
 
6696
        ndr_print_bitmap_flag(ndr, sizeof(uint16_t), "NETR_CHANGELOG_SID_INCLUDED", NETR_CHANGELOG_SID_INCLUDED, r);
 
6697
        ndr_print_bitmap_flag(ndr, sizeof(uint16_t), "NETR_CHANGELOG_NAME_INCLUDED", NETR_CHANGELOG_NAME_INCLUDED, r);
 
6698
        ndr_print_bitmap_flag(ndr, sizeof(uint16_t), "NETR_CHANGELOG_FIRST_PROMOTION_OBJ", NETR_CHANGELOG_FIRST_PROMOTION_OBJ, r);
 
6699
        ndr->depth--;
 
6700
}
 
6701
 
 
6702
static enum ndr_err_code ndr_push_netr_ChangeLogObject(struct ndr_push *ndr, int ndr_flags, const union netr_ChangeLogObject *r)
 
6703
{
 
6704
        if (ndr_flags & NDR_SCALARS) {
 
6705
                int level = ndr_push_get_switch_value(ndr, r);
 
6706
                NDR_CHECK(ndr_push_union_align(ndr, 4));
 
6707
                switch (level) {
 
6708
                        case NETR_CHANGELOG_SID_INCLUDED: {
 
6709
                                NDR_CHECK(ndr_push_dom_sid(ndr, NDR_SCALARS, &r->object_sid));
 
6710
                        break; }
 
6711
 
 
6712
                        case NETR_CHANGELOG_NAME_INCLUDED: {
 
6713
                                {
 
6714
                                        uint32_t _flags_save_string = ndr->flags;
 
6715
                                        ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM|LIBNDR_FLAG_ALIGN2);
 
6716
                                        NDR_CHECK(ndr_push_string(ndr, NDR_SCALARS, r->object_name));
 
6717
                                        ndr->flags = _flags_save_string;
 
6718
                                }
 
6719
                        break; }
 
6720
 
 
6721
                        default: {
 
6722
                        break; }
 
6723
 
 
6724
                }
 
6725
        }
 
6726
        if (ndr_flags & NDR_BUFFERS) {
 
6727
                int level = ndr_push_get_switch_value(ndr, r);
 
6728
                switch (level) {
 
6729
                        case NETR_CHANGELOG_SID_INCLUDED:
 
6730
                        break;
 
6731
 
 
6732
                        case NETR_CHANGELOG_NAME_INCLUDED:
 
6733
                        break;
 
6734
 
 
6735
                        default:
 
6736
                        break;
 
6737
 
 
6738
                }
 
6739
        }
 
6740
        return NDR_ERR_SUCCESS;
 
6741
}
 
6742
 
 
6743
static enum ndr_err_code ndr_pull_netr_ChangeLogObject(struct ndr_pull *ndr, int ndr_flags, union netr_ChangeLogObject *r)
 
6744
{
 
6745
        int level;
 
6746
        level = ndr_pull_get_switch_value(ndr, r);
 
6747
        if (ndr_flags & NDR_SCALARS) {
 
6748
                NDR_CHECK(ndr_pull_union_align(ndr, 4));
 
6749
                switch (level) {
 
6750
                        case NETR_CHANGELOG_SID_INCLUDED: {
 
6751
                                NDR_CHECK(ndr_pull_dom_sid(ndr, NDR_SCALARS, &r->object_sid));
 
6752
                        break; }
 
6753
 
 
6754
                        case NETR_CHANGELOG_NAME_INCLUDED: {
 
6755
                                {
 
6756
                                        uint32_t _flags_save_string = ndr->flags;
 
6757
                                        ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM|LIBNDR_FLAG_ALIGN2);
 
6758
                                        NDR_CHECK(ndr_pull_string(ndr, NDR_SCALARS, &r->object_name));
 
6759
                                        ndr->flags = _flags_save_string;
 
6760
                                }
 
6761
                        break; }
 
6762
 
 
6763
                        default: {
 
6764
                        break; }
 
6765
 
 
6766
                }
 
6767
        }
 
6768
        if (ndr_flags & NDR_BUFFERS) {
 
6769
                switch (level) {
 
6770
                        case NETR_CHANGELOG_SID_INCLUDED:
 
6771
                        break;
 
6772
 
 
6773
                        case NETR_CHANGELOG_NAME_INCLUDED:
 
6774
                        break;
 
6775
 
 
6776
                        default:
 
6777
                        break;
 
6778
 
 
6779
                }
 
6780
        }
 
6781
        return NDR_ERR_SUCCESS;
 
6782
}
 
6783
 
 
6784
_PUBLIC_ void ndr_print_netr_ChangeLogObject(struct ndr_print *ndr, const char *name, const union netr_ChangeLogObject *r)
 
6785
{
 
6786
        int level;
 
6787
        level = ndr_print_get_switch_value(ndr, r);
 
6788
        ndr_print_union(ndr, name, level, "netr_ChangeLogObject");
 
6789
        switch (level) {
 
6790
                case NETR_CHANGELOG_SID_INCLUDED:
 
6791
                        ndr_print_dom_sid(ndr, "object_sid", &r->object_sid);
 
6792
                break;
 
6793
 
 
6794
                case NETR_CHANGELOG_NAME_INCLUDED:
 
6795
                        ndr_print_string(ndr, "object_name", r->object_name);
 
6796
                break;
 
6797
 
 
6798
                default:
 
6799
                break;
 
6800
 
 
6801
        }
 
6802
}
 
6803
 
 
6804
_PUBLIC_ enum ndr_err_code ndr_push_netr_ChangeLogEntry(struct ndr_push *ndr, int ndr_flags, const struct netr_ChangeLogEntry *r)
 
6805
{
 
6806
        if (ndr_flags & NDR_SCALARS) {
 
6807
                NDR_CHECK(ndr_push_align(ndr, 4));
 
6808
                NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->serial_number1));
 
6809
                NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->serial_number2));
 
6810
                NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->object_rid));
 
6811
                NDR_CHECK(ndr_push_netr_ChangeLogFlags(ndr, NDR_SCALARS, r->flags));
 
6812
                NDR_CHECK(ndr_push_netr_SamDatabaseID8Bit(ndr, NDR_SCALARS, r->db_index));
 
6813
                NDR_CHECK(ndr_push_netr_DeltaEnum8Bit(ndr, NDR_SCALARS, r->delta_type));
 
6814
                NDR_CHECK(ndr_push_set_switch_value(ndr, &r->object, r->flags & (NETR_CHANGELOG_SID_INCLUDED | NETR_CHANGELOG_NAME_INCLUDED)));
 
6815
                NDR_CHECK(ndr_push_netr_ChangeLogObject(ndr, NDR_SCALARS, &r->object));
 
6816
                NDR_CHECK(ndr_push_trailer_align(ndr, 4));
 
6817
        }
 
6818
        if (ndr_flags & NDR_BUFFERS) {
 
6819
                NDR_CHECK(ndr_push_netr_ChangeLogObject(ndr, NDR_BUFFERS, &r->object));
 
6820
        }
 
6821
        return NDR_ERR_SUCCESS;
 
6822
}
 
6823
 
 
6824
_PUBLIC_ enum ndr_err_code ndr_pull_netr_ChangeLogEntry(struct ndr_pull *ndr, int ndr_flags, struct netr_ChangeLogEntry *r)
 
6825
{
 
6826
        if (ndr_flags & NDR_SCALARS) {
 
6827
                NDR_CHECK(ndr_pull_align(ndr, 4));
 
6828
                NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->serial_number1));
 
6829
                NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->serial_number2));
 
6830
                NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->object_rid));
 
6831
                NDR_CHECK(ndr_pull_netr_ChangeLogFlags(ndr, NDR_SCALARS, &r->flags));
 
6832
                NDR_CHECK(ndr_pull_netr_SamDatabaseID8Bit(ndr, NDR_SCALARS, &r->db_index));
 
6833
                NDR_CHECK(ndr_pull_netr_DeltaEnum8Bit(ndr, NDR_SCALARS, &r->delta_type));
 
6834
                NDR_CHECK(ndr_pull_set_switch_value(ndr, &r->object, r->flags & (NETR_CHANGELOG_SID_INCLUDED | NETR_CHANGELOG_NAME_INCLUDED)));
 
6835
                NDR_CHECK(ndr_pull_netr_ChangeLogObject(ndr, NDR_SCALARS, &r->object));
 
6836
                NDR_CHECK(ndr_pull_trailer_align(ndr, 4));
 
6837
        }
 
6838
        if (ndr_flags & NDR_BUFFERS) {
 
6839
                NDR_CHECK(ndr_pull_netr_ChangeLogObject(ndr, NDR_BUFFERS, &r->object));
 
6840
        }
 
6841
        return NDR_ERR_SUCCESS;
 
6842
}
 
6843
 
 
6844
_PUBLIC_ void ndr_print_netr_ChangeLogEntry(struct ndr_print *ndr, const char *name, const struct netr_ChangeLogEntry *r)
 
6845
{
 
6846
        ndr_print_struct(ndr, name, "netr_ChangeLogEntry");
 
6847
        ndr->depth++;
 
6848
        ndr_print_uint32(ndr, "serial_number1", r->serial_number1);
 
6849
        ndr_print_uint32(ndr, "serial_number2", r->serial_number2);
 
6850
        ndr_print_uint32(ndr, "object_rid", r->object_rid);
 
6851
        ndr_print_netr_ChangeLogFlags(ndr, "flags", r->flags);
 
6852
        ndr_print_netr_SamDatabaseID8Bit(ndr, "db_index", r->db_index);
 
6853
        ndr_print_netr_DeltaEnum8Bit(ndr, "delta_type", r->delta_type);
 
6854
        ndr_print_set_switch_value(ndr, &r->object, r->flags & (NETR_CHANGELOG_SID_INCLUDED | NETR_CHANGELOG_NAME_INCLUDED));
 
6855
        ndr_print_netr_ChangeLogObject(ndr, "object", &r->object);
 
6856
        ndr->depth--;
 
6857
}
 
6858
 
 
6859
_PUBLIC_ size_t ndr_size_netr_ChangeLogEntry(const struct netr_ChangeLogEntry *r, struct smb_iconv_convenience *ic, int flags)
 
6860
{
 
6861
        return ndr_size_struct(r, flags, (ndr_push_flags_fn_t)ndr_push_netr_ChangeLogEntry, ic);
 
6862
}
 
6863
 
 
6864
static enum ndr_err_code ndr_push_netr_Blob(struct ndr_push *ndr, int ndr_flags, const struct netr_Blob *r)
 
6865
{
 
6866
        if (ndr_flags & NDR_SCALARS) {
 
6867
                NDR_CHECK(ndr_push_align(ndr, 5));
 
6868
                NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->length));
 
6869
                NDR_CHECK(ndr_push_unique_ptr(ndr, r->data));
 
6870
                NDR_CHECK(ndr_push_trailer_align(ndr, 5));
 
6871
        }
 
6872
        if (ndr_flags & NDR_BUFFERS) {
 
6873
                if (r->data) {
 
6874
                        NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, r->length));
 
6875
                        NDR_CHECK(ndr_push_array_uint8(ndr, NDR_SCALARS, r->data, r->length));
 
6876
                }
 
6877
        }
 
6878
        return NDR_ERR_SUCCESS;
 
6879
}
 
6880
 
 
6881
static enum ndr_err_code ndr_pull_netr_Blob(struct ndr_pull *ndr, int ndr_flags, struct netr_Blob *r)
 
6882
{
 
6883
        uint32_t _ptr_data;
 
6884
        TALLOC_CTX *_mem_save_data_0;
 
6885
        if (ndr_flags & NDR_SCALARS) {
 
6886
                NDR_CHECK(ndr_pull_align(ndr, 5));
 
6887
                NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->length));
 
6888
                NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_data));
 
6889
                if (_ptr_data) {
 
6890
                        NDR_PULL_ALLOC(ndr, r->data);
 
6891
                } else {
 
6892
                        r->data = NULL;
 
6893
                }
 
6894
                NDR_CHECK(ndr_pull_trailer_align(ndr, 5));
 
6895
        }
 
6896
        if (ndr_flags & NDR_BUFFERS) {
 
6897
                if (r->data) {
 
6898
                        _mem_save_data_0 = NDR_PULL_GET_MEM_CTX(ndr);
 
6899
                        NDR_PULL_SET_MEM_CTX(ndr, r->data, 0);
 
6900
                        NDR_CHECK(ndr_pull_array_size(ndr, &r->data));
 
6901
                        NDR_PULL_ALLOC_N(ndr, r->data, ndr_get_array_size(ndr, &r->data));
 
6902
                        NDR_CHECK(ndr_pull_array_uint8(ndr, NDR_SCALARS, r->data, ndr_get_array_size(ndr, &r->data)));
 
6903
                        NDR_PULL_SET_MEM_CTX(ndr, _mem_save_data_0, 0);
 
6904
                }
 
6905
                if (r->data) {
 
6906
                        NDR_CHECK(ndr_check_array_size(ndr, (void*)&r->data, r->length));
 
6907
                }
 
6908
        }
 
6909
        return NDR_ERR_SUCCESS;
 
6910
}
 
6911
 
 
6912
_PUBLIC_ void ndr_print_netr_Blob(struct ndr_print *ndr, const char *name, const struct netr_Blob *r)
 
6913
{
 
6914
        ndr_print_struct(ndr, name, "netr_Blob");
 
6915
        ndr->depth++;
 
6916
        ndr_print_uint32(ndr, "length", r->length);
 
6917
        ndr_print_ptr(ndr, "data", r->data);
 
6918
        ndr->depth++;
 
6919
        if (r->data) {
 
6920
                ndr_print_array_uint8(ndr, "data", r->data, r->length);
 
6921
        }
 
6922
        ndr->depth--;
 
6923
        ndr->depth--;
 
6924
}
 
6925
 
 
6926
static enum ndr_err_code ndr_push_netr_DsRGetDCName_flags(struct ndr_push *ndr, int ndr_flags, uint32_t r)
 
6927
{
 
6928
        NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r));
 
6929
        return NDR_ERR_SUCCESS;
 
6930
}
 
6931
 
 
6932
static enum ndr_err_code ndr_pull_netr_DsRGetDCName_flags(struct ndr_pull *ndr, int ndr_flags, uint32_t *r)
 
6933
{
 
6934
        uint32_t v;
 
6935
        NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &v));
 
6936
        *r = v;
 
6937
        return NDR_ERR_SUCCESS;
 
6938
}
 
6939
 
 
6940
_PUBLIC_ void ndr_print_netr_DsRGetDCName_flags(struct ndr_print *ndr, const char *name, uint32_t r)
 
6941
{
 
6942
        ndr_print_uint32(ndr, name, r);
 
6943
        ndr->depth++;
 
6944
        ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "DS_FORCE_REDISCOVERY", DS_FORCE_REDISCOVERY, r);
 
6945
        ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "DS_DIRECTORY_SERVICE_REQUIRED", DS_DIRECTORY_SERVICE_REQUIRED, r);
 
6946
        ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "DS_DIRECTORY_SERVICE_PREFERRED", DS_DIRECTORY_SERVICE_PREFERRED, r);
 
6947
        ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "DS_GC_SERVER_REQUIRED", DS_GC_SERVER_REQUIRED, r);
 
6948
        ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "DS_PDC_REQUIRED", DS_PDC_REQUIRED, r);
 
6949
        ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "DS_BACKGROUND_ONLY", DS_BACKGROUND_ONLY, r);
 
6950
        ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "DS_IP_REQUIRED", DS_IP_REQUIRED, r);
 
6951
        ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "DS_KDC_REQUIRED", DS_KDC_REQUIRED, r);
 
6952
        ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "DS_TIMESERV_REQUIRED", DS_TIMESERV_REQUIRED, r);
 
6953
        ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "DS_WRITABLE_REQUIRED", DS_WRITABLE_REQUIRED, r);
 
6954
        ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "DS_GOOD_TIMESERV_PREFERRED", DS_GOOD_TIMESERV_PREFERRED, r);
 
6955
        ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "DS_AVOID_SELF", DS_AVOID_SELF, r);
 
6956
        ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "DS_ONLY_LDAP_NEEDED", DS_ONLY_LDAP_NEEDED, r);
 
6957
        ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "DS_IS_FLAT_NAME", DS_IS_FLAT_NAME, r);
 
6958
        ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "DS_IS_DNS_NAME", DS_IS_DNS_NAME, r);
 
6959
        ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "DS_TRY_NEXTCLOSEST_SITE", DS_TRY_NEXTCLOSEST_SITE, r);
 
6960
        ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "DS_DIRECTORY_SERVICE_6_REQUIRED", DS_DIRECTORY_SERVICE_6_REQUIRED, r);
 
6961
        ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "DS_WEB_SERVICE_REQUIRED", DS_WEB_SERVICE_REQUIRED, r);
 
6962
        ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "DS_RETURN_DNS_NAME", DS_RETURN_DNS_NAME, r);
 
6963
        ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "DS_RETURN_FLAT_NAME", DS_RETURN_FLAT_NAME, r);
 
6964
        ndr->depth--;
 
6965
}
 
6966
 
 
6967
static enum ndr_err_code ndr_push_netr_DsRGetDCNameInfo_AddressType(struct ndr_push *ndr, int ndr_flags, enum netr_DsRGetDCNameInfo_AddressType r)
 
6968
{
 
6969
        NDR_CHECK(ndr_push_enum_uint32(ndr, NDR_SCALARS, r));
 
6970
        return NDR_ERR_SUCCESS;
 
6971
}
 
6972
 
 
6973
static enum ndr_err_code ndr_pull_netr_DsRGetDCNameInfo_AddressType(struct ndr_pull *ndr, int ndr_flags, enum netr_DsRGetDCNameInfo_AddressType *r)
 
6974
{
 
6975
        uint32_t v;
 
6976
        NDR_CHECK(ndr_pull_enum_uint32(ndr, NDR_SCALARS, &v));
 
6977
        *r = v;
 
6978
        return NDR_ERR_SUCCESS;
 
6979
}
 
6980
 
 
6981
_PUBLIC_ void ndr_print_netr_DsRGetDCNameInfo_AddressType(struct ndr_print *ndr, const char *name, enum netr_DsRGetDCNameInfo_AddressType r)
 
6982
{
 
6983
        const char *val = NULL;
 
6984
 
 
6985
        switch (r) {
 
6986
                case DS_ADDRESS_TYPE_INET: val = "DS_ADDRESS_TYPE_INET"; break;
 
6987
                case DS_ADDRESS_TYPE_NETBIOS: val = "DS_ADDRESS_TYPE_NETBIOS"; break;
 
6988
        }
 
6989
        ndr_print_enum(ndr, name, "ENUM", val, r);
 
6990
}
 
6991
 
 
6992
static enum ndr_err_code ndr_push_netr_DsR_DcFlags(struct ndr_push *ndr, int ndr_flags, uint32_t r)
 
6993
{
 
6994
        NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r));
 
6995
        return NDR_ERR_SUCCESS;
 
6996
}
 
6997
 
 
6998
static enum ndr_err_code ndr_pull_netr_DsR_DcFlags(struct ndr_pull *ndr, int ndr_flags, uint32_t *r)
 
6999
{
 
7000
        uint32_t v;
 
7001
        NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &v));
 
7002
        *r = v;
 
7003
        return NDR_ERR_SUCCESS;
 
7004
}
 
7005
 
 
7006
_PUBLIC_ void ndr_print_netr_DsR_DcFlags(struct ndr_print *ndr, const char *name, uint32_t r)
 
7007
{
 
7008
        ndr_print_uint32(ndr, name, r);
 
7009
        ndr->depth++;
 
7010
        ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "DS_SERVER_PDC", DS_SERVER_PDC, r);
 
7011
        ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "DS_SERVER_GC", DS_SERVER_GC, r);
 
7012
        ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "DS_SERVER_LDAP", DS_SERVER_LDAP, r);
 
7013
        ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "DS_SERVER_DS", DS_SERVER_DS, r);
 
7014
        ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "DS_SERVER_KDC", DS_SERVER_KDC, r);
 
7015
        ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "DS_SERVER_TIMESERV", DS_SERVER_TIMESERV, r);
 
7016
        ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "DS_SERVER_CLOSEST", DS_SERVER_CLOSEST, r);
 
7017
        ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "DS_SERVER_WRITABLE", DS_SERVER_WRITABLE, r);
 
7018
        ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "DS_SERVER_GOOD_TIMESERV", DS_SERVER_GOOD_TIMESERV, r);
 
7019
        ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "DS_SERVER_NDNC", DS_SERVER_NDNC, r);
 
7020
        ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "DS_SERVER_SELECT_SECRET_DOMAIN_6", DS_SERVER_SELECT_SECRET_DOMAIN_6, r);
 
7021
        ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "DS_SERVER_FULL_SECRET_DOMAIN_6", DS_SERVER_FULL_SECRET_DOMAIN_6, r);
 
7022
        ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "DS_DNS_CONTROLLER", DS_DNS_CONTROLLER, r);
 
7023
        ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "DS_DNS_DOMAIN", DS_DNS_DOMAIN, r);
 
7024
        ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "DS_DNS_FOREST", DS_DNS_FOREST, r);
 
7025
        ndr->depth--;
 
7026
}
 
7027
 
 
7028
_PUBLIC_ enum ndr_err_code ndr_push_netr_DsRGetDCNameInfo(struct ndr_push *ndr, int ndr_flags, const struct netr_DsRGetDCNameInfo *r)
 
7029
{
 
7030
        if (ndr_flags & NDR_SCALARS) {
 
7031
                NDR_CHECK(ndr_push_align(ndr, 5));
 
7032
                NDR_CHECK(ndr_push_unique_ptr(ndr, r->dc_unc));
 
7033
                NDR_CHECK(ndr_push_unique_ptr(ndr, r->dc_address));
 
7034
                NDR_CHECK(ndr_push_netr_DsRGetDCNameInfo_AddressType(ndr, NDR_SCALARS, r->dc_address_type));
 
7035
                NDR_CHECK(ndr_push_GUID(ndr, NDR_SCALARS, &r->domain_guid));
 
7036
                NDR_CHECK(ndr_push_unique_ptr(ndr, r->domain_name));
 
7037
                NDR_CHECK(ndr_push_unique_ptr(ndr, r->forest_name));
 
7038
                NDR_CHECK(ndr_push_netr_DsR_DcFlags(ndr, NDR_SCALARS, r->dc_flags));
 
7039
                NDR_CHECK(ndr_push_unique_ptr(ndr, r->dc_site_name));
 
7040
                NDR_CHECK(ndr_push_unique_ptr(ndr, r->client_site_name));
 
7041
                NDR_CHECK(ndr_push_trailer_align(ndr, 5));
 
7042
        }
 
7043
        if (ndr_flags & NDR_BUFFERS) {
 
7044
                if (r->dc_unc) {
 
7045
                        NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->dc_unc, CH_UTF16)));
 
7046
                        NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, 0));
 
7047
                        NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->dc_unc, CH_UTF16)));
 
7048
                        NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->dc_unc, ndr_charset_length(r->dc_unc, CH_UTF16), sizeof(uint16_t), CH_UTF16));
 
7049
                }
 
7050
                if (r->dc_address) {
 
7051
                        NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->dc_address, CH_UTF16)));
 
7052
                        NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, 0));
 
7053
                        NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->dc_address, CH_UTF16)));
 
7054
                        NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->dc_address, ndr_charset_length(r->dc_address, CH_UTF16), sizeof(uint16_t), CH_UTF16));
 
7055
                }
 
7056
                if (r->domain_name) {
 
7057
                        NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->domain_name, CH_UTF16)));
 
7058
                        NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, 0));
 
7059
                        NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->domain_name, CH_UTF16)));
 
7060
                        NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->domain_name, ndr_charset_length(r->domain_name, CH_UTF16), sizeof(uint16_t), CH_UTF16));
 
7061
                }
 
7062
                if (r->forest_name) {
 
7063
                        NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->forest_name, CH_UTF16)));
 
7064
                        NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, 0));
 
7065
                        NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->forest_name, CH_UTF16)));
 
7066
                        NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->forest_name, ndr_charset_length(r->forest_name, CH_UTF16), sizeof(uint16_t), CH_UTF16));
 
7067
                }
 
7068
                if (r->dc_site_name) {
 
7069
                        NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->dc_site_name, CH_UTF16)));
 
7070
                        NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, 0));
 
7071
                        NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->dc_site_name, CH_UTF16)));
 
7072
                        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));
 
7073
                }
 
7074
                if (r->client_site_name) {
 
7075
                        NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->client_site_name, CH_UTF16)));
 
7076
                        NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, 0));
 
7077
                        NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->client_site_name, CH_UTF16)));
 
7078
                        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));
 
7079
                }
 
7080
        }
 
7081
        return NDR_ERR_SUCCESS;
 
7082
}
 
7083
 
 
7084
_PUBLIC_ enum ndr_err_code ndr_pull_netr_DsRGetDCNameInfo(struct ndr_pull *ndr, int ndr_flags, struct netr_DsRGetDCNameInfo *r)
 
7085
{
 
7086
        uint32_t _ptr_dc_unc;
 
7087
        TALLOC_CTX *_mem_save_dc_unc_0;
 
7088
        uint32_t _ptr_dc_address;
 
7089
        TALLOC_CTX *_mem_save_dc_address_0;
 
7090
        uint32_t _ptr_domain_name;
 
7091
        TALLOC_CTX *_mem_save_domain_name_0;
 
7092
        uint32_t _ptr_forest_name;
 
7093
        TALLOC_CTX *_mem_save_forest_name_0;
 
7094
        uint32_t _ptr_dc_site_name;
 
7095
        TALLOC_CTX *_mem_save_dc_site_name_0;
 
7096
        uint32_t _ptr_client_site_name;
 
7097
        TALLOC_CTX *_mem_save_client_site_name_0;
 
7098
        if (ndr_flags & NDR_SCALARS) {
 
7099
                NDR_CHECK(ndr_pull_align(ndr, 5));
 
7100
                NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_dc_unc));
 
7101
                if (_ptr_dc_unc) {
 
7102
                        NDR_PULL_ALLOC(ndr, r->dc_unc);
 
7103
                } else {
 
7104
                        r->dc_unc = NULL;
 
7105
                }
 
7106
                NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_dc_address));
 
7107
                if (_ptr_dc_address) {
 
7108
                        NDR_PULL_ALLOC(ndr, r->dc_address);
 
7109
                } else {
 
7110
                        r->dc_address = NULL;
 
7111
                }
 
7112
                NDR_CHECK(ndr_pull_netr_DsRGetDCNameInfo_AddressType(ndr, NDR_SCALARS, &r->dc_address_type));
 
7113
                NDR_CHECK(ndr_pull_GUID(ndr, NDR_SCALARS, &r->domain_guid));
 
7114
                NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_domain_name));
 
7115
                if (_ptr_domain_name) {
 
7116
                        NDR_PULL_ALLOC(ndr, r->domain_name);
 
7117
                } else {
 
7118
                        r->domain_name = NULL;
 
7119
                }
 
7120
                NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_forest_name));
 
7121
                if (_ptr_forest_name) {
 
7122
                        NDR_PULL_ALLOC(ndr, r->forest_name);
 
7123
                } else {
 
7124
                        r->forest_name = NULL;
 
7125
                }
 
7126
                NDR_CHECK(ndr_pull_netr_DsR_DcFlags(ndr, NDR_SCALARS, &r->dc_flags));
 
7127
                NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_dc_site_name));
 
7128
                if (_ptr_dc_site_name) {
 
7129
                        NDR_PULL_ALLOC(ndr, r->dc_site_name);
 
7130
                } else {
 
7131
                        r->dc_site_name = NULL;
 
7132
                }
 
7133
                NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_client_site_name));
 
7134
                if (_ptr_client_site_name) {
 
7135
                        NDR_PULL_ALLOC(ndr, r->client_site_name);
 
7136
                } else {
 
7137
                        r->client_site_name = NULL;
 
7138
                }
 
7139
                NDR_CHECK(ndr_pull_trailer_align(ndr, 5));
 
7140
        }
 
7141
        if (ndr_flags & NDR_BUFFERS) {
 
7142
                if (r->dc_unc) {
 
7143
                        _mem_save_dc_unc_0 = NDR_PULL_GET_MEM_CTX(ndr);
 
7144
                        NDR_PULL_SET_MEM_CTX(ndr, r->dc_unc, 0);
 
7145
                        NDR_CHECK(ndr_pull_array_size(ndr, &r->dc_unc));
 
7146
                        NDR_CHECK(ndr_pull_array_length(ndr, &r->dc_unc));
 
7147
                        if (ndr_get_array_length(ndr, &r->dc_unc) > ndr_get_array_size(ndr, &r->dc_unc)) {
 
7148
                                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));
 
7149
                        }
 
7150
                        NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->dc_unc), sizeof(uint16_t)));
 
7151
                        NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->dc_unc, ndr_get_array_length(ndr, &r->dc_unc), sizeof(uint16_t), CH_UTF16));
 
7152
                        NDR_PULL_SET_MEM_CTX(ndr, _mem_save_dc_unc_0, 0);
 
7153
                }
 
7154
                if (r->dc_address) {
 
7155
                        _mem_save_dc_address_0 = NDR_PULL_GET_MEM_CTX(ndr);
 
7156
                        NDR_PULL_SET_MEM_CTX(ndr, r->dc_address, 0);
 
7157
                        NDR_CHECK(ndr_pull_array_size(ndr, &r->dc_address));
 
7158
                        NDR_CHECK(ndr_pull_array_length(ndr, &r->dc_address));
 
7159
                        if (ndr_get_array_length(ndr, &r->dc_address) > ndr_get_array_size(ndr, &r->dc_address)) {
 
7160
                                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));
 
7161
                        }
 
7162
                        NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->dc_address), sizeof(uint16_t)));
 
7163
                        NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->dc_address, ndr_get_array_length(ndr, &r->dc_address), sizeof(uint16_t), CH_UTF16));
 
7164
                        NDR_PULL_SET_MEM_CTX(ndr, _mem_save_dc_address_0, 0);
 
7165
                }
 
7166
                if (r->domain_name) {
 
7167
                        _mem_save_domain_name_0 = NDR_PULL_GET_MEM_CTX(ndr);
 
7168
                        NDR_PULL_SET_MEM_CTX(ndr, r->domain_name, 0);
 
7169
                        NDR_CHECK(ndr_pull_array_size(ndr, &r->domain_name));
 
7170
                        NDR_CHECK(ndr_pull_array_length(ndr, &r->domain_name));
 
7171
                        if (ndr_get_array_length(ndr, &r->domain_name) > ndr_get_array_size(ndr, &r->domain_name)) {
 
7172
                                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));
 
7173
                        }
 
7174
                        NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->domain_name), sizeof(uint16_t)));
 
7175
                        NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->domain_name, ndr_get_array_length(ndr, &r->domain_name), sizeof(uint16_t), CH_UTF16));
 
7176
                        NDR_PULL_SET_MEM_CTX(ndr, _mem_save_domain_name_0, 0);
 
7177
                }
 
7178
                if (r->forest_name) {
 
7179
                        _mem_save_forest_name_0 = NDR_PULL_GET_MEM_CTX(ndr);
 
7180
                        NDR_PULL_SET_MEM_CTX(ndr, r->forest_name, 0);
 
7181
                        NDR_CHECK(ndr_pull_array_size(ndr, &r->forest_name));
 
7182
                        NDR_CHECK(ndr_pull_array_length(ndr, &r->forest_name));
 
7183
                        if (ndr_get_array_length(ndr, &r->forest_name) > ndr_get_array_size(ndr, &r->forest_name)) {
 
7184
                                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));
 
7185
                        }
 
7186
                        NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->forest_name), sizeof(uint16_t)));
 
7187
                        NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->forest_name, ndr_get_array_length(ndr, &r->forest_name), sizeof(uint16_t), CH_UTF16));
 
7188
                        NDR_PULL_SET_MEM_CTX(ndr, _mem_save_forest_name_0, 0);
 
7189
                }
 
7190
                if (r->dc_site_name) {
 
7191
                        _mem_save_dc_site_name_0 = NDR_PULL_GET_MEM_CTX(ndr);
 
7192
                        NDR_PULL_SET_MEM_CTX(ndr, r->dc_site_name, 0);
 
7193
                        NDR_CHECK(ndr_pull_array_size(ndr, &r->dc_site_name));
 
7194
                        NDR_CHECK(ndr_pull_array_length(ndr, &r->dc_site_name));
 
7195
                        if (ndr_get_array_length(ndr, &r->dc_site_name) > ndr_get_array_size(ndr, &r->dc_site_name)) {
 
7196
                                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));
 
7197
                        }
 
7198
                        NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->dc_site_name), sizeof(uint16_t)));
 
7199
                        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));
 
7200
                        NDR_PULL_SET_MEM_CTX(ndr, _mem_save_dc_site_name_0, 0);
 
7201
                }
 
7202
                if (r->client_site_name) {
 
7203
                        _mem_save_client_site_name_0 = NDR_PULL_GET_MEM_CTX(ndr);
 
7204
                        NDR_PULL_SET_MEM_CTX(ndr, r->client_site_name, 0);
 
7205
                        NDR_CHECK(ndr_pull_array_size(ndr, &r->client_site_name));
 
7206
                        NDR_CHECK(ndr_pull_array_length(ndr, &r->client_site_name));
 
7207
                        if (ndr_get_array_length(ndr, &r->client_site_name) > ndr_get_array_size(ndr, &r->client_site_name)) {
 
7208
                                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));
 
7209
                        }
 
7210
                        NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->client_site_name), sizeof(uint16_t)));
 
7211
                        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));
 
7212
                        NDR_PULL_SET_MEM_CTX(ndr, _mem_save_client_site_name_0, 0);
 
7213
                }
 
7214
        }
 
7215
        return NDR_ERR_SUCCESS;
 
7216
}
 
7217
 
 
7218
_PUBLIC_ void ndr_print_netr_DsRGetDCNameInfo(struct ndr_print *ndr, const char *name, const struct netr_DsRGetDCNameInfo *r)
 
7219
{
 
7220
        ndr_print_struct(ndr, name, "netr_DsRGetDCNameInfo");
 
7221
        ndr->depth++;
 
7222
        ndr_print_ptr(ndr, "dc_unc", r->dc_unc);
 
7223
        ndr->depth++;
 
7224
        if (r->dc_unc) {
 
7225
                ndr_print_string(ndr, "dc_unc", r->dc_unc);
 
7226
        }
 
7227
        ndr->depth--;
 
7228
        ndr_print_ptr(ndr, "dc_address", r->dc_address);
 
7229
        ndr->depth++;
 
7230
        if (r->dc_address) {
 
7231
                ndr_print_string(ndr, "dc_address", r->dc_address);
 
7232
        }
 
7233
        ndr->depth--;
 
7234
        ndr_print_netr_DsRGetDCNameInfo_AddressType(ndr, "dc_address_type", r->dc_address_type);
 
7235
        ndr_print_GUID(ndr, "domain_guid", &r->domain_guid);
 
7236
        ndr_print_ptr(ndr, "domain_name", r->domain_name);
 
7237
        ndr->depth++;
 
7238
        if (r->domain_name) {
 
7239
                ndr_print_string(ndr, "domain_name", r->domain_name);
 
7240
        }
 
7241
        ndr->depth--;
 
7242
        ndr_print_ptr(ndr, "forest_name", r->forest_name);
 
7243
        ndr->depth++;
 
7244
        if (r->forest_name) {
 
7245
                ndr_print_string(ndr, "forest_name", r->forest_name);
 
7246
        }
 
7247
        ndr->depth--;
 
7248
        ndr_print_netr_DsR_DcFlags(ndr, "dc_flags", r->dc_flags);
 
7249
        ndr_print_ptr(ndr, "dc_site_name", r->dc_site_name);
 
7250
        ndr->depth++;
 
7251
        if (r->dc_site_name) {
 
7252
                ndr_print_string(ndr, "dc_site_name", r->dc_site_name);
 
7253
        }
 
7254
        ndr->depth--;
 
7255
        ndr_print_ptr(ndr, "client_site_name", r->client_site_name);
 
7256
        ndr->depth++;
 
7257
        if (r->client_site_name) {
 
7258
                ndr_print_string(ndr, "client_site_name", r->client_site_name);
 
7259
        }
 
7260
        ndr->depth--;
 
7261
        ndr->depth--;
 
7262
}
 
7263
 
 
7264
static enum ndr_err_code ndr_push_netr_Capabilities(struct ndr_push *ndr, int ndr_flags, const union netr_Capabilities *r)
 
7265
{
 
7266
        if (ndr_flags & NDR_SCALARS) {
 
7267
                int level = ndr_push_get_switch_value(ndr, r);
 
7268
                NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, level));
 
7269
                NDR_CHECK(ndr_push_union_align(ndr, 4));
 
7270
                switch (level) {
 
7271
                        case 1: {
 
7272
                                NDR_CHECK(ndr_push_netr_NegotiateFlags(ndr, NDR_SCALARS, r->server_capabilities));
 
7273
                        break; }
 
7274
 
 
7275
                        default:
 
7276
                                return ndr_push_error(ndr, NDR_ERR_BAD_SWITCH, "Bad switch value %u at %s", level, __location__);
 
7277
                }
 
7278
        }
 
7279
        if (ndr_flags & NDR_BUFFERS) {
 
7280
                int level = ndr_push_get_switch_value(ndr, r);
 
7281
                switch (level) {
 
7282
                        case 1:
 
7283
                        break;
 
7284
 
 
7285
                        default:
 
7286
                                return ndr_push_error(ndr, NDR_ERR_BAD_SWITCH, "Bad switch value %u at %s", level, __location__);
 
7287
                }
 
7288
        }
 
7289
        return NDR_ERR_SUCCESS;
 
7290
}
 
7291
 
 
7292
static enum ndr_err_code ndr_pull_netr_Capabilities(struct ndr_pull *ndr, int ndr_flags, union netr_Capabilities *r)
 
7293
{
 
7294
        int level;
 
7295
        uint32_t _level;
 
7296
        level = ndr_pull_get_switch_value(ndr, r);
 
7297
        if (ndr_flags & NDR_SCALARS) {
 
7298
                NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &_level));
 
7299
                if (_level != level) {
 
7300
                        return ndr_pull_error(ndr, NDR_ERR_BAD_SWITCH, "Bad switch value %u for r at %s", _level, __location__);
 
7301
                }
 
7302
                NDR_CHECK(ndr_pull_union_align(ndr, 4));
 
7303
                switch (level) {
 
7304
                        case 1: {
 
7305
                                NDR_CHECK(ndr_pull_netr_NegotiateFlags(ndr, NDR_SCALARS, &r->server_capabilities));
 
7306
                        break; }
 
7307
 
 
7308
                        default:
 
7309
                                return ndr_pull_error(ndr, NDR_ERR_BAD_SWITCH, "Bad switch value %u at %s", level, __location__);
 
7310
                }
 
7311
        }
 
7312
        if (ndr_flags & NDR_BUFFERS) {
 
7313
                switch (level) {
 
7314
                        case 1:
 
7315
                        break;
 
7316
 
 
7317
                        default:
 
7318
                                return ndr_pull_error(ndr, NDR_ERR_BAD_SWITCH, "Bad switch value %u at %s", level, __location__);
 
7319
                }
 
7320
        }
 
7321
        return NDR_ERR_SUCCESS;
 
7322
}
 
7323
 
 
7324
_PUBLIC_ void ndr_print_netr_Capabilities(struct ndr_print *ndr, const char *name, const union netr_Capabilities *r)
 
7325
{
 
7326
        int level;
 
7327
        level = ndr_print_get_switch_value(ndr, r);
 
7328
        ndr_print_union(ndr, name, level, "netr_Capabilities");
 
7329
        switch (level) {
 
7330
                case 1:
 
7331
                        ndr_print_netr_NegotiateFlags(ndr, "server_capabilities", r->server_capabilities);
 
7332
                break;
 
7333
 
 
7334
                default:
 
7335
                        ndr_print_bad_level(ndr, name, level);
 
7336
        }
 
7337
}
 
7338
 
 
7339
static enum ndr_err_code ndr_push_netr_TrustFlags(struct ndr_push *ndr, int ndr_flags, uint32_t r)
 
7340
{
 
7341
        NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r));
 
7342
        return NDR_ERR_SUCCESS;
 
7343
}
 
7344
 
 
7345
static enum ndr_err_code ndr_pull_netr_TrustFlags(struct ndr_pull *ndr, int ndr_flags, uint32_t *r)
 
7346
{
 
7347
        uint32_t v;
 
7348
        NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &v));
 
7349
        *r = v;
 
7350
        return NDR_ERR_SUCCESS;
 
7351
}
 
7352
 
 
7353
_PUBLIC_ void ndr_print_netr_TrustFlags(struct ndr_print *ndr, const char *name, uint32_t r)
 
7354
{
 
7355
        ndr_print_uint32(ndr, name, r);
 
7356
        ndr->depth++;
 
7357
        ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "NETR_TRUST_FLAG_IN_FOREST", NETR_TRUST_FLAG_IN_FOREST, r);
 
7358
        ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "NETR_TRUST_FLAG_OUTBOUND", NETR_TRUST_FLAG_OUTBOUND, r);
 
7359
        ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "NETR_TRUST_FLAG_TREEROOT", NETR_TRUST_FLAG_TREEROOT, r);
 
7360
        ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "NETR_TRUST_FLAG_PRIMARY", NETR_TRUST_FLAG_PRIMARY, r);
 
7361
        ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "NETR_TRUST_FLAG_NATIVE", NETR_TRUST_FLAG_NATIVE, r);
 
7362
        ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "NETR_TRUST_FLAG_INBOUND", NETR_TRUST_FLAG_INBOUND, r);
 
7363
        ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "NETR_TRUST_FLAG_MIT_KRB5", NETR_TRUST_FLAG_MIT_KRB5, r);
 
7364
        ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "NETR_TRUST_FLAG_AES", NETR_TRUST_FLAG_AES, r);
 
7365
        ndr->depth--;
 
7366
}
 
7367
 
 
7368
static enum ndr_err_code ndr_push_netr_WorkstationFlags(struct ndr_push *ndr, int ndr_flags, uint32_t r)
 
7369
{
 
7370
        NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r));
 
7371
        return NDR_ERR_SUCCESS;
 
7372
}
 
7373
 
 
7374
static enum ndr_err_code ndr_pull_netr_WorkstationFlags(struct ndr_pull *ndr, int ndr_flags, uint32_t *r)
 
7375
{
 
7376
        uint32_t v;
 
7377
        NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &v));
 
7378
        *r = v;
 
7379
        return NDR_ERR_SUCCESS;
 
7380
}
 
7381
 
 
7382
_PUBLIC_ void ndr_print_netr_WorkstationFlags(struct ndr_print *ndr, const char *name, uint32_t r)
 
7383
{
 
7384
        ndr_print_uint32(ndr, name, r);
 
7385
        ndr->depth++;
 
7386
        ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "NETR_WS_FLAG_HANDLES_INBOUND_TRUSTS", NETR_WS_FLAG_HANDLES_INBOUND_TRUSTS, r);
 
7387
        ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "NETR_WS_FLAG_HANDLES_SPN_UPDATE", NETR_WS_FLAG_HANDLES_SPN_UPDATE, r);
 
7388
        ndr->depth--;
 
7389
}
 
7390
 
 
7391
static enum ndr_err_code ndr_push_netr_SuiteMask(struct ndr_push *ndr, int ndr_flags, uint16_t r)
 
7392
{
 
7393
        NDR_CHECK(ndr_push_uint16(ndr, NDR_SCALARS, r));
 
7394
        return NDR_ERR_SUCCESS;
 
7395
}
 
7396
 
 
7397
static enum ndr_err_code ndr_pull_netr_SuiteMask(struct ndr_pull *ndr, int ndr_flags, uint16_t *r)
 
7398
{
 
7399
        uint16_t v;
 
7400
        NDR_CHECK(ndr_pull_uint16(ndr, NDR_SCALARS, &v));
 
7401
        *r = v;
 
7402
        return NDR_ERR_SUCCESS;
 
7403
}
 
7404
 
 
7405
_PUBLIC_ void ndr_print_netr_SuiteMask(struct ndr_print *ndr, const char *name, uint16_t r)
 
7406
{
 
7407
        ndr_print_uint16(ndr, name, r);
 
7408
        ndr->depth++;
 
7409
        ndr_print_bitmap_flag(ndr, sizeof(uint16_t), "NETR_VER_SUITE_BACKOFFICE", NETR_VER_SUITE_BACKOFFICE, r);
 
7410
        ndr_print_bitmap_flag(ndr, sizeof(uint16_t), "NETR_VER_SUITE_BLADE", NETR_VER_SUITE_BLADE, r);
 
7411
        ndr_print_bitmap_flag(ndr, sizeof(uint16_t), "NETR_VER_SUITE_COMPUTE_SERVER", NETR_VER_SUITE_COMPUTE_SERVER, r);
 
7412
        ndr_print_bitmap_flag(ndr, sizeof(uint16_t), "NETR_VER_SUITE_DATACENTER", NETR_VER_SUITE_DATACENTER, r);
 
7413
        ndr_print_bitmap_flag(ndr, sizeof(uint16_t), "NETR_VER_SUITE_ENTERPRISE", NETR_VER_SUITE_ENTERPRISE, r);
 
7414
        ndr_print_bitmap_flag(ndr, sizeof(uint16_t), "NETR_VER_SUITE_EMBEDDEDNT", NETR_VER_SUITE_EMBEDDEDNT, r);
 
7415
        ndr_print_bitmap_flag(ndr, sizeof(uint16_t), "NETR_VER_SUITE_PERSONAL", NETR_VER_SUITE_PERSONAL, r);
 
7416
        ndr_print_bitmap_flag(ndr, sizeof(uint16_t), "NETR_VER_SUITE_SINGLEUSERTS", NETR_VER_SUITE_SINGLEUSERTS, r);
 
7417
        ndr_print_bitmap_flag(ndr, sizeof(uint16_t), "NETR_VER_SUITE_SMALLBUSINESS", NETR_VER_SUITE_SMALLBUSINESS, r);
 
7418
        ndr_print_bitmap_flag(ndr, sizeof(uint16_t), "NETR_VER_SUITE_SMALLBUSINESS_RESTRICTED", NETR_VER_SUITE_SMALLBUSINESS_RESTRICTED, r);
 
7419
        ndr_print_bitmap_flag(ndr, sizeof(uint16_t), "NETR_VER_SUITE_STORAGE_SERVER", NETR_VER_SUITE_STORAGE_SERVER, r);
 
7420
        ndr_print_bitmap_flag(ndr, sizeof(uint16_t), "NETR_VER_SUITE_TERMINAL", NETR_VER_SUITE_TERMINAL, r);
 
7421
        ndr_print_bitmap_flag(ndr, sizeof(uint16_t), "NETR_VER_SUITE_WH_SERVER", NETR_VER_SUITE_WH_SERVER, r);
 
7422
        ndr->depth--;
 
7423
}
 
7424
 
 
7425
static enum ndr_err_code ndr_push_netr_ProductType(struct ndr_push *ndr, int ndr_flags, uint8_t r)
 
7426
{
 
7427
        NDR_CHECK(ndr_push_uint8(ndr, NDR_SCALARS, r));
 
7428
        return NDR_ERR_SUCCESS;
 
7429
}
 
7430
 
 
7431
static enum ndr_err_code ndr_pull_netr_ProductType(struct ndr_pull *ndr, int ndr_flags, uint8_t *r)
 
7432
{
 
7433
        uint8_t v;
 
7434
        NDR_CHECK(ndr_pull_uint8(ndr, NDR_SCALARS, &v));
 
7435
        *r = v;
 
7436
        return NDR_ERR_SUCCESS;
 
7437
}
 
7438
 
 
7439
_PUBLIC_ void ndr_print_netr_ProductType(struct ndr_print *ndr, const char *name, uint8_t r)
 
7440
{
 
7441
        ndr_print_uint8(ndr, name, r);
 
7442
        ndr->depth++;
 
7443
        ndr_print_bitmap_flag(ndr, sizeof(uint8_t), "NETR_VER_NT_DOMAIN_CONTROLLER", NETR_VER_NT_DOMAIN_CONTROLLER, r);
 
7444
        ndr_print_bitmap_flag(ndr, sizeof(uint8_t), "NETR_VER_NT_SERVER", NETR_VER_NT_SERVER, r);
 
7445
        ndr_print_bitmap_flag(ndr, sizeof(uint8_t), "NETR_VER_NT_WORKSTATION", NETR_VER_NT_WORKSTATION, r);
 
7446
        ndr->depth--;
 
7447
}
 
7448
 
 
7449
static enum ndr_err_code ndr_push_netr_LsaPolicyInformation(struct ndr_push *ndr, int ndr_flags, const struct netr_LsaPolicyInformation *r)
 
7450
{
 
7451
        if (ndr_flags & NDR_SCALARS) {
 
7452
                NDR_CHECK(ndr_push_align(ndr, 5));
 
7453
                NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->policy_size));
 
7454
                NDR_CHECK(ndr_push_unique_ptr(ndr, r->policy));
 
7455
                NDR_CHECK(ndr_push_trailer_align(ndr, 5));
 
7456
        }
 
7457
        if (ndr_flags & NDR_BUFFERS) {
 
7458
                if (r->policy) {
 
7459
                        NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, r->policy_size));
 
7460
                        NDR_CHECK(ndr_push_array_uint8(ndr, NDR_SCALARS, r->policy, r->policy_size));
 
7461
                }
 
7462
        }
 
7463
        return NDR_ERR_SUCCESS;
 
7464
}
 
7465
 
 
7466
static enum ndr_err_code ndr_pull_netr_LsaPolicyInformation(struct ndr_pull *ndr, int ndr_flags, struct netr_LsaPolicyInformation *r)
 
7467
{
 
7468
        uint32_t _ptr_policy;
 
7469
        TALLOC_CTX *_mem_save_policy_0;
 
7470
        if (ndr_flags & NDR_SCALARS) {
 
7471
                NDR_CHECK(ndr_pull_align(ndr, 5));
 
7472
                NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->policy_size));
 
7473
                NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_policy));
 
7474
                if (_ptr_policy) {
 
7475
                        NDR_PULL_ALLOC(ndr, r->policy);
 
7476
                } else {
 
7477
                        r->policy = NULL;
 
7478
                }
 
7479
                NDR_CHECK(ndr_pull_trailer_align(ndr, 5));
 
7480
        }
 
7481
        if (ndr_flags & NDR_BUFFERS) {
 
7482
                if (r->policy) {
 
7483
                        _mem_save_policy_0 = NDR_PULL_GET_MEM_CTX(ndr);
 
7484
                        NDR_PULL_SET_MEM_CTX(ndr, r->policy, 0);
 
7485
                        NDR_CHECK(ndr_pull_array_size(ndr, &r->policy));
 
7486
                        NDR_PULL_ALLOC_N(ndr, r->policy, ndr_get_array_size(ndr, &r->policy));
 
7487
                        NDR_CHECK(ndr_pull_array_uint8(ndr, NDR_SCALARS, r->policy, ndr_get_array_size(ndr, &r->policy)));
 
7488
                        NDR_PULL_SET_MEM_CTX(ndr, _mem_save_policy_0, 0);
 
7489
                }
 
7490
                if (r->policy) {
 
7491
                        NDR_CHECK(ndr_check_array_size(ndr, (void*)&r->policy, r->policy_size));
 
7492
                }
 
7493
        }
 
7494
        return NDR_ERR_SUCCESS;
 
7495
}
 
7496
 
 
7497
_PUBLIC_ void ndr_print_netr_LsaPolicyInformation(struct ndr_print *ndr, const char *name, const struct netr_LsaPolicyInformation *r)
 
7498
{
 
7499
        ndr_print_struct(ndr, name, "netr_LsaPolicyInformation");
 
7500
        ndr->depth++;
 
7501
        ndr_print_uint32(ndr, "policy_size", r->policy_size);
 
7502
        ndr_print_ptr(ndr, "policy", r->policy);
 
7503
        ndr->depth++;
 
7504
        if (r->policy) {
 
7505
                ndr_print_array_uint8(ndr, "policy", r->policy, r->policy_size);
 
7506
        }
 
7507
        ndr->depth--;
 
7508
        ndr->depth--;
 
7509
}
 
7510
 
 
7511
static enum ndr_err_code ndr_push_netr_OsVersionInfoEx(struct ndr_push *ndr, int ndr_flags, const struct netr_OsVersionInfoEx *r)
 
7512
{
 
7513
        if (ndr_flags & NDR_SCALARS) {
 
7514
                NDR_CHECK(ndr_push_align(ndr, 4));
 
7515
                NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 284));
 
7516
                NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->MajorVersion));
 
7517
                NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->MinorVersion));
 
7518
                NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->BuildNumber));
 
7519
                NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->PlatformId));
 
7520
                {
 
7521
                        uint32_t _flags_save_string = ndr->flags;
 
7522
                        ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM|LIBNDR_FLAG_ALIGN2);
 
7523
                        {
 
7524
                                struct ndr_push *_ndr_CSDVersion;
 
7525
                                NDR_CHECK(ndr_push_subcontext_start(ndr, &_ndr_CSDVersion, 0, 256));
 
7526
                                NDR_CHECK(ndr_push_string(_ndr_CSDVersion, NDR_SCALARS, r->CSDVersion));
 
7527
                                NDR_CHECK(ndr_push_subcontext_end(ndr, _ndr_CSDVersion, 0, 256));
 
7528
                        }
 
7529
                        ndr->flags = _flags_save_string;
 
7530
                }
 
7531
                NDR_CHECK(ndr_push_uint16(ndr, NDR_SCALARS, r->ServicePackMajor));
 
7532
                NDR_CHECK(ndr_push_uint16(ndr, NDR_SCALARS, r->ServicePackMinor));
 
7533
                NDR_CHECK(ndr_push_netr_SuiteMask(ndr, NDR_SCALARS, r->SuiteMask));
 
7534
                NDR_CHECK(ndr_push_netr_ProductType(ndr, NDR_SCALARS, r->ProductType));
 
7535
                NDR_CHECK(ndr_push_uint8(ndr, NDR_SCALARS, r->Reserved));
 
7536
                NDR_CHECK(ndr_push_trailer_align(ndr, 4));
 
7537
        }
 
7538
        if (ndr_flags & NDR_BUFFERS) {
 
7539
        }
 
7540
        return NDR_ERR_SUCCESS;
 
7541
}
 
7542
 
 
7543
static enum ndr_err_code ndr_pull_netr_OsVersionInfoEx(struct ndr_pull *ndr, int ndr_flags, struct netr_OsVersionInfoEx *r)
 
7544
{
 
7545
        if (ndr_flags & NDR_SCALARS) {
 
7546
                NDR_CHECK(ndr_pull_align(ndr, 4));
 
7547
                NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->OSVersionInfoSize));
 
7548
                NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->MajorVersion));
 
7549
                NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->MinorVersion));
 
7550
                NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->BuildNumber));
 
7551
                NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->PlatformId));
 
7552
                {
 
7553
                        uint32_t _flags_save_string = ndr->flags;
 
7554
                        ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM|LIBNDR_FLAG_ALIGN2);
 
7555
                        {
 
7556
                                struct ndr_pull *_ndr_CSDVersion;
 
7557
                                NDR_CHECK(ndr_pull_subcontext_start(ndr, &_ndr_CSDVersion, 0, 256));
 
7558
                                NDR_CHECK(ndr_pull_string(_ndr_CSDVersion, NDR_SCALARS, &r->CSDVersion));
 
7559
                                NDR_CHECK(ndr_pull_subcontext_end(ndr, _ndr_CSDVersion, 0, 256));
 
7560
                        }
 
7561
                        ndr->flags = _flags_save_string;
 
7562
                }
 
7563
                NDR_CHECK(ndr_pull_uint16(ndr, NDR_SCALARS, &r->ServicePackMajor));
 
7564
                NDR_CHECK(ndr_pull_uint16(ndr, NDR_SCALARS, &r->ServicePackMinor));
 
7565
                NDR_CHECK(ndr_pull_netr_SuiteMask(ndr, NDR_SCALARS, &r->SuiteMask));
 
7566
                NDR_CHECK(ndr_pull_netr_ProductType(ndr, NDR_SCALARS, &r->ProductType));
 
7567
                NDR_CHECK(ndr_pull_uint8(ndr, NDR_SCALARS, &r->Reserved));
 
7568
                NDR_CHECK(ndr_pull_trailer_align(ndr, 4));
 
7569
        }
 
7570
        if (ndr_flags & NDR_BUFFERS) {
 
7571
        }
 
7572
        return NDR_ERR_SUCCESS;
 
7573
}
 
7574
 
 
7575
_PUBLIC_ void ndr_print_netr_OsVersionInfoEx(struct ndr_print *ndr, const char *name, const struct netr_OsVersionInfoEx *r)
 
7576
{
 
7577
        ndr_print_struct(ndr, name, "netr_OsVersionInfoEx");
 
7578
        ndr->depth++;
 
7579
        ndr_print_uint32(ndr, "OSVersionInfoSize", (ndr->flags & LIBNDR_PRINT_SET_VALUES)?284:r->OSVersionInfoSize);
 
7580
        ndr_print_uint32(ndr, "MajorVersion", r->MajorVersion);
 
7581
        ndr_print_uint32(ndr, "MinorVersion", r->MinorVersion);
 
7582
        ndr_print_uint32(ndr, "BuildNumber", r->BuildNumber);
 
7583
        ndr_print_uint32(ndr, "PlatformId", r->PlatformId);
 
7584
        ndr_print_string(ndr, "CSDVersion", r->CSDVersion);
 
7585
        ndr_print_uint16(ndr, "ServicePackMajor", r->ServicePackMajor);
 
7586
        ndr_print_uint16(ndr, "ServicePackMinor", r->ServicePackMinor);
 
7587
        ndr_print_netr_SuiteMask(ndr, "SuiteMask", r->SuiteMask);
 
7588
        ndr_print_netr_ProductType(ndr, "ProductType", r->ProductType);
 
7589
        ndr_print_uint8(ndr, "Reserved", r->Reserved);
 
7590
        ndr->depth--;
 
7591
}
 
7592
 
 
7593
static enum ndr_err_code ndr_push_netr_OsVersion(struct ndr_push *ndr, int ndr_flags, const struct netr_OsVersion *r)
 
7594
{
 
7595
        if (ndr_flags & NDR_SCALARS) {
 
7596
                NDR_CHECK(ndr_push_align(ndr, 4));
 
7597
                NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 142));
 
7598
                NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0));
 
7599
                NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 142));
 
7600
                NDR_CHECK(ndr_push_netr_OsVersionInfoEx(ndr, NDR_SCALARS, &r->os));
 
7601
                NDR_CHECK(ndr_push_trailer_align(ndr, 4));
 
7602
        }
 
7603
        if (ndr_flags & NDR_BUFFERS) {
 
7604
        }
 
7605
        return NDR_ERR_SUCCESS;
 
7606
}
 
7607
 
 
7608
static enum ndr_err_code ndr_pull_netr_OsVersion(struct ndr_pull *ndr, int ndr_flags, struct netr_OsVersion *r)
 
7609
{
 
7610
        if (ndr_flags & NDR_SCALARS) {
 
7611
                NDR_CHECK(ndr_pull_align(ndr, 4));
 
7612
                NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->length));
 
7613
                NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->dummy));
 
7614
                NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->size));
 
7615
                NDR_CHECK(ndr_pull_netr_OsVersionInfoEx(ndr, NDR_SCALARS, &r->os));
 
7616
                NDR_CHECK(ndr_pull_trailer_align(ndr, 4));
 
7617
        }
 
7618
        if (ndr_flags & NDR_BUFFERS) {
 
7619
        }
 
7620
        return NDR_ERR_SUCCESS;
 
7621
}
 
7622
 
 
7623
_PUBLIC_ void ndr_print_netr_OsVersion(struct ndr_print *ndr, const char *name, const struct netr_OsVersion *r)
 
7624
{
 
7625
        ndr_print_struct(ndr, name, "netr_OsVersion");
 
7626
        ndr->depth++;
 
7627
        ndr_print_uint32(ndr, "length", (ndr->flags & LIBNDR_PRINT_SET_VALUES)?142:r->length);
 
7628
        ndr_print_uint32(ndr, "dummy", (ndr->flags & LIBNDR_PRINT_SET_VALUES)?0:r->dummy);
 
7629
        ndr_print_uint32(ndr, "size", (ndr->flags & LIBNDR_PRINT_SET_VALUES)?142:r->size);
 
7630
        ndr_print_netr_OsVersionInfoEx(ndr, "os", &r->os);
 
7631
        ndr->depth--;
 
7632
}
 
7633
 
 
7634
static enum ndr_err_code ndr_push_netr_OsVersionContainer(struct ndr_push *ndr, int ndr_flags, const struct netr_OsVersionContainer *r)
 
7635
{
 
7636
        if (ndr_flags & NDR_SCALARS) {
 
7637
                NDR_CHECK(ndr_push_align(ndr, 5));
 
7638
                NDR_CHECK(ndr_push_uint16(ndr, NDR_SCALARS, r->os == NULL?0:284));
 
7639
                NDR_CHECK(ndr_push_uint16(ndr, NDR_SCALARS, r->os == NULL?0:284));
 
7640
                NDR_CHECK(ndr_push_unique_ptr(ndr, r->os));
 
7641
                NDR_CHECK(ndr_push_trailer_align(ndr, 5));
 
7642
        }
 
7643
        if (ndr_flags & NDR_BUFFERS) {
 
7644
                if (r->os) {
 
7645
                        NDR_CHECK(ndr_push_netr_OsVersion(ndr, NDR_SCALARS, r->os));
 
7646
                }
 
7647
        }
 
7648
        return NDR_ERR_SUCCESS;
 
7649
}
 
7650
 
 
7651
static enum ndr_err_code ndr_pull_netr_OsVersionContainer(struct ndr_pull *ndr, int ndr_flags, struct netr_OsVersionContainer *r)
 
7652
{
 
7653
        uint32_t _ptr_os;
 
7654
        TALLOC_CTX *_mem_save_os_0;
 
7655
        if (ndr_flags & NDR_SCALARS) {
 
7656
                NDR_CHECK(ndr_pull_align(ndr, 5));
 
7657
                NDR_CHECK(ndr_pull_uint16(ndr, NDR_SCALARS, &r->length));
 
7658
                NDR_CHECK(ndr_pull_uint16(ndr, NDR_SCALARS, &r->size));
 
7659
                NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_os));
 
7660
                if (_ptr_os) {
 
7661
                        NDR_PULL_ALLOC(ndr, r->os);
 
7662
                } else {
 
7663
                        r->os = NULL;
 
7664
                }
 
7665
                NDR_CHECK(ndr_pull_trailer_align(ndr, 5));
 
7666
        }
 
7667
        if (ndr_flags & NDR_BUFFERS) {
 
7668
                if (r->os) {
 
7669
                        _mem_save_os_0 = NDR_PULL_GET_MEM_CTX(ndr);
 
7670
                        NDR_PULL_SET_MEM_CTX(ndr, r->os, 0);
 
7671
                        NDR_CHECK(ndr_pull_netr_OsVersion(ndr, NDR_SCALARS, r->os));
 
7672
                        NDR_PULL_SET_MEM_CTX(ndr, _mem_save_os_0, 0);
 
7673
                }
 
7674
        }
 
7675
        return NDR_ERR_SUCCESS;
 
7676
}
 
7677
 
 
7678
_PUBLIC_ void ndr_print_netr_OsVersionContainer(struct ndr_print *ndr, const char *name, const struct netr_OsVersionContainer *r)
 
7679
{
 
7680
        ndr_print_struct(ndr, name, "netr_OsVersionContainer");
 
7681
        ndr->depth++;
 
7682
        ndr_print_uint16(ndr, "length", (ndr->flags & LIBNDR_PRINT_SET_VALUES)?r->os == NULL?0:284:r->length);
 
7683
        ndr_print_uint16(ndr, "size", (ndr->flags & LIBNDR_PRINT_SET_VALUES)?r->os == NULL?0:284:r->size);
 
7684
        ndr_print_ptr(ndr, "os", r->os);
 
7685
        ndr->depth++;
 
7686
        if (r->os) {
 
7687
                ndr_print_netr_OsVersion(ndr, "os", r->os);
 
7688
        }
 
7689
        ndr->depth--;
 
7690
        ndr->depth--;
 
7691
}
 
7692
 
 
7693
static enum ndr_err_code ndr_push_netr_WorkstationInformation(struct ndr_push *ndr, int ndr_flags, const struct netr_WorkstationInformation *r)
 
7694
{
 
7695
        if (ndr_flags & NDR_SCALARS) {
 
7696
                NDR_CHECK(ndr_push_align(ndr, 5));
 
7697
                NDR_CHECK(ndr_push_netr_LsaPolicyInformation(ndr, NDR_SCALARS, &r->lsa_policy));
 
7698
                NDR_CHECK(ndr_push_unique_ptr(ndr, r->dns_hostname));
 
7699
                NDR_CHECK(ndr_push_unique_ptr(ndr, r->sitename));
 
7700
                NDR_CHECK(ndr_push_unique_ptr(ndr, r->dummy1));
 
7701
                NDR_CHECK(ndr_push_unique_ptr(ndr, r->dummy2));
 
7702
                NDR_CHECK(ndr_push_unique_ptr(ndr, r->dummy3));
 
7703
                NDR_CHECK(ndr_push_unique_ptr(ndr, r->dummy4));
 
7704
                NDR_CHECK(ndr_push_netr_OsVersionContainer(ndr, NDR_SCALARS, &r->os_version));
 
7705
                NDR_CHECK(ndr_push_lsa_String(ndr, NDR_SCALARS, &r->os_name));
 
7706
                NDR_CHECK(ndr_push_lsa_String(ndr, NDR_SCALARS, &r->dummy_string3));
 
7707
                NDR_CHECK(ndr_push_lsa_String(ndr, NDR_SCALARS, &r->dummy_string4));
 
7708
                NDR_CHECK(ndr_push_netr_WorkstationFlags(ndr, NDR_SCALARS, r->workstation_flags));
 
7709
                NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->dummy_long2));
 
7710
                NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->dummy_long3));
 
7711
                NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->dummy_long4));
 
7712
                NDR_CHECK(ndr_push_trailer_align(ndr, 5));
 
7713
        }
 
7714
        if (ndr_flags & NDR_BUFFERS) {
 
7715
                NDR_CHECK(ndr_push_netr_LsaPolicyInformation(ndr, NDR_BUFFERS, &r->lsa_policy));
 
7716
                if (r->dns_hostname) {
 
7717
                        NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->dns_hostname, CH_UTF16)));
 
7718
                        NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, 0));
 
7719
                        NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->dns_hostname, CH_UTF16)));
 
7720
                        NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->dns_hostname, ndr_charset_length(r->dns_hostname, CH_UTF16), sizeof(uint16_t), CH_UTF16));
 
7721
                }
 
7722
                if (r->sitename) {
 
7723
                        NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->sitename, CH_UTF16)));
 
7724
                        NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, 0));
 
7725
                        NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->sitename, CH_UTF16)));
 
7726
                        NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->sitename, ndr_charset_length(r->sitename, CH_UTF16), sizeof(uint16_t), CH_UTF16));
 
7727
                }
 
7728
                if (r->dummy1) {
 
7729
                        NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->dummy1, CH_UTF16)));
 
7730
                        NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, 0));
 
7731
                        NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->dummy1, CH_UTF16)));
 
7732
                        NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->dummy1, ndr_charset_length(r->dummy1, CH_UTF16), sizeof(uint16_t), CH_UTF16));
 
7733
                }
 
7734
                if (r->dummy2) {
 
7735
                        NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->dummy2, CH_UTF16)));
 
7736
                        NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, 0));
 
7737
                        NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->dummy2, CH_UTF16)));
 
7738
                        NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->dummy2, ndr_charset_length(r->dummy2, CH_UTF16), sizeof(uint16_t), CH_UTF16));
 
7739
                }
 
7740
                if (r->dummy3) {
 
7741
                        NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->dummy3, CH_UTF16)));
 
7742
                        NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, 0));
 
7743
                        NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->dummy3, CH_UTF16)));
 
7744
                        NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->dummy3, ndr_charset_length(r->dummy3, CH_UTF16), sizeof(uint16_t), CH_UTF16));
 
7745
                }
 
7746
                if (r->dummy4) {
 
7747
                        NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->dummy4, CH_UTF16)));
 
7748
                        NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, 0));
 
7749
                        NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->dummy4, CH_UTF16)));
 
7750
                        NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->dummy4, ndr_charset_length(r->dummy4, CH_UTF16), sizeof(uint16_t), CH_UTF16));
 
7751
                }
 
7752
                NDR_CHECK(ndr_push_netr_OsVersionContainer(ndr, NDR_BUFFERS, &r->os_version));
 
7753
                NDR_CHECK(ndr_push_lsa_String(ndr, NDR_BUFFERS, &r->os_name));
 
7754
                NDR_CHECK(ndr_push_lsa_String(ndr, NDR_BUFFERS, &r->dummy_string3));
 
7755
                NDR_CHECK(ndr_push_lsa_String(ndr, NDR_BUFFERS, &r->dummy_string4));
 
7756
        }
 
7757
        return NDR_ERR_SUCCESS;
 
7758
}
 
7759
 
 
7760
static enum ndr_err_code ndr_pull_netr_WorkstationInformation(struct ndr_pull *ndr, int ndr_flags, struct netr_WorkstationInformation *r)
 
7761
{
 
7762
        uint32_t _ptr_dns_hostname;
 
7763
        TALLOC_CTX *_mem_save_dns_hostname_0;
 
7764
        uint32_t _ptr_sitename;
 
7765
        TALLOC_CTX *_mem_save_sitename_0;
 
7766
        uint32_t _ptr_dummy1;
 
7767
        TALLOC_CTX *_mem_save_dummy1_0;
 
7768
        uint32_t _ptr_dummy2;
 
7769
        TALLOC_CTX *_mem_save_dummy2_0;
 
7770
        uint32_t _ptr_dummy3;
 
7771
        TALLOC_CTX *_mem_save_dummy3_0;
 
7772
        uint32_t _ptr_dummy4;
 
7773
        TALLOC_CTX *_mem_save_dummy4_0;
 
7774
        if (ndr_flags & NDR_SCALARS) {
 
7775
                NDR_CHECK(ndr_pull_align(ndr, 5));
 
7776
                NDR_CHECK(ndr_pull_netr_LsaPolicyInformation(ndr, NDR_SCALARS, &r->lsa_policy));
 
7777
                NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_dns_hostname));
 
7778
                if (_ptr_dns_hostname) {
 
7779
                        NDR_PULL_ALLOC(ndr, r->dns_hostname);
 
7780
                } else {
 
7781
                        r->dns_hostname = NULL;
 
7782
                }
 
7783
                NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_sitename));
 
7784
                if (_ptr_sitename) {
 
7785
                        NDR_PULL_ALLOC(ndr, r->sitename);
 
7786
                } else {
 
7787
                        r->sitename = NULL;
 
7788
                }
 
7789
                NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_dummy1));
 
7790
                if (_ptr_dummy1) {
 
7791
                        NDR_PULL_ALLOC(ndr, r->dummy1);
 
7792
                } else {
 
7793
                        r->dummy1 = NULL;
 
7794
                }
 
7795
                NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_dummy2));
 
7796
                if (_ptr_dummy2) {
 
7797
                        NDR_PULL_ALLOC(ndr, r->dummy2);
 
7798
                } else {
 
7799
                        r->dummy2 = NULL;
 
7800
                }
 
7801
                NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_dummy3));
 
7802
                if (_ptr_dummy3) {
 
7803
                        NDR_PULL_ALLOC(ndr, r->dummy3);
 
7804
                } else {
 
7805
                        r->dummy3 = NULL;
 
7806
                }
 
7807
                NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_dummy4));
 
7808
                if (_ptr_dummy4) {
 
7809
                        NDR_PULL_ALLOC(ndr, r->dummy4);
 
7810
                } else {
 
7811
                        r->dummy4 = NULL;
 
7812
                }
 
7813
                NDR_CHECK(ndr_pull_netr_OsVersionContainer(ndr, NDR_SCALARS, &r->os_version));
 
7814
                NDR_CHECK(ndr_pull_lsa_String(ndr, NDR_SCALARS, &r->os_name));
 
7815
                NDR_CHECK(ndr_pull_lsa_String(ndr, NDR_SCALARS, &r->dummy_string3));
 
7816
                NDR_CHECK(ndr_pull_lsa_String(ndr, NDR_SCALARS, &r->dummy_string4));
 
7817
                NDR_CHECK(ndr_pull_netr_WorkstationFlags(ndr, NDR_SCALARS, &r->workstation_flags));
 
7818
                NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->dummy_long2));
 
7819
                NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->dummy_long3));
 
7820
                NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->dummy_long4));
 
7821
                NDR_CHECK(ndr_pull_trailer_align(ndr, 5));
 
7822
        }
 
7823
        if (ndr_flags & NDR_BUFFERS) {
 
7824
                NDR_CHECK(ndr_pull_netr_LsaPolicyInformation(ndr, NDR_BUFFERS, &r->lsa_policy));
 
7825
                if (r->dns_hostname) {
 
7826
                        _mem_save_dns_hostname_0 = NDR_PULL_GET_MEM_CTX(ndr);
 
7827
                        NDR_PULL_SET_MEM_CTX(ndr, r->dns_hostname, 0);
 
7828
                        NDR_CHECK(ndr_pull_array_size(ndr, &r->dns_hostname));
 
7829
                        NDR_CHECK(ndr_pull_array_length(ndr, &r->dns_hostname));
 
7830
                        if (ndr_get_array_length(ndr, &r->dns_hostname) > ndr_get_array_size(ndr, &r->dns_hostname)) {
 
7831
                                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_hostname), ndr_get_array_length(ndr, &r->dns_hostname));
 
7832
                        }
 
7833
                        NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->dns_hostname), sizeof(uint16_t)));
 
7834
                        NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->dns_hostname, ndr_get_array_length(ndr, &r->dns_hostname), sizeof(uint16_t), CH_UTF16));
 
7835
                        NDR_PULL_SET_MEM_CTX(ndr, _mem_save_dns_hostname_0, 0);
 
7836
                }
 
7837
                if (r->sitename) {
 
7838
                        _mem_save_sitename_0 = NDR_PULL_GET_MEM_CTX(ndr);
 
7839
                        NDR_PULL_SET_MEM_CTX(ndr, r->sitename, 0);
 
7840
                        NDR_CHECK(ndr_pull_array_size(ndr, &r->sitename));
 
7841
                        NDR_CHECK(ndr_pull_array_length(ndr, &r->sitename));
 
7842
                        if (ndr_get_array_length(ndr, &r->sitename) > ndr_get_array_size(ndr, &r->sitename)) {
 
7843
                                return ndr_pull_error(ndr, NDR_ERR_ARRAY_SIZE, "Bad array size %u should exceed array length %u", ndr_get_array_size(ndr, &r->sitename), ndr_get_array_length(ndr, &r->sitename));
 
7844
                        }
 
7845
                        NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->sitename), sizeof(uint16_t)));
 
7846
                        NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->sitename, ndr_get_array_length(ndr, &r->sitename), sizeof(uint16_t), CH_UTF16));
 
7847
                        NDR_PULL_SET_MEM_CTX(ndr, _mem_save_sitename_0, 0);
 
7848
                }
 
7849
                if (r->dummy1) {
 
7850
                        _mem_save_dummy1_0 = NDR_PULL_GET_MEM_CTX(ndr);
 
7851
                        NDR_PULL_SET_MEM_CTX(ndr, r->dummy1, 0);
 
7852
                        NDR_CHECK(ndr_pull_array_size(ndr, &r->dummy1));
 
7853
                        NDR_CHECK(ndr_pull_array_length(ndr, &r->dummy1));
 
7854
                        if (ndr_get_array_length(ndr, &r->dummy1) > ndr_get_array_size(ndr, &r->dummy1)) {
 
7855
                                return ndr_pull_error(ndr, NDR_ERR_ARRAY_SIZE, "Bad array size %u should exceed array length %u", ndr_get_array_size(ndr, &r->dummy1), ndr_get_array_length(ndr, &r->dummy1));
 
7856
                        }
 
7857
                        NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->dummy1), sizeof(uint16_t)));
 
7858
                        NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->dummy1, ndr_get_array_length(ndr, &r->dummy1), sizeof(uint16_t), CH_UTF16));
 
7859
                        NDR_PULL_SET_MEM_CTX(ndr, _mem_save_dummy1_0, 0);
 
7860
                }
 
7861
                if (r->dummy2) {
 
7862
                        _mem_save_dummy2_0 = NDR_PULL_GET_MEM_CTX(ndr);
 
7863
                        NDR_PULL_SET_MEM_CTX(ndr, r->dummy2, 0);
 
7864
                        NDR_CHECK(ndr_pull_array_size(ndr, &r->dummy2));
 
7865
                        NDR_CHECK(ndr_pull_array_length(ndr, &r->dummy2));
 
7866
                        if (ndr_get_array_length(ndr, &r->dummy2) > ndr_get_array_size(ndr, &r->dummy2)) {
 
7867
                                return ndr_pull_error(ndr, NDR_ERR_ARRAY_SIZE, "Bad array size %u should exceed array length %u", ndr_get_array_size(ndr, &r->dummy2), ndr_get_array_length(ndr, &r->dummy2));
 
7868
                        }
 
7869
                        NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->dummy2), sizeof(uint16_t)));
 
7870
                        NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->dummy2, ndr_get_array_length(ndr, &r->dummy2), sizeof(uint16_t), CH_UTF16));
 
7871
                        NDR_PULL_SET_MEM_CTX(ndr, _mem_save_dummy2_0, 0);
 
7872
                }
 
7873
                if (r->dummy3) {
 
7874
                        _mem_save_dummy3_0 = NDR_PULL_GET_MEM_CTX(ndr);
 
7875
                        NDR_PULL_SET_MEM_CTX(ndr, r->dummy3, 0);
 
7876
                        NDR_CHECK(ndr_pull_array_size(ndr, &r->dummy3));
 
7877
                        NDR_CHECK(ndr_pull_array_length(ndr, &r->dummy3));
 
7878
                        if (ndr_get_array_length(ndr, &r->dummy3) > ndr_get_array_size(ndr, &r->dummy3)) {
 
7879
                                return ndr_pull_error(ndr, NDR_ERR_ARRAY_SIZE, "Bad array size %u should exceed array length %u", ndr_get_array_size(ndr, &r->dummy3), ndr_get_array_length(ndr, &r->dummy3));
 
7880
                        }
 
7881
                        NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->dummy3), sizeof(uint16_t)));
 
7882
                        NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->dummy3, ndr_get_array_length(ndr, &r->dummy3), sizeof(uint16_t), CH_UTF16));
 
7883
                        NDR_PULL_SET_MEM_CTX(ndr, _mem_save_dummy3_0, 0);
 
7884
                }
 
7885
                if (r->dummy4) {
 
7886
                        _mem_save_dummy4_0 = NDR_PULL_GET_MEM_CTX(ndr);
 
7887
                        NDR_PULL_SET_MEM_CTX(ndr, r->dummy4, 0);
 
7888
                        NDR_CHECK(ndr_pull_array_size(ndr, &r->dummy4));
 
7889
                        NDR_CHECK(ndr_pull_array_length(ndr, &r->dummy4));
 
7890
                        if (ndr_get_array_length(ndr, &r->dummy4) > ndr_get_array_size(ndr, &r->dummy4)) {
 
7891
                                return ndr_pull_error(ndr, NDR_ERR_ARRAY_SIZE, "Bad array size %u should exceed array length %u", ndr_get_array_size(ndr, &r->dummy4), ndr_get_array_length(ndr, &r->dummy4));
 
7892
                        }
 
7893
                        NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->dummy4), sizeof(uint16_t)));
 
7894
                        NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->dummy4, ndr_get_array_length(ndr, &r->dummy4), sizeof(uint16_t), CH_UTF16));
 
7895
                        NDR_PULL_SET_MEM_CTX(ndr, _mem_save_dummy4_0, 0);
 
7896
                }
 
7897
                NDR_CHECK(ndr_pull_netr_OsVersionContainer(ndr, NDR_BUFFERS, &r->os_version));
 
7898
                NDR_CHECK(ndr_pull_lsa_String(ndr, NDR_BUFFERS, &r->os_name));
 
7899
                NDR_CHECK(ndr_pull_lsa_String(ndr, NDR_BUFFERS, &r->dummy_string3));
 
7900
                NDR_CHECK(ndr_pull_lsa_String(ndr, NDR_BUFFERS, &r->dummy_string4));
 
7901
        }
 
7902
        return NDR_ERR_SUCCESS;
 
7903
}
 
7904
 
 
7905
_PUBLIC_ void ndr_print_netr_WorkstationInformation(struct ndr_print *ndr, const char *name, const struct netr_WorkstationInformation *r)
 
7906
{
 
7907
        ndr_print_struct(ndr, name, "netr_WorkstationInformation");
 
7908
        ndr->depth++;
 
7909
        ndr_print_netr_LsaPolicyInformation(ndr, "lsa_policy", &r->lsa_policy);
 
7910
        ndr_print_ptr(ndr, "dns_hostname", r->dns_hostname);
 
7911
        ndr->depth++;
 
7912
        if (r->dns_hostname) {
 
7913
                ndr_print_string(ndr, "dns_hostname", r->dns_hostname);
 
7914
        }
 
7915
        ndr->depth--;
 
7916
        ndr_print_ptr(ndr, "sitename", r->sitename);
 
7917
        ndr->depth++;
 
7918
        if (r->sitename) {
 
7919
                ndr_print_string(ndr, "sitename", r->sitename);
 
7920
        }
 
7921
        ndr->depth--;
 
7922
        ndr_print_ptr(ndr, "dummy1", r->dummy1);
 
7923
        ndr->depth++;
 
7924
        if (r->dummy1) {
 
7925
                ndr_print_string(ndr, "dummy1", r->dummy1);
 
7926
        }
 
7927
        ndr->depth--;
 
7928
        ndr_print_ptr(ndr, "dummy2", r->dummy2);
 
7929
        ndr->depth++;
 
7930
        if (r->dummy2) {
 
7931
                ndr_print_string(ndr, "dummy2", r->dummy2);
 
7932
        }
 
7933
        ndr->depth--;
 
7934
        ndr_print_ptr(ndr, "dummy3", r->dummy3);
 
7935
        ndr->depth++;
 
7936
        if (r->dummy3) {
 
7937
                ndr_print_string(ndr, "dummy3", r->dummy3);
 
7938
        }
 
7939
        ndr->depth--;
 
7940
        ndr_print_ptr(ndr, "dummy4", r->dummy4);
 
7941
        ndr->depth++;
 
7942
        if (r->dummy4) {
 
7943
                ndr_print_string(ndr, "dummy4", r->dummy4);
 
7944
        }
 
7945
        ndr->depth--;
 
7946
        ndr_print_netr_OsVersionContainer(ndr, "os_version", &r->os_version);
 
7947
        ndr_print_lsa_String(ndr, "os_name", &r->os_name);
 
7948
        ndr_print_lsa_String(ndr, "dummy_string3", &r->dummy_string3);
 
7949
        ndr_print_lsa_String(ndr, "dummy_string4", &r->dummy_string4);
 
7950
        ndr_print_netr_WorkstationFlags(ndr, "workstation_flags", r->workstation_flags);
 
7951
        ndr_print_uint32(ndr, "dummy_long2", r->dummy_long2);
 
7952
        ndr_print_uint32(ndr, "dummy_long3", r->dummy_long3);
 
7953
        ndr_print_uint32(ndr, "dummy_long4", r->dummy_long4);
 
7954
        ndr->depth--;
 
7955
}
 
7956
 
 
7957
static enum ndr_err_code ndr_push_netr_WorkstationInfo(struct ndr_push *ndr, int ndr_flags, const union netr_WorkstationInfo *r)
 
7958
{
 
7959
        if (ndr_flags & NDR_SCALARS) {
 
7960
                int level = ndr_push_get_switch_value(ndr, r);
 
7961
                NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, level));
 
7962
                NDR_CHECK(ndr_push_union_align(ndr, 5));
 
7963
                switch (level) {
 
7964
                        case 1: {
 
7965
                                NDR_CHECK(ndr_push_unique_ptr(ndr, r->workstation_info));
 
7966
                        break; }
 
7967
 
 
7968
                        case 2: {
 
7969
                                NDR_CHECK(ndr_push_unique_ptr(ndr, r->lsa_policy_info));
 
7970
                        break; }
 
7971
 
 
7972
                        default:
 
7973
                                return ndr_push_error(ndr, NDR_ERR_BAD_SWITCH, "Bad switch value %u at %s", level, __location__);
 
7974
                }
 
7975
        }
 
7976
        if (ndr_flags & NDR_BUFFERS) {
 
7977
                int level = ndr_push_get_switch_value(ndr, r);
 
7978
                switch (level) {
 
7979
                        case 1:
 
7980
                                if (r->workstation_info) {
 
7981
                                        NDR_CHECK(ndr_push_netr_WorkstationInformation(ndr, NDR_SCALARS|NDR_BUFFERS, r->workstation_info));
 
7982
                                }
 
7983
                        break;
 
7984
 
 
7985
                        case 2:
 
7986
                                if (r->lsa_policy_info) {
 
7987
                                        NDR_CHECK(ndr_push_netr_WorkstationInformation(ndr, NDR_SCALARS|NDR_BUFFERS, r->lsa_policy_info));
 
7988
                                }
 
7989
                        break;
 
7990
 
 
7991
                        default:
 
7992
                                return ndr_push_error(ndr, NDR_ERR_BAD_SWITCH, "Bad switch value %u at %s", level, __location__);
 
7993
                }
 
7994
        }
 
7995
        return NDR_ERR_SUCCESS;
 
7996
}
 
7997
 
 
7998
static enum ndr_err_code ndr_pull_netr_WorkstationInfo(struct ndr_pull *ndr, int ndr_flags, union netr_WorkstationInfo *r)
 
7999
{
 
8000
        int level;
 
8001
        uint32_t _level;
 
8002
        TALLOC_CTX *_mem_save_workstation_info_0;
 
8003
        TALLOC_CTX *_mem_save_lsa_policy_info_0;
 
8004
        level = ndr_pull_get_switch_value(ndr, r);
 
8005
        if (ndr_flags & NDR_SCALARS) {
 
8006
                NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &_level));
 
8007
                if (_level != level) {
 
8008
                        return ndr_pull_error(ndr, NDR_ERR_BAD_SWITCH, "Bad switch value %u for r at %s", _level, __location__);
 
8009
                }
 
8010
                NDR_CHECK(ndr_pull_union_align(ndr, 5));
 
8011
                switch (level) {
 
8012
                        case 1: {
 
8013
                                uint32_t _ptr_workstation_info;
 
8014
                                NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_workstation_info));
 
8015
                                if (_ptr_workstation_info) {
 
8016
                                        NDR_PULL_ALLOC(ndr, r->workstation_info);
 
8017
                                } else {
 
8018
                                        r->workstation_info = NULL;
 
8019
                                }
 
8020
                        break; }
 
8021
 
 
8022
                        case 2: {
 
8023
                                uint32_t _ptr_lsa_policy_info;
 
8024
                                NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_lsa_policy_info));
 
8025
                                if (_ptr_lsa_policy_info) {
 
8026
                                        NDR_PULL_ALLOC(ndr, r->lsa_policy_info);
 
8027
                                } else {
 
8028
                                        r->lsa_policy_info = NULL;
 
8029
                                }
 
8030
                        break; }
 
8031
 
 
8032
                        default:
 
8033
                                return ndr_pull_error(ndr, NDR_ERR_BAD_SWITCH, "Bad switch value %u at %s", level, __location__);
 
8034
                }
 
8035
        }
 
8036
        if (ndr_flags & NDR_BUFFERS) {
 
8037
                switch (level) {
 
8038
                        case 1:
 
8039
                                if (r->workstation_info) {
 
8040
                                        _mem_save_workstation_info_0 = NDR_PULL_GET_MEM_CTX(ndr);
 
8041
                                        NDR_PULL_SET_MEM_CTX(ndr, r->workstation_info, 0);
 
8042
                                        NDR_CHECK(ndr_pull_netr_WorkstationInformation(ndr, NDR_SCALARS|NDR_BUFFERS, r->workstation_info));
 
8043
                                        NDR_PULL_SET_MEM_CTX(ndr, _mem_save_workstation_info_0, 0);
 
8044
                                }
 
8045
                        break;
 
8046
 
 
8047
                        case 2:
 
8048
                                if (r->lsa_policy_info) {
 
8049
                                        _mem_save_lsa_policy_info_0 = NDR_PULL_GET_MEM_CTX(ndr);
 
8050
                                        NDR_PULL_SET_MEM_CTX(ndr, r->lsa_policy_info, 0);
 
8051
                                        NDR_CHECK(ndr_pull_netr_WorkstationInformation(ndr, NDR_SCALARS|NDR_BUFFERS, r->lsa_policy_info));
 
8052
                                        NDR_PULL_SET_MEM_CTX(ndr, _mem_save_lsa_policy_info_0, 0);
 
8053
                                }
 
8054
                        break;
 
8055
 
 
8056
                        default:
 
8057
                                return ndr_pull_error(ndr, NDR_ERR_BAD_SWITCH, "Bad switch value %u at %s", level, __location__);
 
8058
                }
 
8059
        }
 
8060
        return NDR_ERR_SUCCESS;
 
8061
}
 
8062
 
 
8063
_PUBLIC_ void ndr_print_netr_WorkstationInfo(struct ndr_print *ndr, const char *name, const union netr_WorkstationInfo *r)
 
8064
{
 
8065
        int level;
 
8066
        level = ndr_print_get_switch_value(ndr, r);
 
8067
        ndr_print_union(ndr, name, level, "netr_WorkstationInfo");
 
8068
        switch (level) {
 
8069
                case 1:
 
8070
                        ndr_print_ptr(ndr, "workstation_info", r->workstation_info);
 
8071
                        ndr->depth++;
 
8072
                        if (r->workstation_info) {
 
8073
                                ndr_print_netr_WorkstationInformation(ndr, "workstation_info", r->workstation_info);
 
8074
                        }
 
8075
                        ndr->depth--;
 
8076
                break;
 
8077
 
 
8078
                case 2:
 
8079
                        ndr_print_ptr(ndr, "lsa_policy_info", r->lsa_policy_info);
 
8080
                        ndr->depth++;
 
8081
                        if (r->lsa_policy_info) {
 
8082
                                ndr_print_netr_WorkstationInformation(ndr, "lsa_policy_info", r->lsa_policy_info);
 
8083
                        }
 
8084
                        ndr->depth--;
 
8085
                break;
 
8086
 
 
8087
                default:
 
8088
                        ndr_print_bad_level(ndr, name, level);
 
8089
        }
 
8090
}
 
8091
 
 
8092
static enum ndr_err_code ndr_push_netr_trust_extension(struct ndr_push *ndr, int ndr_flags, const struct netr_trust_extension *r)
 
8093
{
 
8094
        if (ndr_flags & NDR_SCALARS) {
 
8095
                NDR_CHECK(ndr_push_align(ndr, 4));
 
8096
                NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 8));
 
8097
                NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0));
 
8098
                NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 8));
 
8099
                NDR_CHECK(ndr_push_netr_TrustFlags(ndr, NDR_SCALARS, r->flags));
 
8100
                NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->parent_index));
 
8101
                NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->trust_type));
 
8102
                NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->trust_attributes));
 
8103
                NDR_CHECK(ndr_push_trailer_align(ndr, 4));
 
8104
        }
 
8105
        if (ndr_flags & NDR_BUFFERS) {
 
8106
        }
 
8107
        return NDR_ERR_SUCCESS;
 
8108
}
 
8109
 
 
8110
static enum ndr_err_code ndr_pull_netr_trust_extension(struct ndr_pull *ndr, int ndr_flags, struct netr_trust_extension *r)
 
8111
{
 
8112
        if (ndr_flags & NDR_SCALARS) {
 
8113
                NDR_CHECK(ndr_pull_align(ndr, 4));
 
8114
                NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->length));
 
8115
                NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->dummy));
 
8116
                NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->size));
 
8117
                NDR_CHECK(ndr_pull_netr_TrustFlags(ndr, NDR_SCALARS, &r->flags));
 
8118
                NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->parent_index));
 
8119
                NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->trust_type));
 
8120
                NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->trust_attributes));
 
8121
                NDR_CHECK(ndr_pull_trailer_align(ndr, 4));
 
8122
        }
 
8123
        if (ndr_flags & NDR_BUFFERS) {
 
8124
        }
 
8125
        return NDR_ERR_SUCCESS;
 
8126
}
 
8127
 
 
8128
_PUBLIC_ void ndr_print_netr_trust_extension(struct ndr_print *ndr, const char *name, const struct netr_trust_extension *r)
 
8129
{
 
8130
        ndr_print_struct(ndr, name, "netr_trust_extension");
 
8131
        ndr->depth++;
 
8132
        ndr_print_uint32(ndr, "length", (ndr->flags & LIBNDR_PRINT_SET_VALUES)?8:r->length);
 
8133
        ndr_print_uint32(ndr, "dummy", (ndr->flags & LIBNDR_PRINT_SET_VALUES)?0:r->dummy);
 
8134
        ndr_print_uint32(ndr, "size", (ndr->flags & LIBNDR_PRINT_SET_VALUES)?8:r->size);
 
8135
        ndr_print_netr_TrustFlags(ndr, "flags", r->flags);
 
8136
        ndr_print_uint32(ndr, "parent_index", r->parent_index);
 
8137
        ndr_print_uint32(ndr, "trust_type", r->trust_type);
 
8138
        ndr_print_uint32(ndr, "trust_attributes", r->trust_attributes);
 
8139
        ndr->depth--;
 
8140
}
 
8141
 
 
8142
static enum ndr_err_code ndr_push_netr_trust_extension_container(struct ndr_push *ndr, int ndr_flags, const struct netr_trust_extension_container *r)
 
8143
{
 
8144
        if (ndr_flags & NDR_SCALARS) {
 
8145
                NDR_CHECK(ndr_push_align(ndr, 5));
 
8146
                NDR_CHECK(ndr_push_uint16(ndr, NDR_SCALARS, r->length));
 
8147
                NDR_CHECK(ndr_push_uint16(ndr, NDR_SCALARS, r->length));
 
8148
                NDR_CHECK(ndr_push_unique_ptr(ndr, r->info));
 
8149
                NDR_CHECK(ndr_push_trailer_align(ndr, 5));
 
8150
        }
 
8151
        if (ndr_flags & NDR_BUFFERS) {
 
8152
                if (r->info) {
 
8153
                        NDR_CHECK(ndr_push_netr_trust_extension(ndr, NDR_SCALARS, r->info));
 
8154
                }
 
8155
        }
 
8156
        return NDR_ERR_SUCCESS;
 
8157
}
 
8158
 
 
8159
static enum ndr_err_code ndr_pull_netr_trust_extension_container(struct ndr_pull *ndr, int ndr_flags, struct netr_trust_extension_container *r)
 
8160
{
 
8161
        uint32_t _ptr_info;
 
8162
        TALLOC_CTX *_mem_save_info_0;
 
8163
        if (ndr_flags & NDR_SCALARS) {
 
8164
                NDR_CHECK(ndr_pull_align(ndr, 5));
 
8165
                NDR_CHECK(ndr_pull_uint16(ndr, NDR_SCALARS, &r->length));
 
8166
                NDR_CHECK(ndr_pull_uint16(ndr, NDR_SCALARS, &r->size));
 
8167
                NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_info));
 
8168
                if (_ptr_info) {
 
8169
                        NDR_PULL_ALLOC(ndr, r->info);
 
8170
                } else {
 
8171
                        r->info = NULL;
 
8172
                }
 
8173
                NDR_CHECK(ndr_pull_trailer_align(ndr, 5));
 
8174
        }
 
8175
        if (ndr_flags & NDR_BUFFERS) {
 
8176
                if (r->info) {
 
8177
                        _mem_save_info_0 = NDR_PULL_GET_MEM_CTX(ndr);
 
8178
                        NDR_PULL_SET_MEM_CTX(ndr, r->info, 0);
 
8179
                        NDR_CHECK(ndr_pull_netr_trust_extension(ndr, NDR_SCALARS, r->info));
 
8180
                        NDR_PULL_SET_MEM_CTX(ndr, _mem_save_info_0, 0);
 
8181
                }
 
8182
        }
 
8183
        return NDR_ERR_SUCCESS;
 
8184
}
 
8185
 
 
8186
_PUBLIC_ void ndr_print_netr_trust_extension_container(struct ndr_print *ndr, const char *name, const struct netr_trust_extension_container *r)
 
8187
{
 
8188
        ndr_print_struct(ndr, name, "netr_trust_extension_container");
 
8189
        ndr->depth++;
 
8190
        ndr_print_uint16(ndr, "length", r->length);
 
8191
        ndr_print_uint16(ndr, "size", (ndr->flags & LIBNDR_PRINT_SET_VALUES)?r->length:r->size);
 
8192
        ndr_print_ptr(ndr, "info", r->info);
 
8193
        ndr->depth++;
 
8194
        if (r->info) {
 
8195
                ndr_print_netr_trust_extension(ndr, "info", r->info);
 
8196
        }
 
8197
        ndr->depth--;
 
8198
        ndr->depth--;
 
8199
}
 
8200
 
 
8201
static enum ndr_err_code ndr_push_netr_OneDomainInfo(struct ndr_push *ndr, int ndr_flags, const struct netr_OneDomainInfo *r)
 
8202
{
 
8203
        if (ndr_flags & NDR_SCALARS) {
 
8204
                NDR_CHECK(ndr_push_align(ndr, 5));
 
8205
                NDR_CHECK(ndr_push_lsa_StringLarge(ndr, NDR_SCALARS, &r->domainname));
 
8206
                NDR_CHECK(ndr_push_lsa_StringLarge(ndr, NDR_SCALARS, &r->dns_domainname));
 
8207
                NDR_CHECK(ndr_push_lsa_StringLarge(ndr, NDR_SCALARS, &r->dns_forestname));
 
8208
                NDR_CHECK(ndr_push_GUID(ndr, NDR_SCALARS, &r->domain_guid));
 
8209
                NDR_CHECK(ndr_push_unique_ptr(ndr, r->domain_sid));
 
8210
                NDR_CHECK(ndr_push_netr_trust_extension_container(ndr, NDR_SCALARS, &r->trust_extension));
 
8211
                NDR_CHECK(ndr_push_lsa_StringLarge(ndr, NDR_SCALARS, &r->dummy_string2));
 
8212
                NDR_CHECK(ndr_push_lsa_StringLarge(ndr, NDR_SCALARS, &r->dummy_string3));
 
8213
                NDR_CHECK(ndr_push_lsa_StringLarge(ndr, NDR_SCALARS, &r->dummy_string4));
 
8214
                NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->dummy_long1));
 
8215
                NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->dummy_long2));
 
8216
                NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->dummy_long3));
 
8217
                NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->dummy_long4));
 
8218
                NDR_CHECK(ndr_push_trailer_align(ndr, 5));
 
8219
        }
 
8220
        if (ndr_flags & NDR_BUFFERS) {
 
8221
                NDR_CHECK(ndr_push_lsa_StringLarge(ndr, NDR_BUFFERS, &r->domainname));
 
8222
                NDR_CHECK(ndr_push_lsa_StringLarge(ndr, NDR_BUFFERS, &r->dns_domainname));
 
8223
                NDR_CHECK(ndr_push_lsa_StringLarge(ndr, NDR_BUFFERS, &r->dns_forestname));
 
8224
                if (r->domain_sid) {
 
8225
                        NDR_CHECK(ndr_push_dom_sid2(ndr, NDR_SCALARS|NDR_BUFFERS, r->domain_sid));
 
8226
                }
 
8227
                NDR_CHECK(ndr_push_netr_trust_extension_container(ndr, NDR_BUFFERS, &r->trust_extension));
 
8228
                NDR_CHECK(ndr_push_lsa_StringLarge(ndr, NDR_BUFFERS, &r->dummy_string2));
 
8229
                NDR_CHECK(ndr_push_lsa_StringLarge(ndr, NDR_BUFFERS, &r->dummy_string3));
 
8230
                NDR_CHECK(ndr_push_lsa_StringLarge(ndr, NDR_BUFFERS, &r->dummy_string4));
 
8231
        }
 
8232
        return NDR_ERR_SUCCESS;
 
8233
}
 
8234
 
 
8235
static enum ndr_err_code ndr_pull_netr_OneDomainInfo(struct ndr_pull *ndr, int ndr_flags, struct netr_OneDomainInfo *r)
 
8236
{
 
8237
        uint32_t _ptr_domain_sid;
 
8238
        TALLOC_CTX *_mem_save_domain_sid_0;
 
8239
        if (ndr_flags & NDR_SCALARS) {
 
8240
                NDR_CHECK(ndr_pull_align(ndr, 5));
 
8241
                NDR_CHECK(ndr_pull_lsa_StringLarge(ndr, NDR_SCALARS, &r->domainname));
 
8242
                NDR_CHECK(ndr_pull_lsa_StringLarge(ndr, NDR_SCALARS, &r->dns_domainname));
 
8243
                NDR_CHECK(ndr_pull_lsa_StringLarge(ndr, NDR_SCALARS, &r->dns_forestname));
 
8244
                NDR_CHECK(ndr_pull_GUID(ndr, NDR_SCALARS, &r->domain_guid));
 
8245
                NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_domain_sid));
 
8246
                if (_ptr_domain_sid) {
 
8247
                        NDR_PULL_ALLOC(ndr, r->domain_sid);
 
8248
                } else {
 
8249
                        r->domain_sid = NULL;
 
8250
                }
 
8251
                NDR_CHECK(ndr_pull_netr_trust_extension_container(ndr, NDR_SCALARS, &r->trust_extension));
 
8252
                NDR_CHECK(ndr_pull_lsa_StringLarge(ndr, NDR_SCALARS, &r->dummy_string2));
 
8253
                NDR_CHECK(ndr_pull_lsa_StringLarge(ndr, NDR_SCALARS, &r->dummy_string3));
 
8254
                NDR_CHECK(ndr_pull_lsa_StringLarge(ndr, NDR_SCALARS, &r->dummy_string4));
 
8255
                NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->dummy_long1));
 
8256
                NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->dummy_long2));
 
8257
                NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->dummy_long3));
 
8258
                NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->dummy_long4));
 
8259
                NDR_CHECK(ndr_pull_trailer_align(ndr, 5));
 
8260
        }
 
8261
        if (ndr_flags & NDR_BUFFERS) {
 
8262
                NDR_CHECK(ndr_pull_lsa_StringLarge(ndr, NDR_BUFFERS, &r->domainname));
 
8263
                NDR_CHECK(ndr_pull_lsa_StringLarge(ndr, NDR_BUFFERS, &r->dns_domainname));
 
8264
                NDR_CHECK(ndr_pull_lsa_StringLarge(ndr, NDR_BUFFERS, &r->dns_forestname));
 
8265
                if (r->domain_sid) {
 
8266
                        _mem_save_domain_sid_0 = NDR_PULL_GET_MEM_CTX(ndr);
 
8267
                        NDR_PULL_SET_MEM_CTX(ndr, r->domain_sid, 0);
 
8268
                        NDR_CHECK(ndr_pull_dom_sid2(ndr, NDR_SCALARS|NDR_BUFFERS, r->domain_sid));
 
8269
                        NDR_PULL_SET_MEM_CTX(ndr, _mem_save_domain_sid_0, 0);
 
8270
                }
 
8271
                NDR_CHECK(ndr_pull_netr_trust_extension_container(ndr, NDR_BUFFERS, &r->trust_extension));
 
8272
                NDR_CHECK(ndr_pull_lsa_StringLarge(ndr, NDR_BUFFERS, &r->dummy_string2));
 
8273
                NDR_CHECK(ndr_pull_lsa_StringLarge(ndr, NDR_BUFFERS, &r->dummy_string3));
 
8274
                NDR_CHECK(ndr_pull_lsa_StringLarge(ndr, NDR_BUFFERS, &r->dummy_string4));
 
8275
        }
 
8276
        return NDR_ERR_SUCCESS;
 
8277
}
 
8278
 
 
8279
_PUBLIC_ void ndr_print_netr_OneDomainInfo(struct ndr_print *ndr, const char *name, const struct netr_OneDomainInfo *r)
 
8280
{
 
8281
        ndr_print_struct(ndr, name, "netr_OneDomainInfo");
 
8282
        ndr->depth++;
 
8283
        ndr_print_lsa_StringLarge(ndr, "domainname", &r->domainname);
 
8284
        ndr_print_lsa_StringLarge(ndr, "dns_domainname", &r->dns_domainname);
 
8285
        ndr_print_lsa_StringLarge(ndr, "dns_forestname", &r->dns_forestname);
 
8286
        ndr_print_GUID(ndr, "domain_guid", &r->domain_guid);
 
8287
        ndr_print_ptr(ndr, "domain_sid", r->domain_sid);
 
8288
        ndr->depth++;
 
8289
        if (r->domain_sid) {
 
8290
                ndr_print_dom_sid2(ndr, "domain_sid", r->domain_sid);
 
8291
        }
 
8292
        ndr->depth--;
 
8293
        ndr_print_netr_trust_extension_container(ndr, "trust_extension", &r->trust_extension);
 
8294
        ndr_print_lsa_StringLarge(ndr, "dummy_string2", &r->dummy_string2);
 
8295
        ndr_print_lsa_StringLarge(ndr, "dummy_string3", &r->dummy_string3);
 
8296
        ndr_print_lsa_StringLarge(ndr, "dummy_string4", &r->dummy_string4);
 
8297
        ndr_print_uint32(ndr, "dummy_long1", r->dummy_long1);
 
8298
        ndr_print_uint32(ndr, "dummy_long2", r->dummy_long2);
 
8299
        ndr_print_uint32(ndr, "dummy_long3", r->dummy_long3);
 
8300
        ndr_print_uint32(ndr, "dummy_long4", r->dummy_long4);
 
8301
        ndr->depth--;
 
8302
}
 
8303
 
 
8304
_PUBLIC_ enum ndr_err_code ndr_push_netr_SupportedEncTypes(struct ndr_push *ndr, int ndr_flags, uint32_t r)
 
8305
{
 
8306
        NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r));
 
8307
        return NDR_ERR_SUCCESS;
 
8308
}
 
8309
 
 
8310
_PUBLIC_ enum ndr_err_code ndr_pull_netr_SupportedEncTypes(struct ndr_pull *ndr, int ndr_flags, uint32_t *r)
 
8311
{
 
8312
        uint32_t v;
 
8313
        NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &v));
 
8314
        *r = v;
 
8315
        return NDR_ERR_SUCCESS;
 
8316
}
 
8317
 
 
8318
_PUBLIC_ void ndr_print_netr_SupportedEncTypes(struct ndr_print *ndr, const char *name, uint32_t r)
 
8319
{
 
8320
        ndr_print_uint32(ndr, name, r);
 
8321
        ndr->depth++;
 
8322
        ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "ENC_CRC32", ENC_CRC32, r);
 
8323
        ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "ENC_RSA_MD5", ENC_RSA_MD5, r);
 
8324
        ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "ENC_RC4_HMAC_MD5", ENC_RC4_HMAC_MD5, r);
 
8325
        ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "ENC_HMAC_SHA1_96_AES128", ENC_HMAC_SHA1_96_AES128, r);
 
8326
        ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "ENC_HMAC_SHA1_96_AES256", ENC_HMAC_SHA1_96_AES256, r);
 
8327
        ndr->depth--;
 
8328
}
 
8329
 
 
8330
static enum ndr_err_code ndr_push_netr_DomainInformation(struct ndr_push *ndr, int ndr_flags, const struct netr_DomainInformation *r)
 
8331
{
 
8332
        uint32_t cntr_trusted_domains_1;
 
8333
        if (ndr_flags & NDR_SCALARS) {
 
8334
                NDR_CHECK(ndr_push_align(ndr, 5));
 
8335
                NDR_CHECK(ndr_push_netr_OneDomainInfo(ndr, NDR_SCALARS, &r->primary_domain));
 
8336
                NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->trusted_domain_count));
 
8337
                NDR_CHECK(ndr_push_unique_ptr(ndr, r->trusted_domains));
 
8338
                NDR_CHECK(ndr_push_netr_LsaPolicyInformation(ndr, NDR_SCALARS, &r->lsa_policy));
 
8339
                NDR_CHECK(ndr_push_lsa_StringLarge(ndr, NDR_SCALARS, &r->dns_hostname));
 
8340
                NDR_CHECK(ndr_push_lsa_StringLarge(ndr, NDR_SCALARS, &r->dummy_string2));
 
8341
                NDR_CHECK(ndr_push_lsa_StringLarge(ndr, NDR_SCALARS, &r->dummy_string3));
 
8342
                NDR_CHECK(ndr_push_lsa_StringLarge(ndr, NDR_SCALARS, &r->dummy_string4));
 
8343
                NDR_CHECK(ndr_push_netr_WorkstationFlags(ndr, NDR_SCALARS, r->workstation_flags));
 
8344
                NDR_CHECK(ndr_push_netr_SupportedEncTypes(ndr, NDR_SCALARS, r->supported_enc_types));
 
8345
                NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->dummy_long3));
 
8346
                NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->dummy_long4));
 
8347
                NDR_CHECK(ndr_push_trailer_align(ndr, 5));
 
8348
        }
 
8349
        if (ndr_flags & NDR_BUFFERS) {
 
8350
                NDR_CHECK(ndr_push_netr_OneDomainInfo(ndr, NDR_BUFFERS, &r->primary_domain));
 
8351
                if (r->trusted_domains) {
 
8352
                        NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, r->trusted_domain_count));
 
8353
                        for (cntr_trusted_domains_1 = 0; cntr_trusted_domains_1 < r->trusted_domain_count; cntr_trusted_domains_1++) {
 
8354
                                NDR_CHECK(ndr_push_netr_OneDomainInfo(ndr, NDR_SCALARS, &r->trusted_domains[cntr_trusted_domains_1]));
 
8355
                        }
 
8356
                        for (cntr_trusted_domains_1 = 0; cntr_trusted_domains_1 < r->trusted_domain_count; cntr_trusted_domains_1++) {
 
8357
                                NDR_CHECK(ndr_push_netr_OneDomainInfo(ndr, NDR_BUFFERS, &r->trusted_domains[cntr_trusted_domains_1]));
 
8358
                        }
 
8359
                }
 
8360
                NDR_CHECK(ndr_push_netr_LsaPolicyInformation(ndr, NDR_BUFFERS, &r->lsa_policy));
 
8361
                NDR_CHECK(ndr_push_lsa_StringLarge(ndr, NDR_BUFFERS, &r->dns_hostname));
 
8362
                NDR_CHECK(ndr_push_lsa_StringLarge(ndr, NDR_BUFFERS, &r->dummy_string2));
 
8363
                NDR_CHECK(ndr_push_lsa_StringLarge(ndr, NDR_BUFFERS, &r->dummy_string3));
 
8364
                NDR_CHECK(ndr_push_lsa_StringLarge(ndr, NDR_BUFFERS, &r->dummy_string4));
 
8365
        }
 
8366
        return NDR_ERR_SUCCESS;
 
8367
}
 
8368
 
 
8369
static enum ndr_err_code ndr_pull_netr_DomainInformation(struct ndr_pull *ndr, int ndr_flags, struct netr_DomainInformation *r)
 
8370
{
 
8371
        uint32_t _ptr_trusted_domains;
 
8372
        uint32_t cntr_trusted_domains_1;
 
8373
        TALLOC_CTX *_mem_save_trusted_domains_0;
 
8374
        TALLOC_CTX *_mem_save_trusted_domains_1;
 
8375
        if (ndr_flags & NDR_SCALARS) {
 
8376
                NDR_CHECK(ndr_pull_align(ndr, 5));
 
8377
                NDR_CHECK(ndr_pull_netr_OneDomainInfo(ndr, NDR_SCALARS, &r->primary_domain));
 
8378
                NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->trusted_domain_count));
 
8379
                NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_trusted_domains));
 
8380
                if (_ptr_trusted_domains) {
 
8381
                        NDR_PULL_ALLOC(ndr, r->trusted_domains);
 
8382
                } else {
 
8383
                        r->trusted_domains = NULL;
 
8384
                }
 
8385
                NDR_CHECK(ndr_pull_netr_LsaPolicyInformation(ndr, NDR_SCALARS, &r->lsa_policy));
 
8386
                NDR_CHECK(ndr_pull_lsa_StringLarge(ndr, NDR_SCALARS, &r->dns_hostname));
 
8387
                NDR_CHECK(ndr_pull_lsa_StringLarge(ndr, NDR_SCALARS, &r->dummy_string2));
 
8388
                NDR_CHECK(ndr_pull_lsa_StringLarge(ndr, NDR_SCALARS, &r->dummy_string3));
 
8389
                NDR_CHECK(ndr_pull_lsa_StringLarge(ndr, NDR_SCALARS, &r->dummy_string4));
 
8390
                NDR_CHECK(ndr_pull_netr_WorkstationFlags(ndr, NDR_SCALARS, &r->workstation_flags));
 
8391
                NDR_CHECK(ndr_pull_netr_SupportedEncTypes(ndr, NDR_SCALARS, &r->supported_enc_types));
 
8392
                NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->dummy_long3));
 
8393
                NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->dummy_long4));
 
8394
                NDR_CHECK(ndr_pull_trailer_align(ndr, 5));
 
8395
        }
 
8396
        if (ndr_flags & NDR_BUFFERS) {
 
8397
                NDR_CHECK(ndr_pull_netr_OneDomainInfo(ndr, NDR_BUFFERS, &r->primary_domain));
 
8398
                if (r->trusted_domains) {
 
8399
                        _mem_save_trusted_domains_0 = NDR_PULL_GET_MEM_CTX(ndr);
 
8400
                        NDR_PULL_SET_MEM_CTX(ndr, r->trusted_domains, 0);
 
8401
                        NDR_CHECK(ndr_pull_array_size(ndr, &r->trusted_domains));
 
8402
                        NDR_PULL_ALLOC_N(ndr, r->trusted_domains, ndr_get_array_size(ndr, &r->trusted_domains));
 
8403
                        _mem_save_trusted_domains_1 = NDR_PULL_GET_MEM_CTX(ndr);
 
8404
                        NDR_PULL_SET_MEM_CTX(ndr, r->trusted_domains, 0);
 
8405
                        for (cntr_trusted_domains_1 = 0; cntr_trusted_domains_1 < r->trusted_domain_count; cntr_trusted_domains_1++) {
 
8406
                                NDR_CHECK(ndr_pull_netr_OneDomainInfo(ndr, NDR_SCALARS, &r->trusted_domains[cntr_trusted_domains_1]));
 
8407
                        }
 
8408
                        for (cntr_trusted_domains_1 = 0; cntr_trusted_domains_1 < r->trusted_domain_count; cntr_trusted_domains_1++) {
 
8409
                                NDR_CHECK(ndr_pull_netr_OneDomainInfo(ndr, NDR_BUFFERS, &r->trusted_domains[cntr_trusted_domains_1]));
 
8410
                        }
 
8411
                        NDR_PULL_SET_MEM_CTX(ndr, _mem_save_trusted_domains_1, 0);
 
8412
                        NDR_PULL_SET_MEM_CTX(ndr, _mem_save_trusted_domains_0, 0);
 
8413
                }
 
8414
                NDR_CHECK(ndr_pull_netr_LsaPolicyInformation(ndr, NDR_BUFFERS, &r->lsa_policy));
 
8415
                NDR_CHECK(ndr_pull_lsa_StringLarge(ndr, NDR_BUFFERS, &r->dns_hostname));
 
8416
                NDR_CHECK(ndr_pull_lsa_StringLarge(ndr, NDR_BUFFERS, &r->dummy_string2));
 
8417
                NDR_CHECK(ndr_pull_lsa_StringLarge(ndr, NDR_BUFFERS, &r->dummy_string3));
 
8418
                NDR_CHECK(ndr_pull_lsa_StringLarge(ndr, NDR_BUFFERS, &r->dummy_string4));
 
8419
                if (r->trusted_domains) {
 
8420
                        NDR_CHECK(ndr_check_array_size(ndr, (void*)&r->trusted_domains, r->trusted_domain_count));
 
8421
                }
 
8422
        }
 
8423
        return NDR_ERR_SUCCESS;
 
8424
}
 
8425
 
 
8426
_PUBLIC_ void ndr_print_netr_DomainInformation(struct ndr_print *ndr, const char *name, const struct netr_DomainInformation *r)
 
8427
{
 
8428
        uint32_t cntr_trusted_domains_1;
 
8429
        ndr_print_struct(ndr, name, "netr_DomainInformation");
 
8430
        ndr->depth++;
 
8431
        ndr_print_netr_OneDomainInfo(ndr, "primary_domain", &r->primary_domain);
 
8432
        ndr_print_uint32(ndr, "trusted_domain_count", r->trusted_domain_count);
 
8433
        ndr_print_ptr(ndr, "trusted_domains", r->trusted_domains);
 
8434
        ndr->depth++;
 
8435
        if (r->trusted_domains) {
 
8436
                ndr->print(ndr, "%s: ARRAY(%d)", "trusted_domains", (int)r->trusted_domain_count);
 
8437
                ndr->depth++;
 
8438
                for (cntr_trusted_domains_1=0;cntr_trusted_domains_1<r->trusted_domain_count;cntr_trusted_domains_1++) {
 
8439
                        char *idx_1=NULL;
 
8440
                        if (asprintf(&idx_1, "[%d]", cntr_trusted_domains_1) != -1) {
 
8441
                                ndr_print_netr_OneDomainInfo(ndr, "trusted_domains", &r->trusted_domains[cntr_trusted_domains_1]);
 
8442
                                free(idx_1);
 
8443
                        }
 
8444
                }
 
8445
                ndr->depth--;
 
8446
        }
 
8447
        ndr->depth--;
 
8448
        ndr_print_netr_LsaPolicyInformation(ndr, "lsa_policy", &r->lsa_policy);
 
8449
        ndr_print_lsa_StringLarge(ndr, "dns_hostname", &r->dns_hostname);
 
8450
        ndr_print_lsa_StringLarge(ndr, "dummy_string2", &r->dummy_string2);
 
8451
        ndr_print_lsa_StringLarge(ndr, "dummy_string3", &r->dummy_string3);
 
8452
        ndr_print_lsa_StringLarge(ndr, "dummy_string4", &r->dummy_string4);
 
8453
        ndr_print_netr_WorkstationFlags(ndr, "workstation_flags", r->workstation_flags);
 
8454
        ndr_print_netr_SupportedEncTypes(ndr, "supported_enc_types", r->supported_enc_types);
 
8455
        ndr_print_uint32(ndr, "dummy_long3", r->dummy_long3);
 
8456
        ndr_print_uint32(ndr, "dummy_long4", r->dummy_long4);
 
8457
        ndr->depth--;
 
8458
}
 
8459
 
 
8460
static enum ndr_err_code ndr_push_netr_DomainInfo(struct ndr_push *ndr, int ndr_flags, const union netr_DomainInfo *r)
 
8461
{
 
8462
        if (ndr_flags & NDR_SCALARS) {
 
8463
                int level = ndr_push_get_switch_value(ndr, r);
 
8464
                NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, level));
 
8465
                NDR_CHECK(ndr_push_union_align(ndr, 5));
 
8466
                switch (level) {
 
8467
                        case 1: {
 
8468
                                NDR_CHECK(ndr_push_unique_ptr(ndr, r->domain_info));
 
8469
                        break; }
 
8470
 
 
8471
                        case 2: {
 
8472
                                NDR_CHECK(ndr_push_unique_ptr(ndr, r->lsa_policy_info));
 
8473
                        break; }
 
8474
 
 
8475
                        default:
 
8476
                                return ndr_push_error(ndr, NDR_ERR_BAD_SWITCH, "Bad switch value %u at %s", level, __location__);
 
8477
                }
 
8478
        }
 
8479
        if (ndr_flags & NDR_BUFFERS) {
 
8480
                int level = ndr_push_get_switch_value(ndr, r);
 
8481
                switch (level) {
 
8482
                        case 1:
 
8483
                                if (r->domain_info) {
 
8484
                                        NDR_CHECK(ndr_push_netr_DomainInformation(ndr, NDR_SCALARS|NDR_BUFFERS, r->domain_info));
 
8485
                                }
 
8486
                        break;
 
8487
 
 
8488
                        case 2:
 
8489
                                if (r->lsa_policy_info) {
 
8490
                                        NDR_CHECK(ndr_push_netr_LsaPolicyInformation(ndr, NDR_SCALARS|NDR_BUFFERS, r->lsa_policy_info));
 
8491
                                }
 
8492
                        break;
 
8493
 
 
8494
                        default:
 
8495
                                return ndr_push_error(ndr, NDR_ERR_BAD_SWITCH, "Bad switch value %u at %s", level, __location__);
 
8496
                }
 
8497
        }
 
8498
        return NDR_ERR_SUCCESS;
 
8499
}
 
8500
 
 
8501
static enum ndr_err_code ndr_pull_netr_DomainInfo(struct ndr_pull *ndr, int ndr_flags, union netr_DomainInfo *r)
 
8502
{
 
8503
        int level;
 
8504
        uint32_t _level;
 
8505
        TALLOC_CTX *_mem_save_domain_info_0;
 
8506
        TALLOC_CTX *_mem_save_lsa_policy_info_0;
 
8507
        level = ndr_pull_get_switch_value(ndr, r);
 
8508
        if (ndr_flags & NDR_SCALARS) {
 
8509
                NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &_level));
 
8510
                if (_level != level) {
 
8511
                        return ndr_pull_error(ndr, NDR_ERR_BAD_SWITCH, "Bad switch value %u for r at %s", _level, __location__);
 
8512
                }
 
8513
                NDR_CHECK(ndr_pull_union_align(ndr, 5));
 
8514
                switch (level) {
 
8515
                        case 1: {
 
8516
                                uint32_t _ptr_domain_info;
 
8517
                                NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_domain_info));
 
8518
                                if (_ptr_domain_info) {
 
8519
                                        NDR_PULL_ALLOC(ndr, r->domain_info);
 
8520
                                } else {
 
8521
                                        r->domain_info = NULL;
 
8522
                                }
 
8523
                        break; }
 
8524
 
 
8525
                        case 2: {
 
8526
                                uint32_t _ptr_lsa_policy_info;
 
8527
                                NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_lsa_policy_info));
 
8528
                                if (_ptr_lsa_policy_info) {
 
8529
                                        NDR_PULL_ALLOC(ndr, r->lsa_policy_info);
 
8530
                                } else {
 
8531
                                        r->lsa_policy_info = NULL;
 
8532
                                }
 
8533
                        break; }
 
8534
 
 
8535
                        default:
 
8536
                                return ndr_pull_error(ndr, NDR_ERR_BAD_SWITCH, "Bad switch value %u at %s", level, __location__);
 
8537
                }
 
8538
        }
 
8539
        if (ndr_flags & NDR_BUFFERS) {
 
8540
                switch (level) {
 
8541
                        case 1:
 
8542
                                if (r->domain_info) {
 
8543
                                        _mem_save_domain_info_0 = NDR_PULL_GET_MEM_CTX(ndr);
 
8544
                                        NDR_PULL_SET_MEM_CTX(ndr, r->domain_info, 0);
 
8545
                                        NDR_CHECK(ndr_pull_netr_DomainInformation(ndr, NDR_SCALARS|NDR_BUFFERS, r->domain_info));
 
8546
                                        NDR_PULL_SET_MEM_CTX(ndr, _mem_save_domain_info_0, 0);
 
8547
                                }
 
8548
                        break;
 
8549
 
 
8550
                        case 2:
 
8551
                                if (r->lsa_policy_info) {
 
8552
                                        _mem_save_lsa_policy_info_0 = NDR_PULL_GET_MEM_CTX(ndr);
 
8553
                                        NDR_PULL_SET_MEM_CTX(ndr, r->lsa_policy_info, 0);
 
8554
                                        NDR_CHECK(ndr_pull_netr_LsaPolicyInformation(ndr, NDR_SCALARS|NDR_BUFFERS, r->lsa_policy_info));
 
8555
                                        NDR_PULL_SET_MEM_CTX(ndr, _mem_save_lsa_policy_info_0, 0);
 
8556
                                }
 
8557
                        break;
 
8558
 
 
8559
                        default:
 
8560
                                return ndr_pull_error(ndr, NDR_ERR_BAD_SWITCH, "Bad switch value %u at %s", level, __location__);
 
8561
                }
 
8562
        }
 
8563
        return NDR_ERR_SUCCESS;
 
8564
}
 
8565
 
 
8566
_PUBLIC_ void ndr_print_netr_DomainInfo(struct ndr_print *ndr, const char *name, const union netr_DomainInfo *r)
 
8567
{
 
8568
        int level;
 
8569
        level = ndr_print_get_switch_value(ndr, r);
 
8570
        ndr_print_union(ndr, name, level, "netr_DomainInfo");
 
8571
        switch (level) {
 
8572
                case 1:
 
8573
                        ndr_print_ptr(ndr, "domain_info", r->domain_info);
 
8574
                        ndr->depth++;
 
8575
                        if (r->domain_info) {
 
8576
                                ndr_print_netr_DomainInformation(ndr, "domain_info", r->domain_info);
 
8577
                        }
 
8578
                        ndr->depth--;
 
8579
                break;
 
8580
 
 
8581
                case 2:
 
8582
                        ndr_print_ptr(ndr, "lsa_policy_info", r->lsa_policy_info);
 
8583
                        ndr->depth++;
 
8584
                        if (r->lsa_policy_info) {
 
8585
                                ndr_print_netr_LsaPolicyInformation(ndr, "lsa_policy_info", r->lsa_policy_info);
 
8586
                        }
 
8587
                        ndr->depth--;
 
8588
                break;
 
8589
 
 
8590
                default:
 
8591
                        ndr_print_bad_level(ndr, name, level);
 
8592
        }
 
8593
}
 
8594
 
 
8595
static enum ndr_err_code ndr_push_netr_CryptPassword(struct ndr_push *ndr, int ndr_flags, const struct netr_CryptPassword *r)
 
8596
{
 
8597
        {
 
8598
                uint32_t _flags_save_STRUCT = ndr->flags;
 
8599
                ndr_set_flags(&ndr->flags, LIBNDR_PRINT_ARRAY_HEX);
 
8600
                if (ndr_flags & NDR_SCALARS) {
 
8601
                        NDR_CHECK(ndr_push_align(ndr, 4));
 
8602
                        NDR_CHECK(ndr_push_array_uint8(ndr, NDR_SCALARS, r->data, 512));
 
8603
                        NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->length));
 
8604
                        NDR_CHECK(ndr_push_trailer_align(ndr, 4));
 
8605
                }
 
8606
                if (ndr_flags & NDR_BUFFERS) {
 
8607
                }
 
8608
                ndr->flags = _flags_save_STRUCT;
 
8609
        }
 
8610
        return NDR_ERR_SUCCESS;
 
8611
}
 
8612
 
 
8613
static enum ndr_err_code ndr_pull_netr_CryptPassword(struct ndr_pull *ndr, int ndr_flags, struct netr_CryptPassword *r)
 
8614
{
 
8615
        {
 
8616
                uint32_t _flags_save_STRUCT = ndr->flags;
 
8617
                ndr_set_flags(&ndr->flags, LIBNDR_PRINT_ARRAY_HEX);
 
8618
                if (ndr_flags & NDR_SCALARS) {
 
8619
                        NDR_CHECK(ndr_pull_align(ndr, 4));
 
8620
                        NDR_CHECK(ndr_pull_array_uint8(ndr, NDR_SCALARS, r->data, 512));
 
8621
                        NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->length));
 
8622
                        NDR_CHECK(ndr_pull_trailer_align(ndr, 4));
 
8623
                }
 
8624
                if (ndr_flags & NDR_BUFFERS) {
 
8625
                }
 
8626
                ndr->flags = _flags_save_STRUCT;
 
8627
        }
 
8628
        return NDR_ERR_SUCCESS;
 
8629
}
 
8630
 
 
8631
_PUBLIC_ void ndr_print_netr_CryptPassword(struct ndr_print *ndr, const char *name, const struct netr_CryptPassword *r)
 
8632
{
 
8633
        ndr_print_struct(ndr, name, "netr_CryptPassword");
 
8634
        {
 
8635
                uint32_t _flags_save_STRUCT = ndr->flags;
 
8636
                ndr_set_flags(&ndr->flags, LIBNDR_PRINT_ARRAY_HEX);
 
8637
                ndr->depth++;
 
8638
                ndr_print_array_uint8(ndr, "data", r->data, 512);
 
8639
                ndr_print_uint32(ndr, "length", r->length);
 
8640
                ndr->depth--;
 
8641
                ndr->flags = _flags_save_STRUCT;
 
8642
        }
 
8643
}
 
8644
 
 
8645
static enum ndr_err_code ndr_push_netr_DsRAddressToSitenamesWCtr(struct ndr_push *ndr, int ndr_flags, const struct netr_DsRAddressToSitenamesWCtr *r)
 
8646
{
 
8647
        uint32_t cntr_sitename_1;
 
8648
        if (ndr_flags & NDR_SCALARS) {
 
8649
                NDR_CHECK(ndr_push_align(ndr, 5));
 
8650
                NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->count));
 
8651
                NDR_CHECK(ndr_push_unique_ptr(ndr, r->sitename));
 
8652
                NDR_CHECK(ndr_push_trailer_align(ndr, 5));
 
8653
        }
 
8654
        if (ndr_flags & NDR_BUFFERS) {
 
8655
                if (r->sitename) {
 
8656
                        NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, r->count));
 
8657
                        for (cntr_sitename_1 = 0; cntr_sitename_1 < r->count; cntr_sitename_1++) {
 
8658
                                NDR_CHECK(ndr_push_lsa_String(ndr, NDR_SCALARS, &r->sitename[cntr_sitename_1]));
 
8659
                        }
 
8660
                        for (cntr_sitename_1 = 0; cntr_sitename_1 < r->count; cntr_sitename_1++) {
 
8661
                                NDR_CHECK(ndr_push_lsa_String(ndr, NDR_BUFFERS, &r->sitename[cntr_sitename_1]));
 
8662
                        }
 
8663
                }
 
8664
        }
 
8665
        return NDR_ERR_SUCCESS;
 
8666
}
 
8667
 
 
8668
static enum ndr_err_code ndr_pull_netr_DsRAddressToSitenamesWCtr(struct ndr_pull *ndr, int ndr_flags, struct netr_DsRAddressToSitenamesWCtr *r)
 
8669
{
 
8670
        uint32_t _ptr_sitename;
 
8671
        uint32_t cntr_sitename_1;
 
8672
        TALLOC_CTX *_mem_save_sitename_0;
 
8673
        TALLOC_CTX *_mem_save_sitename_1;
 
8674
        if (ndr_flags & NDR_SCALARS) {
 
8675
                NDR_CHECK(ndr_pull_align(ndr, 5));
 
8676
                NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->count));
 
8677
                NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_sitename));
 
8678
                if (_ptr_sitename) {
 
8679
                        NDR_PULL_ALLOC(ndr, r->sitename);
 
8680
                } else {
 
8681
                        r->sitename = NULL;
 
8682
                }
 
8683
                NDR_CHECK(ndr_pull_trailer_align(ndr, 5));
 
8684
        }
 
8685
        if (ndr_flags & NDR_BUFFERS) {
 
8686
                if (r->sitename) {
 
8687
                        _mem_save_sitename_0 = NDR_PULL_GET_MEM_CTX(ndr);
 
8688
                        NDR_PULL_SET_MEM_CTX(ndr, r->sitename, 0);
 
8689
                        NDR_CHECK(ndr_pull_array_size(ndr, &r->sitename));
 
8690
                        NDR_PULL_ALLOC_N(ndr, r->sitename, ndr_get_array_size(ndr, &r->sitename));
 
8691
                        _mem_save_sitename_1 = NDR_PULL_GET_MEM_CTX(ndr);
 
8692
                        NDR_PULL_SET_MEM_CTX(ndr, r->sitename, 0);
 
8693
                        for (cntr_sitename_1 = 0; cntr_sitename_1 < r->count; cntr_sitename_1++) {
 
8694
                                NDR_CHECK(ndr_pull_lsa_String(ndr, NDR_SCALARS, &r->sitename[cntr_sitename_1]));
 
8695
                        }
 
8696
                        for (cntr_sitename_1 = 0; cntr_sitename_1 < r->count; cntr_sitename_1++) {
 
8697
                                NDR_CHECK(ndr_pull_lsa_String(ndr, NDR_BUFFERS, &r->sitename[cntr_sitename_1]));
 
8698
                        }
 
8699
                        NDR_PULL_SET_MEM_CTX(ndr, _mem_save_sitename_1, 0);
 
8700
                        NDR_PULL_SET_MEM_CTX(ndr, _mem_save_sitename_0, 0);
 
8701
                }
 
8702
                if (r->sitename) {
 
8703
                        NDR_CHECK(ndr_check_array_size(ndr, (void*)&r->sitename, r->count));
 
8704
                }
 
8705
        }
 
8706
        return NDR_ERR_SUCCESS;
 
8707
}
 
8708
 
 
8709
_PUBLIC_ void ndr_print_netr_DsRAddressToSitenamesWCtr(struct ndr_print *ndr, const char *name, const struct netr_DsRAddressToSitenamesWCtr *r)
 
8710
{
 
8711
        uint32_t cntr_sitename_1;
 
8712
        ndr_print_struct(ndr, name, "netr_DsRAddressToSitenamesWCtr");
 
8713
        ndr->depth++;
 
8714
        ndr_print_uint32(ndr, "count", r->count);
 
8715
        ndr_print_ptr(ndr, "sitename", r->sitename);
 
8716
        ndr->depth++;
 
8717
        if (r->sitename) {
 
8718
                ndr->print(ndr, "%s: ARRAY(%d)", "sitename", (int)r->count);
 
8719
                ndr->depth++;
 
8720
                for (cntr_sitename_1=0;cntr_sitename_1<r->count;cntr_sitename_1++) {
 
8721
                        char *idx_1=NULL;
 
8722
                        if (asprintf(&idx_1, "[%d]", cntr_sitename_1) != -1) {
 
8723
                                ndr_print_lsa_String(ndr, "sitename", &r->sitename[cntr_sitename_1]);
 
8724
                                free(idx_1);
 
8725
                        }
 
8726
                }
 
8727
                ndr->depth--;
 
8728
        }
 
8729
        ndr->depth--;
 
8730
        ndr->depth--;
 
8731
}
 
8732
 
 
8733
static enum ndr_err_code ndr_push_netr_DsRAddress(struct ndr_push *ndr, int ndr_flags, const struct netr_DsRAddress *r)
 
8734
{
 
8735
        if (ndr_flags & NDR_SCALARS) {
 
8736
                NDR_CHECK(ndr_push_align(ndr, 5));
 
8737
                NDR_CHECK(ndr_push_unique_ptr(ndr, r->buffer));
 
8738
                NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->size));
 
8739
                NDR_CHECK(ndr_push_trailer_align(ndr, 5));
 
8740
        }
 
8741
        if (ndr_flags & NDR_BUFFERS) {
 
8742
                if (r->buffer) {
 
8743
                        NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, r->size));
 
8744
                        NDR_CHECK(ndr_push_array_uint8(ndr, NDR_SCALARS, r->buffer, r->size));
 
8745
                }
 
8746
        }
 
8747
        return NDR_ERR_SUCCESS;
 
8748
}
 
8749
 
 
8750
static enum ndr_err_code ndr_pull_netr_DsRAddress(struct ndr_pull *ndr, int ndr_flags, struct netr_DsRAddress *r)
 
8751
{
 
8752
        uint32_t _ptr_buffer;
 
8753
        TALLOC_CTX *_mem_save_buffer_0;
 
8754
        if (ndr_flags & NDR_SCALARS) {
 
8755
                NDR_CHECK(ndr_pull_align(ndr, 5));
 
8756
                NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_buffer));
 
8757
                if (_ptr_buffer) {
 
8758
                        NDR_PULL_ALLOC(ndr, r->buffer);
 
8759
                } else {
 
8760
                        r->buffer = NULL;
 
8761
                }
 
8762
                NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->size));
 
8763
                NDR_CHECK(ndr_pull_trailer_align(ndr, 5));
 
8764
        }
 
8765
        if (ndr_flags & NDR_BUFFERS) {
 
8766
                if (r->buffer) {
 
8767
                        _mem_save_buffer_0 = NDR_PULL_GET_MEM_CTX(ndr);
 
8768
                        NDR_PULL_SET_MEM_CTX(ndr, r->buffer, 0);
 
8769
                        NDR_CHECK(ndr_pull_array_size(ndr, &r->buffer));
 
8770
                        NDR_PULL_ALLOC_N(ndr, r->buffer, ndr_get_array_size(ndr, &r->buffer));
 
8771
                        NDR_CHECK(ndr_pull_array_uint8(ndr, NDR_SCALARS, r->buffer, ndr_get_array_size(ndr, &r->buffer)));
 
8772
                        NDR_PULL_SET_MEM_CTX(ndr, _mem_save_buffer_0, 0);
 
8773
                }
 
8774
                if (r->buffer) {
 
8775
                        NDR_CHECK(ndr_check_array_size(ndr, (void*)&r->buffer, r->size));
 
8776
                }
 
8777
        }
 
8778
        return NDR_ERR_SUCCESS;
 
8779
}
 
8780
 
 
8781
_PUBLIC_ void ndr_print_netr_DsRAddress(struct ndr_print *ndr, const char *name, const struct netr_DsRAddress *r)
 
8782
{
 
8783
        ndr_print_struct(ndr, name, "netr_DsRAddress");
 
8784
        ndr->depth++;
 
8785
        ndr_print_ptr(ndr, "buffer", r->buffer);
 
8786
        ndr->depth++;
 
8787
        if (r->buffer) {
 
8788
                ndr_print_array_uint8(ndr, "buffer", r->buffer, r->size);
 
8789
        }
 
8790
        ndr->depth--;
 
8791
        ndr_print_uint32(ndr, "size", r->size);
 
8792
        ndr->depth--;
 
8793
}
 
8794
 
 
8795
static enum ndr_err_code ndr_push_netr_TrustType(struct ndr_push *ndr, int ndr_flags, enum netr_TrustType r)
 
8796
{
 
8797
        NDR_CHECK(ndr_push_enum_uint32(ndr, NDR_SCALARS, r));
 
8798
        return NDR_ERR_SUCCESS;
 
8799
}
 
8800
 
 
8801
static enum ndr_err_code ndr_pull_netr_TrustType(struct ndr_pull *ndr, int ndr_flags, enum netr_TrustType *r)
 
8802
{
 
8803
        uint32_t v;
 
8804
        NDR_CHECK(ndr_pull_enum_uint32(ndr, NDR_SCALARS, &v));
 
8805
        *r = v;
 
8806
        return NDR_ERR_SUCCESS;
 
8807
}
 
8808
 
 
8809
_PUBLIC_ void ndr_print_netr_TrustType(struct ndr_print *ndr, const char *name, enum netr_TrustType r)
 
8810
{
 
8811
        const char *val = NULL;
 
8812
 
 
8813
        switch (r) {
 
8814
                case NETR_TRUST_TYPE_DOWNLEVEL: val = "NETR_TRUST_TYPE_DOWNLEVEL"; break;
 
8815
                case NETR_TRUST_TYPE_UPLEVEL: val = "NETR_TRUST_TYPE_UPLEVEL"; break;
 
8816
                case NETR_TRUST_TYPE_MIT: val = "NETR_TRUST_TYPE_MIT"; break;
 
8817
                case NETR_TRUST_TYPE_DCE: val = "NETR_TRUST_TYPE_DCE"; break;
 
8818
        }
 
8819
        ndr_print_enum(ndr, name, "ENUM", val, r);
 
8820
}
 
8821
 
 
8822
static enum ndr_err_code ndr_push_netr_TrustAttributes(struct ndr_push *ndr, int ndr_flags, uint32_t r)
 
8823
{
 
8824
        NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r));
 
8825
        return NDR_ERR_SUCCESS;
 
8826
}
 
8827
 
 
8828
static enum ndr_err_code ndr_pull_netr_TrustAttributes(struct ndr_pull *ndr, int ndr_flags, uint32_t *r)
 
8829
{
 
8830
        uint32_t v;
 
8831
        NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &v));
 
8832
        *r = v;
 
8833
        return NDR_ERR_SUCCESS;
 
8834
}
 
8835
 
 
8836
_PUBLIC_ void ndr_print_netr_TrustAttributes(struct ndr_print *ndr, const char *name, uint32_t r)
 
8837
{
 
8838
        ndr_print_uint32(ndr, name, r);
 
8839
        ndr->depth++;
 
8840
        ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "NETR_TRUST_ATTRIBUTE_NON_TRANSITIVE", NETR_TRUST_ATTRIBUTE_NON_TRANSITIVE, r);
 
8841
        ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "NETR_TRUST_ATTRIBUTE_UPLEVEL_ONLY", NETR_TRUST_ATTRIBUTE_UPLEVEL_ONLY, r);
 
8842
        ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "NETR_TRUST_ATTRIBUTE_QUARANTINED_DOMAIN", NETR_TRUST_ATTRIBUTE_QUARANTINED_DOMAIN, r);
 
8843
        ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "NETR_TRUST_ATTRIBUTE_FOREST_TRANSITIVE", NETR_TRUST_ATTRIBUTE_FOREST_TRANSITIVE, r);
 
8844
        ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "NETR_TRUST_ATTRIBUTE_CROSS_ORGANIZATION", NETR_TRUST_ATTRIBUTE_CROSS_ORGANIZATION, r);
 
8845
        ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "NETR_TRUST_ATTRIBUTE_WITHIN_FOREST", NETR_TRUST_ATTRIBUTE_WITHIN_FOREST, r);
 
8846
        ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "NETR_TRUST_ATTRIBUTE_TREAT_AS_EXTERNAL", NETR_TRUST_ATTRIBUTE_TREAT_AS_EXTERNAL, r);
 
8847
        ndr->depth--;
 
8848
}
 
8849
 
 
8850
static enum ndr_err_code ndr_push_netr_DomainTrust(struct ndr_push *ndr, int ndr_flags, const struct netr_DomainTrust *r)
 
8851
{
 
8852
        if (ndr_flags & NDR_SCALARS) {
 
8853
                NDR_CHECK(ndr_push_align(ndr, 5));
 
8854
                NDR_CHECK(ndr_push_unique_ptr(ndr, r->netbios_name));
 
8855
                NDR_CHECK(ndr_push_unique_ptr(ndr, r->dns_name));
 
8856
                NDR_CHECK(ndr_push_netr_TrustFlags(ndr, NDR_SCALARS, r->trust_flags));
 
8857
                NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->parent_index));
 
8858
                NDR_CHECK(ndr_push_netr_TrustType(ndr, NDR_SCALARS, r->trust_type));
 
8859
                NDR_CHECK(ndr_push_netr_TrustAttributes(ndr, NDR_SCALARS, r->trust_attributes));
 
8860
                NDR_CHECK(ndr_push_unique_ptr(ndr, r->sid));
 
8861
                NDR_CHECK(ndr_push_GUID(ndr, NDR_SCALARS, &r->guid));
 
8862
                NDR_CHECK(ndr_push_trailer_align(ndr, 5));
 
8863
        }
 
8864
        if (ndr_flags & NDR_BUFFERS) {
 
8865
                if (r->netbios_name) {
 
8866
                        NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->netbios_name, CH_UTF16)));
 
8867
                        NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, 0));
 
8868
                        NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->netbios_name, CH_UTF16)));
 
8869
                        NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->netbios_name, ndr_charset_length(r->netbios_name, CH_UTF16), sizeof(uint16_t), CH_UTF16));
 
8870
                }
 
8871
                if (r->dns_name) {
 
8872
                        NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->dns_name, CH_UTF16)));
 
8873
                        NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, 0));
 
8874
                        NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->dns_name, CH_UTF16)));
 
8875
                        NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->dns_name, ndr_charset_length(r->dns_name, CH_UTF16), sizeof(uint16_t), CH_UTF16));
 
8876
                }
 
8877
                if (r->sid) {
 
8878
                        NDR_CHECK(ndr_push_dom_sid2(ndr, NDR_SCALARS|NDR_BUFFERS, r->sid));
 
8879
                }
 
8880
        }
 
8881
        return NDR_ERR_SUCCESS;
 
8882
}
 
8883
 
 
8884
static enum ndr_err_code ndr_pull_netr_DomainTrust(struct ndr_pull *ndr, int ndr_flags, struct netr_DomainTrust *r)
 
8885
{
 
8886
        uint32_t _ptr_netbios_name;
 
8887
        TALLOC_CTX *_mem_save_netbios_name_0;
 
8888
        uint32_t _ptr_dns_name;
 
8889
        TALLOC_CTX *_mem_save_dns_name_0;
 
8890
        uint32_t _ptr_sid;
 
8891
        TALLOC_CTX *_mem_save_sid_0;
 
8892
        if (ndr_flags & NDR_SCALARS) {
 
8893
                NDR_CHECK(ndr_pull_align(ndr, 5));
 
8894
                NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_netbios_name));
 
8895
                if (_ptr_netbios_name) {
 
8896
                        NDR_PULL_ALLOC(ndr, r->netbios_name);
 
8897
                } else {
 
8898
                        r->netbios_name = NULL;
 
8899
                }
 
8900
                NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_dns_name));
 
8901
                if (_ptr_dns_name) {
 
8902
                        NDR_PULL_ALLOC(ndr, r->dns_name);
 
8903
                } else {
 
8904
                        r->dns_name = NULL;
 
8905
                }
 
8906
                NDR_CHECK(ndr_pull_netr_TrustFlags(ndr, NDR_SCALARS, &r->trust_flags));
 
8907
                NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->parent_index));
 
8908
                NDR_CHECK(ndr_pull_netr_TrustType(ndr, NDR_SCALARS, &r->trust_type));
 
8909
                NDR_CHECK(ndr_pull_netr_TrustAttributes(ndr, NDR_SCALARS, &r->trust_attributes));
 
8910
                NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_sid));
 
8911
                if (_ptr_sid) {
 
8912
                        NDR_PULL_ALLOC(ndr, r->sid);
 
8913
                } else {
 
8914
                        r->sid = NULL;
 
8915
                }
 
8916
                NDR_CHECK(ndr_pull_GUID(ndr, NDR_SCALARS, &r->guid));
 
8917
                NDR_CHECK(ndr_pull_trailer_align(ndr, 5));
 
8918
        }
 
8919
        if (ndr_flags & NDR_BUFFERS) {
 
8920
                if (r->netbios_name) {
 
8921
                        _mem_save_netbios_name_0 = NDR_PULL_GET_MEM_CTX(ndr);
 
8922
                        NDR_PULL_SET_MEM_CTX(ndr, r->netbios_name, 0);
 
8923
                        NDR_CHECK(ndr_pull_array_size(ndr, &r->netbios_name));
 
8924
                        NDR_CHECK(ndr_pull_array_length(ndr, &r->netbios_name));
 
8925
                        if (ndr_get_array_length(ndr, &r->netbios_name) > ndr_get_array_size(ndr, &r->netbios_name)) {
 
8926
                                return ndr_pull_error(ndr, NDR_ERR_ARRAY_SIZE, "Bad array size %u should exceed array length %u", ndr_get_array_size(ndr, &r->netbios_name), ndr_get_array_length(ndr, &r->netbios_name));
 
8927
                        }
 
8928
                        NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->netbios_name), sizeof(uint16_t)));
 
8929
                        NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->netbios_name, ndr_get_array_length(ndr, &r->netbios_name), sizeof(uint16_t), CH_UTF16));
 
8930
                        NDR_PULL_SET_MEM_CTX(ndr, _mem_save_netbios_name_0, 0);
 
8931
                }
 
8932
                if (r->dns_name) {
 
8933
                        _mem_save_dns_name_0 = NDR_PULL_GET_MEM_CTX(ndr);
 
8934
                        NDR_PULL_SET_MEM_CTX(ndr, r->dns_name, 0);
 
8935
                        NDR_CHECK(ndr_pull_array_size(ndr, &r->dns_name));
 
8936
                        NDR_CHECK(ndr_pull_array_length(ndr, &r->dns_name));
 
8937
                        if (ndr_get_array_length(ndr, &r->dns_name) > ndr_get_array_size(ndr, &r->dns_name)) {
 
8938
                                return ndr_pull_error(ndr, NDR_ERR_ARRAY_SIZE, "Bad array size %u should exceed array length %u", ndr_get_array_size(ndr, &r->dns_name), ndr_get_array_length(ndr, &r->dns_name));
 
8939
                        }
 
8940
                        NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->dns_name), sizeof(uint16_t)));
 
8941
                        NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->dns_name, ndr_get_array_length(ndr, &r->dns_name), sizeof(uint16_t), CH_UTF16));
 
8942
                        NDR_PULL_SET_MEM_CTX(ndr, _mem_save_dns_name_0, 0);
 
8943
                }
 
8944
                if (r->sid) {
 
8945
                        _mem_save_sid_0 = NDR_PULL_GET_MEM_CTX(ndr);
 
8946
                        NDR_PULL_SET_MEM_CTX(ndr, r->sid, 0);
 
8947
                        NDR_CHECK(ndr_pull_dom_sid2(ndr, NDR_SCALARS|NDR_BUFFERS, r->sid));
 
8948
                        NDR_PULL_SET_MEM_CTX(ndr, _mem_save_sid_0, 0);
 
8949
                }
 
8950
        }
 
8951
        return NDR_ERR_SUCCESS;
 
8952
}
 
8953
 
 
8954
_PUBLIC_ void ndr_print_netr_DomainTrust(struct ndr_print *ndr, const char *name, const struct netr_DomainTrust *r)
 
8955
{
 
8956
        ndr_print_struct(ndr, name, "netr_DomainTrust");
 
8957
        ndr->depth++;
 
8958
        ndr_print_ptr(ndr, "netbios_name", r->netbios_name);
 
8959
        ndr->depth++;
 
8960
        if (r->netbios_name) {
 
8961
                ndr_print_string(ndr, "netbios_name", r->netbios_name);
 
8962
        }
 
8963
        ndr->depth--;
 
8964
        ndr_print_ptr(ndr, "dns_name", r->dns_name);
 
8965
        ndr->depth++;
 
8966
        if (r->dns_name) {
 
8967
                ndr_print_string(ndr, "dns_name", r->dns_name);
 
8968
        }
 
8969
        ndr->depth--;
 
8970
        ndr_print_netr_TrustFlags(ndr, "trust_flags", r->trust_flags);
 
8971
        ndr_print_uint32(ndr, "parent_index", r->parent_index);
 
8972
        ndr_print_netr_TrustType(ndr, "trust_type", r->trust_type);
 
8973
        ndr_print_netr_TrustAttributes(ndr, "trust_attributes", r->trust_attributes);
 
8974
        ndr_print_ptr(ndr, "sid", r->sid);
 
8975
        ndr->depth++;
 
8976
        if (r->sid) {
 
8977
                ndr_print_dom_sid2(ndr, "sid", r->sid);
 
8978
        }
 
8979
        ndr->depth--;
 
8980
        ndr_print_GUID(ndr, "guid", &r->guid);
 
8981
        ndr->depth--;
 
8982
}
 
8983
 
 
8984
static enum ndr_err_code ndr_push_netr_DomainTrustList(struct ndr_push *ndr, int ndr_flags, const struct netr_DomainTrustList *r)
 
8985
{
 
8986
        uint32_t cntr_array_1;
 
8987
        if (ndr_flags & NDR_SCALARS) {
 
8988
                NDR_CHECK(ndr_push_align(ndr, 5));
 
8989
                NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->count));
 
8990
                NDR_CHECK(ndr_push_unique_ptr(ndr, r->array));
 
8991
                NDR_CHECK(ndr_push_trailer_align(ndr, 5));
 
8992
        }
 
8993
        if (ndr_flags & NDR_BUFFERS) {
 
8994
                if (r->array) {
 
8995
                        NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, r->count));
 
8996
                        for (cntr_array_1 = 0; cntr_array_1 < r->count; cntr_array_1++) {
 
8997
                                NDR_CHECK(ndr_push_netr_DomainTrust(ndr, NDR_SCALARS, &r->array[cntr_array_1]));
 
8998
                        }
 
8999
                        for (cntr_array_1 = 0; cntr_array_1 < r->count; cntr_array_1++) {
 
9000
                                NDR_CHECK(ndr_push_netr_DomainTrust(ndr, NDR_BUFFERS, &r->array[cntr_array_1]));
 
9001
                        }
 
9002
                }
 
9003
        }
 
9004
        return NDR_ERR_SUCCESS;
 
9005
}
 
9006
 
 
9007
static enum ndr_err_code ndr_pull_netr_DomainTrustList(struct ndr_pull *ndr, int ndr_flags, struct netr_DomainTrustList *r)
 
9008
{
 
9009
        uint32_t _ptr_array;
 
9010
        uint32_t cntr_array_1;
 
9011
        TALLOC_CTX *_mem_save_array_0;
 
9012
        TALLOC_CTX *_mem_save_array_1;
 
9013
        if (ndr_flags & NDR_SCALARS) {
 
9014
                NDR_CHECK(ndr_pull_align(ndr, 5));
 
9015
                NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->count));
 
9016
                NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_array));
 
9017
                if (_ptr_array) {
 
9018
                        NDR_PULL_ALLOC(ndr, r->array);
 
9019
                } else {
 
9020
                        r->array = NULL;
 
9021
                }
 
9022
                NDR_CHECK(ndr_pull_trailer_align(ndr, 5));
 
9023
        }
 
9024
        if (ndr_flags & NDR_BUFFERS) {
 
9025
                if (r->array) {
 
9026
                        _mem_save_array_0 = NDR_PULL_GET_MEM_CTX(ndr);
 
9027
                        NDR_PULL_SET_MEM_CTX(ndr, r->array, 0);
 
9028
                        NDR_CHECK(ndr_pull_array_size(ndr, &r->array));
 
9029
                        NDR_PULL_ALLOC_N(ndr, r->array, ndr_get_array_size(ndr, &r->array));
 
9030
                        _mem_save_array_1 = NDR_PULL_GET_MEM_CTX(ndr);
 
9031
                        NDR_PULL_SET_MEM_CTX(ndr, r->array, 0);
 
9032
                        for (cntr_array_1 = 0; cntr_array_1 < r->count; cntr_array_1++) {
 
9033
                                NDR_CHECK(ndr_pull_netr_DomainTrust(ndr, NDR_SCALARS, &r->array[cntr_array_1]));
 
9034
                        }
 
9035
                        for (cntr_array_1 = 0; cntr_array_1 < r->count; cntr_array_1++) {
 
9036
                                NDR_CHECK(ndr_pull_netr_DomainTrust(ndr, NDR_BUFFERS, &r->array[cntr_array_1]));
 
9037
                        }
 
9038
                        NDR_PULL_SET_MEM_CTX(ndr, _mem_save_array_1, 0);
 
9039
                        NDR_PULL_SET_MEM_CTX(ndr, _mem_save_array_0, 0);
 
9040
                }
 
9041
                if (r->array) {
 
9042
                        NDR_CHECK(ndr_check_array_size(ndr, (void*)&r->array, r->count));
 
9043
                }
 
9044
        }
 
9045
        return NDR_ERR_SUCCESS;
 
9046
}
 
9047
 
 
9048
_PUBLIC_ void ndr_print_netr_DomainTrustList(struct ndr_print *ndr, const char *name, const struct netr_DomainTrustList *r)
 
9049
{
 
9050
        uint32_t cntr_array_1;
 
9051
        ndr_print_struct(ndr, name, "netr_DomainTrustList");
 
9052
        ndr->depth++;
 
9053
        ndr_print_uint32(ndr, "count", r->count);
 
9054
        ndr_print_ptr(ndr, "array", r->array);
 
9055
        ndr->depth++;
 
9056
        if (r->array) {
 
9057
                ndr->print(ndr, "%s: ARRAY(%d)", "array", (int)r->count);
 
9058
                ndr->depth++;
 
9059
                for (cntr_array_1=0;cntr_array_1<r->count;cntr_array_1++) {
 
9060
                        char *idx_1=NULL;
 
9061
                        if (asprintf(&idx_1, "[%d]", cntr_array_1) != -1) {
 
9062
                                ndr_print_netr_DomainTrust(ndr, "array", &r->array[cntr_array_1]);
 
9063
                                free(idx_1);
 
9064
                        }
 
9065
                }
 
9066
                ndr->depth--;
 
9067
        }
 
9068
        ndr->depth--;
 
9069
        ndr->depth--;
 
9070
}
 
9071
 
 
9072
static enum ndr_err_code ndr_push_netr_DsRAddressToSitenamesExWCtr(struct ndr_push *ndr, int ndr_flags, const struct netr_DsRAddressToSitenamesExWCtr *r)
 
9073
{
 
9074
        uint32_t cntr_sitename_1;
 
9075
        uint32_t cntr_subnetname_1;
 
9076
        if (ndr_flags & NDR_SCALARS) {
 
9077
                NDR_CHECK(ndr_push_align(ndr, 5));
 
9078
                NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->count));
 
9079
                NDR_CHECK(ndr_push_unique_ptr(ndr, r->sitename));
 
9080
                NDR_CHECK(ndr_push_unique_ptr(ndr, r->subnetname));
 
9081
                NDR_CHECK(ndr_push_trailer_align(ndr, 5));
 
9082
        }
 
9083
        if (ndr_flags & NDR_BUFFERS) {
 
9084
                if (r->sitename) {
 
9085
                        NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, r->count));
 
9086
                        for (cntr_sitename_1 = 0; cntr_sitename_1 < r->count; cntr_sitename_1++) {
 
9087
                                NDR_CHECK(ndr_push_lsa_String(ndr, NDR_SCALARS, &r->sitename[cntr_sitename_1]));
 
9088
                        }
 
9089
                        for (cntr_sitename_1 = 0; cntr_sitename_1 < r->count; cntr_sitename_1++) {
 
9090
                                NDR_CHECK(ndr_push_lsa_String(ndr, NDR_BUFFERS, &r->sitename[cntr_sitename_1]));
 
9091
                        }
 
9092
                }
 
9093
                if (r->subnetname) {
 
9094
                        NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, r->count));
 
9095
                        for (cntr_subnetname_1 = 0; cntr_subnetname_1 < r->count; cntr_subnetname_1++) {
 
9096
                                NDR_CHECK(ndr_push_lsa_String(ndr, NDR_SCALARS, &r->subnetname[cntr_subnetname_1]));
 
9097
                        }
 
9098
                        for (cntr_subnetname_1 = 0; cntr_subnetname_1 < r->count; cntr_subnetname_1++) {
 
9099
                                NDR_CHECK(ndr_push_lsa_String(ndr, NDR_BUFFERS, &r->subnetname[cntr_subnetname_1]));
 
9100
                        }
 
9101
                }
 
9102
        }
 
9103
        return NDR_ERR_SUCCESS;
 
9104
}
 
9105
 
 
9106
static enum ndr_err_code ndr_pull_netr_DsRAddressToSitenamesExWCtr(struct ndr_pull *ndr, int ndr_flags, struct netr_DsRAddressToSitenamesExWCtr *r)
 
9107
{
 
9108
        uint32_t _ptr_sitename;
 
9109
        uint32_t cntr_sitename_1;
 
9110
        TALLOC_CTX *_mem_save_sitename_0;
 
9111
        TALLOC_CTX *_mem_save_sitename_1;
 
9112
        uint32_t _ptr_subnetname;
 
9113
        uint32_t cntr_subnetname_1;
 
9114
        TALLOC_CTX *_mem_save_subnetname_0;
 
9115
        TALLOC_CTX *_mem_save_subnetname_1;
 
9116
        if (ndr_flags & NDR_SCALARS) {
 
9117
                NDR_CHECK(ndr_pull_align(ndr, 5));
 
9118
                NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->count));
 
9119
                NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_sitename));
 
9120
                if (_ptr_sitename) {
 
9121
                        NDR_PULL_ALLOC(ndr, r->sitename);
 
9122
                } else {
 
9123
                        r->sitename = NULL;
 
9124
                }
 
9125
                NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_subnetname));
 
9126
                if (_ptr_subnetname) {
 
9127
                        NDR_PULL_ALLOC(ndr, r->subnetname);
 
9128
                } else {
 
9129
                        r->subnetname = NULL;
 
9130
                }
 
9131
                NDR_CHECK(ndr_pull_trailer_align(ndr, 5));
 
9132
        }
 
9133
        if (ndr_flags & NDR_BUFFERS) {
 
9134
                if (r->sitename) {
 
9135
                        _mem_save_sitename_0 = NDR_PULL_GET_MEM_CTX(ndr);
 
9136
                        NDR_PULL_SET_MEM_CTX(ndr, r->sitename, 0);
 
9137
                        NDR_CHECK(ndr_pull_array_size(ndr, &r->sitename));
 
9138
                        NDR_PULL_ALLOC_N(ndr, r->sitename, ndr_get_array_size(ndr, &r->sitename));
 
9139
                        _mem_save_sitename_1 = NDR_PULL_GET_MEM_CTX(ndr);
 
9140
                        NDR_PULL_SET_MEM_CTX(ndr, r->sitename, 0);
 
9141
                        for (cntr_sitename_1 = 0; cntr_sitename_1 < r->count; cntr_sitename_1++) {
 
9142
                                NDR_CHECK(ndr_pull_lsa_String(ndr, NDR_SCALARS, &r->sitename[cntr_sitename_1]));
 
9143
                        }
 
9144
                        for (cntr_sitename_1 = 0; cntr_sitename_1 < r->count; cntr_sitename_1++) {
 
9145
                                NDR_CHECK(ndr_pull_lsa_String(ndr, NDR_BUFFERS, &r->sitename[cntr_sitename_1]));
 
9146
                        }
 
9147
                        NDR_PULL_SET_MEM_CTX(ndr, _mem_save_sitename_1, 0);
 
9148
                        NDR_PULL_SET_MEM_CTX(ndr, _mem_save_sitename_0, 0);
 
9149
                }
 
9150
                if (r->subnetname) {
 
9151
                        _mem_save_subnetname_0 = NDR_PULL_GET_MEM_CTX(ndr);
 
9152
                        NDR_PULL_SET_MEM_CTX(ndr, r->subnetname, 0);
 
9153
                        NDR_CHECK(ndr_pull_array_size(ndr, &r->subnetname));
 
9154
                        NDR_PULL_ALLOC_N(ndr, r->subnetname, ndr_get_array_size(ndr, &r->subnetname));
 
9155
                        _mem_save_subnetname_1 = NDR_PULL_GET_MEM_CTX(ndr);
 
9156
                        NDR_PULL_SET_MEM_CTX(ndr, r->subnetname, 0);
 
9157
                        for (cntr_subnetname_1 = 0; cntr_subnetname_1 < r->count; cntr_subnetname_1++) {
 
9158
                                NDR_CHECK(ndr_pull_lsa_String(ndr, NDR_SCALARS, &r->subnetname[cntr_subnetname_1]));
 
9159
                        }
 
9160
                        for (cntr_subnetname_1 = 0; cntr_subnetname_1 < r->count; cntr_subnetname_1++) {
 
9161
                                NDR_CHECK(ndr_pull_lsa_String(ndr, NDR_BUFFERS, &r->subnetname[cntr_subnetname_1]));
 
9162
                        }
 
9163
                        NDR_PULL_SET_MEM_CTX(ndr, _mem_save_subnetname_1, 0);
 
9164
                        NDR_PULL_SET_MEM_CTX(ndr, _mem_save_subnetname_0, 0);
 
9165
                }
 
9166
                if (r->sitename) {
 
9167
                        NDR_CHECK(ndr_check_array_size(ndr, (void*)&r->sitename, r->count));
 
9168
                }
 
9169
                if (r->subnetname) {
 
9170
                        NDR_CHECK(ndr_check_array_size(ndr, (void*)&r->subnetname, r->count));
 
9171
                }
 
9172
        }
 
9173
        return NDR_ERR_SUCCESS;
 
9174
}
 
9175
 
 
9176
_PUBLIC_ void ndr_print_netr_DsRAddressToSitenamesExWCtr(struct ndr_print *ndr, const char *name, const struct netr_DsRAddressToSitenamesExWCtr *r)
 
9177
{
 
9178
        uint32_t cntr_sitename_1;
 
9179
        uint32_t cntr_subnetname_1;
 
9180
        ndr_print_struct(ndr, name, "netr_DsRAddressToSitenamesExWCtr");
 
9181
        ndr->depth++;
 
9182
        ndr_print_uint32(ndr, "count", r->count);
 
9183
        ndr_print_ptr(ndr, "sitename", r->sitename);
 
9184
        ndr->depth++;
 
9185
        if (r->sitename) {
 
9186
                ndr->print(ndr, "%s: ARRAY(%d)", "sitename", (int)r->count);
 
9187
                ndr->depth++;
 
9188
                for (cntr_sitename_1=0;cntr_sitename_1<r->count;cntr_sitename_1++) {
 
9189
                        char *idx_1=NULL;
 
9190
                        if (asprintf(&idx_1, "[%d]", cntr_sitename_1) != -1) {
 
9191
                                ndr_print_lsa_String(ndr, "sitename", &r->sitename[cntr_sitename_1]);
 
9192
                                free(idx_1);
 
9193
                        }
 
9194
                }
 
9195
                ndr->depth--;
 
9196
        }
 
9197
        ndr->depth--;
 
9198
        ndr_print_ptr(ndr, "subnetname", r->subnetname);
 
9199
        ndr->depth++;
 
9200
        if (r->subnetname) {
 
9201
                ndr->print(ndr, "%s: ARRAY(%d)", "subnetname", (int)r->count);
 
9202
                ndr->depth++;
 
9203
                for (cntr_subnetname_1=0;cntr_subnetname_1<r->count;cntr_subnetname_1++) {
 
9204
                        char *idx_1=NULL;
 
9205
                        if (asprintf(&idx_1, "[%d]", cntr_subnetname_1) != -1) {
 
9206
                                ndr_print_lsa_String(ndr, "subnetname", &r->subnetname[cntr_subnetname_1]);
 
9207
                                free(idx_1);
 
9208
                        }
 
9209
                }
 
9210
                ndr->depth--;
 
9211
        }
 
9212
        ndr->depth--;
 
9213
        ndr->depth--;
 
9214
}
 
9215
 
 
9216
static enum ndr_err_code ndr_push_DcSitesCtr(struct ndr_push *ndr, int ndr_flags, const struct DcSitesCtr *r)
 
9217
{
 
9218
        uint32_t cntr_sites_1;
 
9219
        if (ndr_flags & NDR_SCALARS) {
 
9220
                NDR_CHECK(ndr_push_align(ndr, 5));
 
9221
                NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->num_sites));
 
9222
                NDR_CHECK(ndr_push_unique_ptr(ndr, r->sites));
 
9223
                NDR_CHECK(ndr_push_trailer_align(ndr, 5));
 
9224
        }
 
9225
        if (ndr_flags & NDR_BUFFERS) {
 
9226
                if (r->sites) {
 
9227
                        NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, r->num_sites));
 
9228
                        for (cntr_sites_1 = 0; cntr_sites_1 < r->num_sites; cntr_sites_1++) {
 
9229
                                NDR_CHECK(ndr_push_lsa_String(ndr, NDR_SCALARS, &r->sites[cntr_sites_1]));
 
9230
                        }
 
9231
                        for (cntr_sites_1 = 0; cntr_sites_1 < r->num_sites; cntr_sites_1++) {
 
9232
                                NDR_CHECK(ndr_push_lsa_String(ndr, NDR_BUFFERS, &r->sites[cntr_sites_1]));
 
9233
                        }
 
9234
                }
 
9235
        }
 
9236
        return NDR_ERR_SUCCESS;
 
9237
}
 
9238
 
 
9239
static enum ndr_err_code ndr_pull_DcSitesCtr(struct ndr_pull *ndr, int ndr_flags, struct DcSitesCtr *r)
 
9240
{
 
9241
        uint32_t _ptr_sites;
 
9242
        uint32_t cntr_sites_1;
 
9243
        TALLOC_CTX *_mem_save_sites_0;
 
9244
        TALLOC_CTX *_mem_save_sites_1;
 
9245
        if (ndr_flags & NDR_SCALARS) {
 
9246
                NDR_CHECK(ndr_pull_align(ndr, 5));
 
9247
                NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->num_sites));
 
9248
                NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_sites));
 
9249
                if (_ptr_sites) {
 
9250
                        NDR_PULL_ALLOC(ndr, r->sites);
 
9251
                } else {
 
9252
                        r->sites = NULL;
 
9253
                }
 
9254
                NDR_CHECK(ndr_pull_trailer_align(ndr, 5));
 
9255
        }
 
9256
        if (ndr_flags & NDR_BUFFERS) {
 
9257
                if (r->sites) {
 
9258
                        _mem_save_sites_0 = NDR_PULL_GET_MEM_CTX(ndr);
 
9259
                        NDR_PULL_SET_MEM_CTX(ndr, r->sites, 0);
 
9260
                        NDR_CHECK(ndr_pull_array_size(ndr, &r->sites));
 
9261
                        NDR_PULL_ALLOC_N(ndr, r->sites, ndr_get_array_size(ndr, &r->sites));
 
9262
                        _mem_save_sites_1 = NDR_PULL_GET_MEM_CTX(ndr);
 
9263
                        NDR_PULL_SET_MEM_CTX(ndr, r->sites, 0);
 
9264
                        for (cntr_sites_1 = 0; cntr_sites_1 < r->num_sites; cntr_sites_1++) {
 
9265
                                NDR_CHECK(ndr_pull_lsa_String(ndr, NDR_SCALARS, &r->sites[cntr_sites_1]));
 
9266
                        }
 
9267
                        for (cntr_sites_1 = 0; cntr_sites_1 < r->num_sites; cntr_sites_1++) {
 
9268
                                NDR_CHECK(ndr_pull_lsa_String(ndr, NDR_BUFFERS, &r->sites[cntr_sites_1]));
 
9269
                        }
 
9270
                        NDR_PULL_SET_MEM_CTX(ndr, _mem_save_sites_1, 0);
 
9271
                        NDR_PULL_SET_MEM_CTX(ndr, _mem_save_sites_0, 0);
 
9272
                }
 
9273
                if (r->sites) {
 
9274
                        NDR_CHECK(ndr_check_array_size(ndr, (void*)&r->sites, r->num_sites));
 
9275
                }
 
9276
        }
 
9277
        return NDR_ERR_SUCCESS;
 
9278
}
 
9279
 
 
9280
_PUBLIC_ void ndr_print_DcSitesCtr(struct ndr_print *ndr, const char *name, const struct DcSitesCtr *r)
 
9281
{
 
9282
        uint32_t cntr_sites_1;
 
9283
        ndr_print_struct(ndr, name, "DcSitesCtr");
 
9284
        ndr->depth++;
 
9285
        ndr_print_uint32(ndr, "num_sites", r->num_sites);
 
9286
        ndr_print_ptr(ndr, "sites", r->sites);
 
9287
        ndr->depth++;
 
9288
        if (r->sites) {
 
9289
                ndr->print(ndr, "%s: ARRAY(%d)", "sites", (int)r->num_sites);
 
9290
                ndr->depth++;
 
9291
                for (cntr_sites_1=0;cntr_sites_1<r->num_sites;cntr_sites_1++) {
 
9292
                        char *idx_1=NULL;
 
9293
                        if (asprintf(&idx_1, "[%d]", cntr_sites_1) != -1) {
 
9294
                                ndr_print_lsa_String(ndr, "sites", &r->sites[cntr_sites_1]);
 
9295
                                free(idx_1);
 
9296
                        }
 
9297
                }
 
9298
                ndr->depth--;
 
9299
        }
 
9300
        ndr->depth--;
 
9301
        ndr->depth--;
 
9302
}
 
9303
 
 
9304
static enum ndr_err_code ndr_push_netr_TrustInfo(struct ndr_push *ndr, int ndr_flags, const struct netr_TrustInfo *r)
 
9305
{
 
9306
        uint32_t cntr_data_1;
 
9307
        uint32_t cntr_entries_1;
 
9308
        if (ndr_flags & NDR_SCALARS) {
 
9309
                NDR_CHECK(ndr_push_align(ndr, 5));
 
9310
                NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->count));
 
9311
                NDR_CHECK(ndr_push_unique_ptr(ndr, r->data));
 
9312
                NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->entry_count));
 
9313
                NDR_CHECK(ndr_push_unique_ptr(ndr, r->entries));
 
9314
                NDR_CHECK(ndr_push_trailer_align(ndr, 5));
 
9315
        }
 
9316
        if (ndr_flags & NDR_BUFFERS) {
 
9317
                if (r->data) {
 
9318
                        NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, r->count));
 
9319
                        for (cntr_data_1 = 0; cntr_data_1 < r->count; cntr_data_1++) {
 
9320
                                NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->data[cntr_data_1]));
 
9321
                        }
 
9322
                }
 
9323
                if (r->entries) {
 
9324
                        NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, r->count));
 
9325
                        for (cntr_entries_1 = 0; cntr_entries_1 < r->count; cntr_entries_1++) {
 
9326
                                NDR_CHECK(ndr_push_lsa_String(ndr, NDR_SCALARS, &r->entries[cntr_entries_1]));
 
9327
                        }
 
9328
                        for (cntr_entries_1 = 0; cntr_entries_1 < r->count; cntr_entries_1++) {
 
9329
                                NDR_CHECK(ndr_push_lsa_String(ndr, NDR_BUFFERS, &r->entries[cntr_entries_1]));
 
9330
                        }
 
9331
                }
 
9332
        }
 
9333
        return NDR_ERR_SUCCESS;
 
9334
}
 
9335
 
 
9336
static enum ndr_err_code ndr_pull_netr_TrustInfo(struct ndr_pull *ndr, int ndr_flags, struct netr_TrustInfo *r)
 
9337
{
 
9338
        uint32_t _ptr_data;
 
9339
        uint32_t cntr_data_1;
 
9340
        TALLOC_CTX *_mem_save_data_0;
 
9341
        TALLOC_CTX *_mem_save_data_1;
 
9342
        uint32_t _ptr_entries;
 
9343
        uint32_t cntr_entries_1;
 
9344
        TALLOC_CTX *_mem_save_entries_0;
 
9345
        TALLOC_CTX *_mem_save_entries_1;
 
9346
        if (ndr_flags & NDR_SCALARS) {
 
9347
                NDR_CHECK(ndr_pull_align(ndr, 5));
 
9348
                NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->count));
 
9349
                NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_data));
 
9350
                if (_ptr_data) {
 
9351
                        NDR_PULL_ALLOC(ndr, r->data);
 
9352
                } else {
 
9353
                        r->data = NULL;
 
9354
                }
 
9355
                NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->entry_count));
 
9356
                NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_entries));
 
9357
                if (_ptr_entries) {
 
9358
                        NDR_PULL_ALLOC(ndr, r->entries);
 
9359
                } else {
 
9360
                        r->entries = NULL;
 
9361
                }
 
9362
                NDR_CHECK(ndr_pull_trailer_align(ndr, 5));
 
9363
        }
 
9364
        if (ndr_flags & NDR_BUFFERS) {
 
9365
                if (r->data) {
 
9366
                        _mem_save_data_0 = NDR_PULL_GET_MEM_CTX(ndr);
 
9367
                        NDR_PULL_SET_MEM_CTX(ndr, r->data, 0);
 
9368
                        NDR_CHECK(ndr_pull_array_size(ndr, &r->data));
 
9369
                        NDR_PULL_ALLOC_N(ndr, r->data, ndr_get_array_size(ndr, &r->data));
 
9370
                        _mem_save_data_1 = NDR_PULL_GET_MEM_CTX(ndr);
 
9371
                        NDR_PULL_SET_MEM_CTX(ndr, r->data, 0);
 
9372
                        for (cntr_data_1 = 0; cntr_data_1 < r->count; cntr_data_1++) {
 
9373
                                NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->data[cntr_data_1]));
 
9374
                        }
 
9375
                        NDR_PULL_SET_MEM_CTX(ndr, _mem_save_data_1, 0);
 
9376
                        NDR_PULL_SET_MEM_CTX(ndr, _mem_save_data_0, 0);
 
9377
                }
 
9378
                if (r->entries) {
 
9379
                        _mem_save_entries_0 = NDR_PULL_GET_MEM_CTX(ndr);
 
9380
                        NDR_PULL_SET_MEM_CTX(ndr, r->entries, 0);
 
9381
                        NDR_CHECK(ndr_pull_array_size(ndr, &r->entries));
 
9382
                        NDR_PULL_ALLOC_N(ndr, r->entries, ndr_get_array_size(ndr, &r->entries));
 
9383
                        _mem_save_entries_1 = NDR_PULL_GET_MEM_CTX(ndr);
 
9384
                        NDR_PULL_SET_MEM_CTX(ndr, r->entries, 0);
 
9385
                        for (cntr_entries_1 = 0; cntr_entries_1 < r->count; cntr_entries_1++) {
 
9386
                                NDR_CHECK(ndr_pull_lsa_String(ndr, NDR_SCALARS, &r->entries[cntr_entries_1]));
 
9387
                        }
 
9388
                        for (cntr_entries_1 = 0; cntr_entries_1 < r->count; cntr_entries_1++) {
 
9389
                                NDR_CHECK(ndr_pull_lsa_String(ndr, NDR_BUFFERS, &r->entries[cntr_entries_1]));
 
9390
                        }
 
9391
                        NDR_PULL_SET_MEM_CTX(ndr, _mem_save_entries_1, 0);
 
9392
                        NDR_PULL_SET_MEM_CTX(ndr, _mem_save_entries_0, 0);
 
9393
                }
 
9394
                if (r->data) {
 
9395
                        NDR_CHECK(ndr_check_array_size(ndr, (void*)&r->data, r->count));
 
9396
                }
 
9397
                if (r->entries) {
 
9398
                        NDR_CHECK(ndr_check_array_size(ndr, (void*)&r->entries, r->count));
 
9399
                }
 
9400
        }
 
9401
        return NDR_ERR_SUCCESS;
 
9402
}
 
9403
 
 
9404
_PUBLIC_ void ndr_print_netr_TrustInfo(struct ndr_print *ndr, const char *name, const struct netr_TrustInfo *r)
 
9405
{
 
9406
        uint32_t cntr_data_1;
 
9407
        uint32_t cntr_entries_1;
 
9408
        ndr_print_struct(ndr, name, "netr_TrustInfo");
 
9409
        ndr->depth++;
 
9410
        ndr_print_uint32(ndr, "count", r->count);
 
9411
        ndr_print_ptr(ndr, "data", r->data);
 
9412
        ndr->depth++;
 
9413
        if (r->data) {
 
9414
                ndr->print(ndr, "%s: ARRAY(%d)", "data", (int)r->count);
 
9415
                ndr->depth++;
 
9416
                for (cntr_data_1=0;cntr_data_1<r->count;cntr_data_1++) {
 
9417
                        char *idx_1=NULL;
 
9418
                        if (asprintf(&idx_1, "[%d]", cntr_data_1) != -1) {
 
9419
                                ndr_print_uint32(ndr, "data", r->data[cntr_data_1]);
 
9420
                                free(idx_1);
 
9421
                        }
 
9422
                }
 
9423
                ndr->depth--;
 
9424
        }
 
9425
        ndr->depth--;
 
9426
        ndr_print_uint32(ndr, "entry_count", r->entry_count);
 
9427
        ndr_print_ptr(ndr, "entries", r->entries);
 
9428
        ndr->depth++;
 
9429
        if (r->entries) {
 
9430
                ndr->print(ndr, "%s: ARRAY(%d)", "entries", (int)r->count);
 
9431
                ndr->depth++;
 
9432
                for (cntr_entries_1=0;cntr_entries_1<r->count;cntr_entries_1++) {
 
9433
                        char *idx_1=NULL;
 
9434
                        if (asprintf(&idx_1, "[%d]", cntr_entries_1) != -1) {
 
9435
                                ndr_print_lsa_String(ndr, "entries", &r->entries[cntr_entries_1]);
 
9436
                                free(idx_1);
 
9437
                        }
 
9438
                }
 
9439
                ndr->depth--;
 
9440
        }
 
9441
        ndr->depth--;
 
9442
        ndr->depth--;
 
9443
}
 
9444
 
 
9445
static enum ndr_err_code ndr_push_netr_LogonUasLogon(struct ndr_push *ndr, int flags, const struct netr_LogonUasLogon *r)
 
9446
{
 
9447
        if (flags & NDR_IN) {
 
9448
                NDR_CHECK(ndr_push_unique_ptr(ndr, r->in.server_name));
 
9449
                if (r->in.server_name) {
 
9450
                        NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->in.server_name, CH_UTF16)));
 
9451
                        NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, 0));
 
9452
                        NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->in.server_name, CH_UTF16)));
 
9453
                        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));
 
9454
                }
 
9455
                if (r->in.account_name == NULL) {
 
9456
                        return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
 
9457
                }
 
9458
                NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->in.account_name, CH_UTF16)));
 
9459
                NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, 0));
 
9460
                NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->in.account_name, CH_UTF16)));
 
9461
                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));
 
9462
                if (r->in.workstation == NULL) {
 
9463
                        return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
 
9464
                }
 
9465
                NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->in.workstation, CH_UTF16)));
 
9466
                NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, 0));
 
9467
                NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->in.workstation, CH_UTF16)));
 
9468
                NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->in.workstation, ndr_charset_length(r->in.workstation, CH_UTF16), sizeof(uint16_t), CH_UTF16));
 
9469
        }
 
9470
        if (flags & NDR_OUT) {
 
9471
                if (r->out.info == NULL) {
 
9472
                        return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
 
9473
                }
 
9474
                NDR_CHECK(ndr_push_unique_ptr(ndr, *r->out.info));
 
9475
                if (*r->out.info) {
 
9476
                        NDR_CHECK(ndr_push_netr_UasInfo(ndr, NDR_SCALARS|NDR_BUFFERS, *r->out.info));
 
9477
                }
 
9478
                NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result));
 
9479
        }
 
9480
        return NDR_ERR_SUCCESS;
 
9481
}
 
9482
 
 
9483
static enum ndr_err_code ndr_pull_netr_LogonUasLogon(struct ndr_pull *ndr, int flags, struct netr_LogonUasLogon *r)
 
9484
{
 
9485
        uint32_t _ptr_server_name;
 
9486
        uint32_t _ptr_info;
 
9487
        TALLOC_CTX *_mem_save_server_name_0;
 
9488
        TALLOC_CTX *_mem_save_info_0;
 
9489
        TALLOC_CTX *_mem_save_info_1;
 
9490
        if (flags & NDR_IN) {
 
9491
                ZERO_STRUCT(r->out);
 
9492
 
 
9493
                NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_server_name));
 
9494
                if (_ptr_server_name) {
 
9495
                        NDR_PULL_ALLOC(ndr, r->in.server_name);
 
9496
                } else {
 
9497
                        r->in.server_name = NULL;
 
9498
                }
 
9499
                if (r->in.server_name) {
 
9500
                        _mem_save_server_name_0 = NDR_PULL_GET_MEM_CTX(ndr);
 
9501
                        NDR_PULL_SET_MEM_CTX(ndr, r->in.server_name, 0);
 
9502
                        NDR_CHECK(ndr_pull_array_size(ndr, &r->in.server_name));
 
9503
                        NDR_CHECK(ndr_pull_array_length(ndr, &r->in.server_name));
 
9504
                        if (ndr_get_array_length(ndr, &r->in.server_name) > ndr_get_array_size(ndr, &r->in.server_name)) {
 
9505
                                return 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));
 
9506
                        }
 
9507
                        NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->in.server_name), sizeof(uint16_t)));
 
9508
                        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));
 
9509
                        NDR_PULL_SET_MEM_CTX(ndr, _mem_save_server_name_0, 0);
 
9510
                }
 
9511
                NDR_CHECK(ndr_pull_array_size(ndr, &r->in.account_name));
 
9512
                NDR_CHECK(ndr_pull_array_length(ndr, &r->in.account_name));
 
9513
                if (ndr_get_array_length(ndr, &r->in.account_name) > ndr_get_array_size(ndr, &r->in.account_name)) {
 
9514
                        return 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));
 
9515
                }
 
9516
                NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->in.account_name), sizeof(uint16_t)));
 
9517
                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));
 
9518
                NDR_CHECK(ndr_pull_array_size(ndr, &r->in.workstation));
 
9519
                NDR_CHECK(ndr_pull_array_length(ndr, &r->in.workstation));
 
9520
                if (ndr_get_array_length(ndr, &r->in.workstation) > ndr_get_array_size(ndr, &r->in.workstation)) {
 
9521
                        return 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));
 
9522
                }
 
9523
                NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->in.workstation), sizeof(uint16_t)));
 
9524
                NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->in.workstation, ndr_get_array_length(ndr, &r->in.workstation), sizeof(uint16_t), CH_UTF16));
 
9525
                NDR_PULL_ALLOC(ndr, r->out.info);
 
9526
                ZERO_STRUCTP(r->out.info);
 
9527
        }
 
9528
        if (flags & NDR_OUT) {
 
9529
                if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
 
9530
                        NDR_PULL_ALLOC(ndr, r->out.info);
 
9531
                }
 
9532
                _mem_save_info_0 = NDR_PULL_GET_MEM_CTX(ndr);
 
9533
                NDR_PULL_SET_MEM_CTX(ndr, r->out.info, LIBNDR_FLAG_REF_ALLOC);
 
9534
                NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_info));
 
9535
                if (_ptr_info) {
 
9536
                        NDR_PULL_ALLOC(ndr, *r->out.info);
 
9537
                } else {
 
9538
                        *r->out.info = NULL;
 
9539
                }
 
9540
                if (*r->out.info) {
 
9541
                        _mem_save_info_1 = NDR_PULL_GET_MEM_CTX(ndr);
 
9542
                        NDR_PULL_SET_MEM_CTX(ndr, *r->out.info, 0);
 
9543
                        NDR_CHECK(ndr_pull_netr_UasInfo(ndr, NDR_SCALARS|NDR_BUFFERS, *r->out.info));
 
9544
                        NDR_PULL_SET_MEM_CTX(ndr, _mem_save_info_1, 0);
 
9545
                }
 
9546
                NDR_PULL_SET_MEM_CTX(ndr, _mem_save_info_0, LIBNDR_FLAG_REF_ALLOC);
 
9547
                NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result));
 
9548
        }
 
9549
        return NDR_ERR_SUCCESS;
 
9550
}
 
9551
 
 
9552
_PUBLIC_ void ndr_print_netr_LogonUasLogon(struct ndr_print *ndr, const char *name, int flags, const struct netr_LogonUasLogon *r)
 
9553
{
 
9554
        ndr_print_struct(ndr, name, "netr_LogonUasLogon");
 
9555
        ndr->depth++;
 
9556
        if (flags & NDR_SET_VALUES) {
 
9557
                ndr->flags |= LIBNDR_PRINT_SET_VALUES;
 
9558
        }
 
9559
        if (flags & NDR_IN) {
 
9560
                ndr_print_struct(ndr, "in", "netr_LogonUasLogon");
 
9561
                ndr->depth++;
 
9562
                ndr_print_ptr(ndr, "server_name", r->in.server_name);
 
9563
                ndr->depth++;
 
9564
                if (r->in.server_name) {
 
9565
                        ndr_print_string(ndr, "server_name", r->in.server_name);
 
9566
                }
 
9567
                ndr->depth--;
 
9568
                ndr_print_ptr(ndr, "account_name", r->in.account_name);
 
9569
                ndr->depth++;
 
9570
                ndr_print_string(ndr, "account_name", r->in.account_name);
 
9571
                ndr->depth--;
 
9572
                ndr_print_ptr(ndr, "workstation", r->in.workstation);
 
9573
                ndr->depth++;
 
9574
                ndr_print_string(ndr, "workstation", r->in.workstation);
 
9575
                ndr->depth--;
 
9576
                ndr->depth--;
 
9577
        }
 
9578
        if (flags & NDR_OUT) {
 
9579
                ndr_print_struct(ndr, "out", "netr_LogonUasLogon");
 
9580
                ndr->depth++;
 
9581
                ndr_print_ptr(ndr, "info", r->out.info);
 
9582
                ndr->depth++;
 
9583
                ndr_print_ptr(ndr, "info", *r->out.info);
 
9584
                ndr->depth++;
 
9585
                if (*r->out.info) {
 
9586
                        ndr_print_netr_UasInfo(ndr, "info", *r->out.info);
 
9587
                }
 
9588
                ndr->depth--;
 
9589
                ndr->depth--;
 
9590
                ndr_print_WERROR(ndr, "result", r->out.result);
 
9591
                ndr->depth--;
 
9592
        }
 
9593
        ndr->depth--;
 
9594
}
 
9595
 
 
9596
static enum ndr_err_code ndr_push_netr_LogonUasLogoff(struct ndr_push *ndr, int flags, const struct netr_LogonUasLogoff *r)
 
9597
{
 
9598
        if (flags & NDR_IN) {
 
9599
                NDR_CHECK(ndr_push_unique_ptr(ndr, r->in.server_name));
 
9600
                if (r->in.server_name) {
 
9601
                        NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->in.server_name, CH_UTF16)));
 
9602
                        NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, 0));
 
9603
                        NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->in.server_name, CH_UTF16)));
 
9604
                        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));
 
9605
                }
 
9606
                if (r->in.account_name == NULL) {
 
9607
                        return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
 
9608
                }
 
9609
                NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->in.account_name, CH_UTF16)));
 
9610
                NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, 0));
 
9611
                NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->in.account_name, CH_UTF16)));
 
9612
                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));
 
9613
                if (r->in.workstation == NULL) {
 
9614
                        return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
 
9615
                }
 
9616
                NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->in.workstation, CH_UTF16)));
 
9617
                NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, 0));
 
9618
                NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->in.workstation, CH_UTF16)));
 
9619
                NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->in.workstation, ndr_charset_length(r->in.workstation, CH_UTF16), sizeof(uint16_t), CH_UTF16));
 
9620
        }
 
9621
        if (flags & NDR_OUT) {
 
9622
                if (r->out.info == NULL) {
 
9623
                        return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
 
9624
                }
 
9625
                NDR_CHECK(ndr_push_netr_UasLogoffInfo(ndr, NDR_SCALARS, r->out.info));
 
9626
                NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result));
 
9627
        }
 
9628
        return NDR_ERR_SUCCESS;
 
9629
}
 
9630
 
 
9631
static enum ndr_err_code ndr_pull_netr_LogonUasLogoff(struct ndr_pull *ndr, int flags, struct netr_LogonUasLogoff *r)
 
9632
{
 
9633
        uint32_t _ptr_server_name;
 
9634
        TALLOC_CTX *_mem_save_server_name_0;
 
9635
        TALLOC_CTX *_mem_save_info_0;
 
9636
        if (flags & NDR_IN) {
 
9637
                ZERO_STRUCT(r->out);
 
9638
 
 
9639
                NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_server_name));
 
9640
                if (_ptr_server_name) {
 
9641
                        NDR_PULL_ALLOC(ndr, r->in.server_name);
 
9642
                } else {
 
9643
                        r->in.server_name = NULL;
 
9644
                }
 
9645
                if (r->in.server_name) {
 
9646
                        _mem_save_server_name_0 = NDR_PULL_GET_MEM_CTX(ndr);
 
9647
                        NDR_PULL_SET_MEM_CTX(ndr, r->in.server_name, 0);
 
9648
                        NDR_CHECK(ndr_pull_array_size(ndr, &r->in.server_name));
 
9649
                        NDR_CHECK(ndr_pull_array_length(ndr, &r->in.server_name));
 
9650
                        if (ndr_get_array_length(ndr, &r->in.server_name) > ndr_get_array_size(ndr, &r->in.server_name)) {
 
9651
                                return 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));
 
9652
                        }
 
9653
                        NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->in.server_name), sizeof(uint16_t)));
 
9654
                        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));
 
9655
                        NDR_PULL_SET_MEM_CTX(ndr, _mem_save_server_name_0, 0);
 
9656
                }
 
9657
                NDR_CHECK(ndr_pull_array_size(ndr, &r->in.account_name));
 
9658
                NDR_CHECK(ndr_pull_array_length(ndr, &r->in.account_name));
 
9659
                if (ndr_get_array_length(ndr, &r->in.account_name) > ndr_get_array_size(ndr, &r->in.account_name)) {
 
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.account_name), ndr_get_array_length(ndr, &r->in.account_name));
 
9661
                }
 
9662
                NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->in.account_name), sizeof(uint16_t)));
 
9663
                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));
 
9664
                NDR_CHECK(ndr_pull_array_size(ndr, &r->in.workstation));
 
9665
                NDR_CHECK(ndr_pull_array_length(ndr, &r->in.workstation));
 
9666
                if (ndr_get_array_length(ndr, &r->in.workstation) > ndr_get_array_size(ndr, &r->in.workstation)) {
 
9667
                        return 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));
 
9668
                }
 
9669
                NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->in.workstation), sizeof(uint16_t)));
 
9670
                NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->in.workstation, ndr_get_array_length(ndr, &r->in.workstation), sizeof(uint16_t), CH_UTF16));
 
9671
                NDR_PULL_ALLOC(ndr, r->out.info);
 
9672
                ZERO_STRUCTP(r->out.info);
 
9673
        }
 
9674
        if (flags & NDR_OUT) {
 
9675
                if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
 
9676
                        NDR_PULL_ALLOC(ndr, r->out.info);
 
9677
                }
 
9678
                _mem_save_info_0 = NDR_PULL_GET_MEM_CTX(ndr);
 
9679
                NDR_PULL_SET_MEM_CTX(ndr, r->out.info, LIBNDR_FLAG_REF_ALLOC);
 
9680
                NDR_CHECK(ndr_pull_netr_UasLogoffInfo(ndr, NDR_SCALARS, r->out.info));
 
9681
                NDR_PULL_SET_MEM_CTX(ndr, _mem_save_info_0, LIBNDR_FLAG_REF_ALLOC);
 
9682
                NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result));
 
9683
        }
 
9684
        return NDR_ERR_SUCCESS;
 
9685
}
 
9686
 
 
9687
_PUBLIC_ void ndr_print_netr_LogonUasLogoff(struct ndr_print *ndr, const char *name, int flags, const struct netr_LogonUasLogoff *r)
 
9688
{
 
9689
        ndr_print_struct(ndr, name, "netr_LogonUasLogoff");
 
9690
        ndr->depth++;
 
9691
        if (flags & NDR_SET_VALUES) {
 
9692
                ndr->flags |= LIBNDR_PRINT_SET_VALUES;
 
9693
        }
 
9694
        if (flags & NDR_IN) {
 
9695
                ndr_print_struct(ndr, "in", "netr_LogonUasLogoff");
 
9696
                ndr->depth++;
 
9697
                ndr_print_ptr(ndr, "server_name", r->in.server_name);
 
9698
                ndr->depth++;
 
9699
                if (r->in.server_name) {
 
9700
                        ndr_print_string(ndr, "server_name", r->in.server_name);
 
9701
                }
 
9702
                ndr->depth--;
 
9703
                ndr_print_ptr(ndr, "account_name", r->in.account_name);
 
9704
                ndr->depth++;
 
9705
                ndr_print_string(ndr, "account_name", r->in.account_name);
 
9706
                ndr->depth--;
 
9707
                ndr_print_ptr(ndr, "workstation", r->in.workstation);
 
9708
                ndr->depth++;
 
9709
                ndr_print_string(ndr, "workstation", r->in.workstation);
 
9710
                ndr->depth--;
 
9711
                ndr->depth--;
 
9712
        }
 
9713
        if (flags & NDR_OUT) {
 
9714
                ndr_print_struct(ndr, "out", "netr_LogonUasLogoff");
 
9715
                ndr->depth++;
 
9716
                ndr_print_ptr(ndr, "info", r->out.info);
 
9717
                ndr->depth++;
 
9718
                ndr_print_netr_UasLogoffInfo(ndr, "info", r->out.info);
 
9719
                ndr->depth--;
 
9720
                ndr_print_WERROR(ndr, "result", r->out.result);
 
9721
                ndr->depth--;
 
9722
        }
 
9723
        ndr->depth--;
 
9724
}
 
9725
 
 
9726
static enum ndr_err_code ndr_push_netr_LogonSamLogon(struct ndr_push *ndr, int flags, const struct netr_LogonSamLogon *r)
 
9727
{
 
9728
        if (flags & NDR_IN) {
 
9729
                NDR_CHECK(ndr_push_unique_ptr(ndr, r->in.server_name));
 
9730
                if (r->in.server_name) {
 
9731
                        NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->in.server_name, CH_UTF16)));
 
9732
                        NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, 0));
 
9733
                        NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->in.server_name, CH_UTF16)));
 
9734
                        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));
 
9735
                }
 
9736
                NDR_CHECK(ndr_push_unique_ptr(ndr, r->in.computer_name));
 
9737
                if (r->in.computer_name) {
 
9738
                        NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->in.computer_name, CH_UTF16)));
 
9739
                        NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, 0));
 
9740
                        NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->in.computer_name, CH_UTF16)));
 
9741
                        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));
 
9742
                }
 
9743
                NDR_CHECK(ndr_push_unique_ptr(ndr, r->in.credential));
 
9744
                if (r->in.credential) {
 
9745
                        NDR_CHECK(ndr_push_netr_Authenticator(ndr, NDR_SCALARS, r->in.credential));
 
9746
                }
 
9747
                NDR_CHECK(ndr_push_unique_ptr(ndr, r->in.return_authenticator));
 
9748
                if (r->in.return_authenticator) {
 
9749
                        NDR_CHECK(ndr_push_netr_Authenticator(ndr, NDR_SCALARS, r->in.return_authenticator));
 
9750
                }
 
9751
                NDR_CHECK(ndr_push_netr_LogonInfoClass(ndr, NDR_SCALARS, r->in.logon_level));
 
9752
                if (r->in.logon == NULL) {
 
9753
                        return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
 
9754
                }
 
9755
                NDR_CHECK(ndr_push_set_switch_value(ndr, r->in.logon, r->in.logon_level));
 
9756
                NDR_CHECK(ndr_push_netr_LogonLevel(ndr, NDR_SCALARS|NDR_BUFFERS, r->in.logon));
 
9757
                NDR_CHECK(ndr_push_uint16(ndr, NDR_SCALARS, r->in.validation_level));
 
9758
        }
 
9759
        if (flags & NDR_OUT) {
 
9760
                NDR_CHECK(ndr_push_unique_ptr(ndr, r->out.return_authenticator));
 
9761
                if (r->out.return_authenticator) {
 
9762
                        NDR_CHECK(ndr_push_netr_Authenticator(ndr, NDR_SCALARS, r->out.return_authenticator));
 
9763
                }
 
9764
                if (r->out.validation == NULL) {
 
9765
                        return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
 
9766
                }
 
9767
                NDR_CHECK(ndr_push_set_switch_value(ndr, r->out.validation, r->in.validation_level));
 
9768
                NDR_CHECK(ndr_push_netr_Validation(ndr, NDR_SCALARS|NDR_BUFFERS, r->out.validation));
 
9769
                if (r->out.authoritative == NULL) {
 
9770
                        return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
 
9771
                }
 
9772
                NDR_CHECK(ndr_push_uint8(ndr, NDR_SCALARS, *r->out.authoritative));
 
9773
                NDR_CHECK(ndr_push_NTSTATUS(ndr, NDR_SCALARS, r->out.result));
 
9774
        }
 
9775
        return NDR_ERR_SUCCESS;
 
9776
}
 
9777
 
 
9778
static enum ndr_err_code ndr_pull_netr_LogonSamLogon(struct ndr_pull *ndr, int flags, struct netr_LogonSamLogon *r)
 
9779
{
 
9780
        uint32_t _ptr_server_name;
 
9781
        uint32_t _ptr_computer_name;
 
9782
        uint32_t _ptr_credential;
 
9783
        uint32_t _ptr_return_authenticator;
 
9784
        TALLOC_CTX *_mem_save_server_name_0;
 
9785
        TALLOC_CTX *_mem_save_computer_name_0;
 
9786
        TALLOC_CTX *_mem_save_credential_0;
 
9787
        TALLOC_CTX *_mem_save_return_authenticator_0;
 
9788
        TALLOC_CTX *_mem_save_logon_0;
 
9789
        TALLOC_CTX *_mem_save_validation_0;
 
9790
        TALLOC_CTX *_mem_save_authoritative_0;
 
9791
        if (flags & NDR_IN) {
 
9792
                ZERO_STRUCT(r->out);
 
9793
 
 
9794
                NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_server_name));
 
9795
                if (_ptr_server_name) {
 
9796
                        NDR_PULL_ALLOC(ndr, r->in.server_name);
 
9797
                } else {
 
9798
                        r->in.server_name = NULL;
 
9799
                }
 
9800
                if (r->in.server_name) {
 
9801
                        _mem_save_server_name_0 = NDR_PULL_GET_MEM_CTX(ndr);
 
9802
                        NDR_PULL_SET_MEM_CTX(ndr, r->in.server_name, 0);
 
9803
                        NDR_CHECK(ndr_pull_array_size(ndr, &r->in.server_name));
 
9804
                        NDR_CHECK(ndr_pull_array_length(ndr, &r->in.server_name));
 
9805
                        if (ndr_get_array_length(ndr, &r->in.server_name) > ndr_get_array_size(ndr, &r->in.server_name)) {
 
9806
                                return 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));
 
9807
                        }
 
9808
                        NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->in.server_name), sizeof(uint16_t)));
 
9809
                        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));
 
9810
                        NDR_PULL_SET_MEM_CTX(ndr, _mem_save_server_name_0, 0);
 
9811
                }
 
9812
                NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_computer_name));
 
9813
                if (_ptr_computer_name) {
 
9814
                        NDR_PULL_ALLOC(ndr, r->in.computer_name);
 
9815
                } else {
 
9816
                        r->in.computer_name = NULL;
 
9817
                }
 
9818
                if (r->in.computer_name) {
 
9819
                        _mem_save_computer_name_0 = NDR_PULL_GET_MEM_CTX(ndr);
 
9820
                        NDR_PULL_SET_MEM_CTX(ndr, r->in.computer_name, 0);
 
9821
                        NDR_CHECK(ndr_pull_array_size(ndr, &r->in.computer_name));
 
9822
                        NDR_CHECK(ndr_pull_array_length(ndr, &r->in.computer_name));
 
9823
                        if (ndr_get_array_length(ndr, &r->in.computer_name) > ndr_get_array_size(ndr, &r->in.computer_name)) {
 
9824
                                return 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));
 
9825
                        }
 
9826
                        NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->in.computer_name), sizeof(uint16_t)));
 
9827
                        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));
 
9828
                        NDR_PULL_SET_MEM_CTX(ndr, _mem_save_computer_name_0, 0);
 
9829
                }
 
9830
                NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_credential));
 
9831
                if (_ptr_credential) {
 
9832
                        NDR_PULL_ALLOC(ndr, r->in.credential);
 
9833
                } else {
 
9834
                        r->in.credential = NULL;
 
9835
                }
 
9836
                if (r->in.credential) {
 
9837
                        _mem_save_credential_0 = NDR_PULL_GET_MEM_CTX(ndr);
 
9838
                        NDR_PULL_SET_MEM_CTX(ndr, r->in.credential, 0);
 
9839
                        NDR_CHECK(ndr_pull_netr_Authenticator(ndr, NDR_SCALARS, r->in.credential));
 
9840
                        NDR_PULL_SET_MEM_CTX(ndr, _mem_save_credential_0, 0);
 
9841
                }
 
9842
                NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_return_authenticator));
 
9843
                if (_ptr_return_authenticator) {
 
9844
                        NDR_PULL_ALLOC(ndr, r->in.return_authenticator);
 
9845
                } else {
 
9846
                        r->in.return_authenticator = NULL;
 
9847
                }
 
9848
                if (r->in.return_authenticator) {
 
9849
                        _mem_save_return_authenticator_0 = NDR_PULL_GET_MEM_CTX(ndr);
 
9850
                        NDR_PULL_SET_MEM_CTX(ndr, r->in.return_authenticator, 0);
 
9851
                        NDR_CHECK(ndr_pull_netr_Authenticator(ndr, NDR_SCALARS, r->in.return_authenticator));
 
9852
                        NDR_PULL_SET_MEM_CTX(ndr, _mem_save_return_authenticator_0, 0);
 
9853
                }
 
9854
                NDR_CHECK(ndr_pull_netr_LogonInfoClass(ndr, NDR_SCALARS, &r->in.logon_level));
 
9855
                if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
 
9856
                        NDR_PULL_ALLOC(ndr, r->in.logon);
 
9857
                }
 
9858
                _mem_save_logon_0 = NDR_PULL_GET_MEM_CTX(ndr);
 
9859
                NDR_PULL_SET_MEM_CTX(ndr, r->in.logon, LIBNDR_FLAG_REF_ALLOC);
 
9860
                NDR_CHECK(ndr_pull_set_switch_value(ndr, r->in.logon, r->in.logon_level));
 
9861
                NDR_CHECK(ndr_pull_netr_LogonLevel(ndr, NDR_SCALARS|NDR_BUFFERS, r->in.logon));
 
9862
                NDR_PULL_SET_MEM_CTX(ndr, _mem_save_logon_0, LIBNDR_FLAG_REF_ALLOC);
 
9863
                NDR_CHECK(ndr_pull_uint16(ndr, NDR_SCALARS, &r->in.validation_level));
 
9864
                NDR_PULL_ALLOC(ndr, r->out.validation);
 
9865
                ZERO_STRUCTP(r->out.validation);
 
9866
                NDR_PULL_ALLOC(ndr, r->out.authoritative);
 
9867
                ZERO_STRUCTP(r->out.authoritative);
 
9868
        }
 
9869
        if (flags & NDR_OUT) {
 
9870
                NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_return_authenticator));
 
9871
                if (_ptr_return_authenticator) {
 
9872
                        NDR_PULL_ALLOC(ndr, r->out.return_authenticator);
 
9873
                } else {
 
9874
                        r->out.return_authenticator = NULL;
 
9875
                }
 
9876
                if (r->out.return_authenticator) {
 
9877
                        _mem_save_return_authenticator_0 = NDR_PULL_GET_MEM_CTX(ndr);
 
9878
                        NDR_PULL_SET_MEM_CTX(ndr, r->out.return_authenticator, 0);
 
9879
                        NDR_CHECK(ndr_pull_netr_Authenticator(ndr, NDR_SCALARS, r->out.return_authenticator));
 
9880
                        NDR_PULL_SET_MEM_CTX(ndr, _mem_save_return_authenticator_0, 0);
 
9881
                }
 
9882
                if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
 
9883
                        NDR_PULL_ALLOC(ndr, r->out.validation);
 
9884
                }
 
9885
                _mem_save_validation_0 = NDR_PULL_GET_MEM_CTX(ndr);
 
9886
                NDR_PULL_SET_MEM_CTX(ndr, r->out.validation, LIBNDR_FLAG_REF_ALLOC);
 
9887
                NDR_CHECK(ndr_pull_set_switch_value(ndr, r->out.validation, r->in.validation_level));
 
9888
                NDR_CHECK(ndr_pull_netr_Validation(ndr, NDR_SCALARS|NDR_BUFFERS, r->out.validation));
 
9889
                NDR_PULL_SET_MEM_CTX(ndr, _mem_save_validation_0, LIBNDR_FLAG_REF_ALLOC);
 
9890
                if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
 
9891
                        NDR_PULL_ALLOC(ndr, r->out.authoritative);
 
9892
                }
 
9893
                _mem_save_authoritative_0 = NDR_PULL_GET_MEM_CTX(ndr);
 
9894
                NDR_PULL_SET_MEM_CTX(ndr, r->out.authoritative, LIBNDR_FLAG_REF_ALLOC);
 
9895
                NDR_CHECK(ndr_pull_uint8(ndr, NDR_SCALARS, r->out.authoritative));
 
9896
                NDR_PULL_SET_MEM_CTX(ndr, _mem_save_authoritative_0, LIBNDR_FLAG_REF_ALLOC);
 
9897
                NDR_CHECK(ndr_pull_NTSTATUS(ndr, NDR_SCALARS, &r->out.result));
 
9898
        }
 
9899
        return NDR_ERR_SUCCESS;
 
9900
}
 
9901
 
 
9902
_PUBLIC_ void ndr_print_netr_LogonSamLogon(struct ndr_print *ndr, const char *name, int flags, const struct netr_LogonSamLogon *r)
 
9903
{
 
9904
        ndr_print_struct(ndr, name, "netr_LogonSamLogon");
 
9905
        ndr->depth++;
 
9906
        if (flags & NDR_SET_VALUES) {
 
9907
                ndr->flags |= LIBNDR_PRINT_SET_VALUES;
 
9908
        }
 
9909
        if (flags & NDR_IN) {
 
9910
                ndr_print_struct(ndr, "in", "netr_LogonSamLogon");
 
9911
                ndr->depth++;
 
9912
                ndr_print_ptr(ndr, "server_name", r->in.server_name);
 
9913
                ndr->depth++;
 
9914
                if (r->in.server_name) {
 
9915
                        ndr_print_string(ndr, "server_name", r->in.server_name);
 
9916
                }
 
9917
                ndr->depth--;
 
9918
                ndr_print_ptr(ndr, "computer_name", r->in.computer_name);
 
9919
                ndr->depth++;
 
9920
                if (r->in.computer_name) {
 
9921
                        ndr_print_string(ndr, "computer_name", r->in.computer_name);
 
9922
                }
 
9923
                ndr->depth--;
 
9924
                ndr_print_ptr(ndr, "credential", r->in.credential);
 
9925
                ndr->depth++;
 
9926
                if (r->in.credential) {
 
9927
                        ndr_print_netr_Authenticator(ndr, "credential", r->in.credential);
 
9928
                }
 
9929
                ndr->depth--;
 
9930
                ndr_print_ptr(ndr, "return_authenticator", r->in.return_authenticator);
 
9931
                ndr->depth++;
 
9932
                if (r->in.return_authenticator) {
 
9933
                        ndr_print_netr_Authenticator(ndr, "return_authenticator", r->in.return_authenticator);
 
9934
                }
 
9935
                ndr->depth--;
 
9936
                ndr_print_netr_LogonInfoClass(ndr, "logon_level", r->in.logon_level);
 
9937
                ndr_print_ptr(ndr, "logon", r->in.logon);
 
9938
                ndr->depth++;
 
9939
                ndr_print_set_switch_value(ndr, r->in.logon, r->in.logon_level);
 
9940
                ndr_print_netr_LogonLevel(ndr, "logon", r->in.logon);
 
9941
                ndr->depth--;
 
9942
                ndr_print_uint16(ndr, "validation_level", r->in.validation_level);
 
9943
                ndr->depth--;
 
9944
        }
 
9945
        if (flags & NDR_OUT) {
 
9946
                ndr_print_struct(ndr, "out", "netr_LogonSamLogon");
 
9947
                ndr->depth++;
 
9948
                ndr_print_ptr(ndr, "return_authenticator", r->out.return_authenticator);
 
9949
                ndr->depth++;
 
9950
                if (r->out.return_authenticator) {
 
9951
                        ndr_print_netr_Authenticator(ndr, "return_authenticator", r->out.return_authenticator);
 
9952
                }
 
9953
                ndr->depth--;
 
9954
                ndr_print_ptr(ndr, "validation", r->out.validation);
 
9955
                ndr->depth++;
 
9956
                ndr_print_set_switch_value(ndr, r->out.validation, r->in.validation_level);
 
9957
                ndr_print_netr_Validation(ndr, "validation", r->out.validation);
 
9958
                ndr->depth--;
 
9959
                ndr_print_ptr(ndr, "authoritative", r->out.authoritative);
 
9960
                ndr->depth++;
 
9961
                ndr_print_uint8(ndr, "authoritative", *r->out.authoritative);
 
9962
                ndr->depth--;
 
9963
                ndr_print_NTSTATUS(ndr, "result", r->out.result);
 
9964
                ndr->depth--;
 
9965
        }
 
9966
        ndr->depth--;
 
9967
}
 
9968
 
 
9969
static enum ndr_err_code ndr_push_netr_LogonSamLogoff(struct ndr_push *ndr, int flags, const struct netr_LogonSamLogoff *r)
 
9970
{
 
9971
        if (flags & NDR_IN) {
 
9972
                NDR_CHECK(ndr_push_unique_ptr(ndr, r->in.server_name));
 
9973
                if (r->in.server_name) {
 
9974
                        NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->in.server_name, CH_UTF16)));
 
9975
                        NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, 0));
 
9976
                        NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->in.server_name, CH_UTF16)));
 
9977
                        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));
 
9978
                }
 
9979
                NDR_CHECK(ndr_push_unique_ptr(ndr, r->in.computer_name));
 
9980
                if (r->in.computer_name) {
 
9981
                        NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->in.computer_name, CH_UTF16)));
 
9982
                        NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, 0));
 
9983
                        NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->in.computer_name, CH_UTF16)));
 
9984
                        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));
 
9985
                }
 
9986
                NDR_CHECK(ndr_push_unique_ptr(ndr, r->in.credential));
 
9987
                if (r->in.credential) {
 
9988
                        NDR_CHECK(ndr_push_netr_Authenticator(ndr, NDR_SCALARS, r->in.credential));
 
9989
                }
 
9990
                NDR_CHECK(ndr_push_unique_ptr(ndr, r->in.return_authenticator));
 
9991
                if (r->in.return_authenticator) {
 
9992
                        NDR_CHECK(ndr_push_netr_Authenticator(ndr, NDR_SCALARS, r->in.return_authenticator));
 
9993
                }
 
9994
                NDR_CHECK(ndr_push_netr_LogonInfoClass(ndr, NDR_SCALARS, r->in.logon_level));
 
9995
                NDR_CHECK(ndr_push_set_switch_value(ndr, &r->in.logon, r->in.logon_level));
 
9996
                NDR_CHECK(ndr_push_netr_LogonLevel(ndr, NDR_SCALARS|NDR_BUFFERS, &r->in.logon));
 
9997
        }
 
9998
        if (flags & NDR_OUT) {
 
9999
                NDR_CHECK(ndr_push_unique_ptr(ndr, r->out.return_authenticator));
 
10000
                if (r->out.return_authenticator) {
 
10001
                        NDR_CHECK(ndr_push_netr_Authenticator(ndr, NDR_SCALARS, r->out.return_authenticator));
 
10002
                }
 
10003
                NDR_CHECK(ndr_push_NTSTATUS(ndr, NDR_SCALARS, r->out.result));
 
10004
        }
 
10005
        return NDR_ERR_SUCCESS;
 
10006
}
 
10007
 
 
10008
static enum ndr_err_code ndr_pull_netr_LogonSamLogoff(struct ndr_pull *ndr, int flags, struct netr_LogonSamLogoff *r)
 
10009
{
 
10010
        uint32_t _ptr_server_name;
 
10011
        uint32_t _ptr_computer_name;
 
10012
        uint32_t _ptr_credential;
 
10013
        uint32_t _ptr_return_authenticator;
 
10014
        TALLOC_CTX *_mem_save_server_name_0;
 
10015
        TALLOC_CTX *_mem_save_computer_name_0;
 
10016
        TALLOC_CTX *_mem_save_credential_0;
 
10017
        TALLOC_CTX *_mem_save_return_authenticator_0;
 
10018
        if (flags & NDR_IN) {
 
10019
                ZERO_STRUCT(r->out);
 
10020
 
 
10021
                NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_server_name));
 
10022
                if (_ptr_server_name) {
 
10023
                        NDR_PULL_ALLOC(ndr, r->in.server_name);
 
10024
                } else {
 
10025
                        r->in.server_name = NULL;
 
10026
                }
 
10027
                if (r->in.server_name) {
 
10028
                        _mem_save_server_name_0 = NDR_PULL_GET_MEM_CTX(ndr);
 
10029
                        NDR_PULL_SET_MEM_CTX(ndr, r->in.server_name, 0);
 
10030
                        NDR_CHECK(ndr_pull_array_size(ndr, &r->in.server_name));
 
10031
                        NDR_CHECK(ndr_pull_array_length(ndr, &r->in.server_name));
 
10032
                        if (ndr_get_array_length(ndr, &r->in.server_name) > ndr_get_array_size(ndr, &r->in.server_name)) {
 
10033
                                return 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));
 
10034
                        }
 
10035
                        NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->in.server_name), sizeof(uint16_t)));
 
10036
                        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));
 
10037
                        NDR_PULL_SET_MEM_CTX(ndr, _mem_save_server_name_0, 0);
 
10038
                }
 
10039
                NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_computer_name));
 
10040
                if (_ptr_computer_name) {
 
10041
                        NDR_PULL_ALLOC(ndr, r->in.computer_name);
 
10042
                } else {
 
10043
                        r->in.computer_name = NULL;
 
10044
                }
 
10045
                if (r->in.computer_name) {
 
10046
                        _mem_save_computer_name_0 = NDR_PULL_GET_MEM_CTX(ndr);
 
10047
                        NDR_PULL_SET_MEM_CTX(ndr, r->in.computer_name, 0);
 
10048
                        NDR_CHECK(ndr_pull_array_size(ndr, &r->in.computer_name));
 
10049
                        NDR_CHECK(ndr_pull_array_length(ndr, &r->in.computer_name));
 
10050
                        if (ndr_get_array_length(ndr, &r->in.computer_name) > ndr_get_array_size(ndr, &r->in.computer_name)) {
 
10051
                                return 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));
 
10052
                        }
 
10053
                        NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->in.computer_name), sizeof(uint16_t)));
 
10054
                        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));
 
10055
                        NDR_PULL_SET_MEM_CTX(ndr, _mem_save_computer_name_0, 0);
 
10056
                }
 
10057
                NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_credential));
 
10058
                if (_ptr_credential) {
 
10059
                        NDR_PULL_ALLOC(ndr, r->in.credential);
 
10060
                } else {
 
10061
                        r->in.credential = NULL;
 
10062
                }
 
10063
                if (r->in.credential) {
 
10064
                        _mem_save_credential_0 = NDR_PULL_GET_MEM_CTX(ndr);
 
10065
                        NDR_PULL_SET_MEM_CTX(ndr, r->in.credential, 0);
 
10066
                        NDR_CHECK(ndr_pull_netr_Authenticator(ndr, NDR_SCALARS, r->in.credential));
 
10067
                        NDR_PULL_SET_MEM_CTX(ndr, _mem_save_credential_0, 0);
 
10068
                }
 
10069
                NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_return_authenticator));
 
10070
                if (_ptr_return_authenticator) {
 
10071
                        NDR_PULL_ALLOC(ndr, r->in.return_authenticator);
 
10072
                } else {
 
10073
                        r->in.return_authenticator = NULL;
 
10074
                }
 
10075
                if (r->in.return_authenticator) {
 
10076
                        _mem_save_return_authenticator_0 = NDR_PULL_GET_MEM_CTX(ndr);
 
10077
                        NDR_PULL_SET_MEM_CTX(ndr, r->in.return_authenticator, 0);
 
10078
                        NDR_CHECK(ndr_pull_netr_Authenticator(ndr, NDR_SCALARS, r->in.return_authenticator));
 
10079
                        NDR_PULL_SET_MEM_CTX(ndr, _mem_save_return_authenticator_0, 0);
 
10080
                }
 
10081
                NDR_CHECK(ndr_pull_netr_LogonInfoClass(ndr, NDR_SCALARS, &r->in.logon_level));
 
10082
                NDR_CHECK(ndr_pull_set_switch_value(ndr, &r->in.logon, r->in.logon_level));
 
10083
                NDR_CHECK(ndr_pull_netr_LogonLevel(ndr, NDR_SCALARS|NDR_BUFFERS, &r->in.logon));
 
10084
        }
 
10085
        if (flags & NDR_OUT) {
 
10086
                NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_return_authenticator));
 
10087
                if (_ptr_return_authenticator) {
 
10088
                        NDR_PULL_ALLOC(ndr, r->out.return_authenticator);
 
10089
                } else {
 
10090
                        r->out.return_authenticator = NULL;
 
10091
                }
 
10092
                if (r->out.return_authenticator) {
 
10093
                        _mem_save_return_authenticator_0 = NDR_PULL_GET_MEM_CTX(ndr);
 
10094
                        NDR_PULL_SET_MEM_CTX(ndr, r->out.return_authenticator, 0);
 
10095
                        NDR_CHECK(ndr_pull_netr_Authenticator(ndr, NDR_SCALARS, r->out.return_authenticator));
 
10096
                        NDR_PULL_SET_MEM_CTX(ndr, _mem_save_return_authenticator_0, 0);
 
10097
                }
 
10098
                NDR_CHECK(ndr_pull_NTSTATUS(ndr, NDR_SCALARS, &r->out.result));
 
10099
        }
 
10100
        return NDR_ERR_SUCCESS;
 
10101
}
 
10102
 
 
10103
_PUBLIC_ void ndr_print_netr_LogonSamLogoff(struct ndr_print *ndr, const char *name, int flags, const struct netr_LogonSamLogoff *r)
 
10104
{
 
10105
        ndr_print_struct(ndr, name, "netr_LogonSamLogoff");
 
10106
        ndr->depth++;
 
10107
        if (flags & NDR_SET_VALUES) {
 
10108
                ndr->flags |= LIBNDR_PRINT_SET_VALUES;
 
10109
        }
 
10110
        if (flags & NDR_IN) {
 
10111
                ndr_print_struct(ndr, "in", "netr_LogonSamLogoff");
 
10112
                ndr->depth++;
 
10113
                ndr_print_ptr(ndr, "server_name", r->in.server_name);
 
10114
                ndr->depth++;
 
10115
                if (r->in.server_name) {
 
10116
                        ndr_print_string(ndr, "server_name", r->in.server_name);
 
10117
                }
 
10118
                ndr->depth--;
 
10119
                ndr_print_ptr(ndr, "computer_name", r->in.computer_name);
 
10120
                ndr->depth++;
 
10121
                if (r->in.computer_name) {
 
10122
                        ndr_print_string(ndr, "computer_name", r->in.computer_name);
 
10123
                }
 
10124
                ndr->depth--;
 
10125
                ndr_print_ptr(ndr, "credential", r->in.credential);
 
10126
                ndr->depth++;
 
10127
                if (r->in.credential) {
 
10128
                        ndr_print_netr_Authenticator(ndr, "credential", r->in.credential);
 
10129
                }
 
10130
                ndr->depth--;
 
10131
                ndr_print_ptr(ndr, "return_authenticator", r->in.return_authenticator);
 
10132
                ndr->depth++;
 
10133
                if (r->in.return_authenticator) {
 
10134
                        ndr_print_netr_Authenticator(ndr, "return_authenticator", r->in.return_authenticator);
 
10135
                }
 
10136
                ndr->depth--;
 
10137
                ndr_print_netr_LogonInfoClass(ndr, "logon_level", r->in.logon_level);
 
10138
                ndr_print_set_switch_value(ndr, &r->in.logon, r->in.logon_level);
 
10139
                ndr_print_netr_LogonLevel(ndr, "logon", &r->in.logon);
 
10140
                ndr->depth--;
 
10141
        }
 
10142
        if (flags & NDR_OUT) {
 
10143
                ndr_print_struct(ndr, "out", "netr_LogonSamLogoff");
 
10144
                ndr->depth++;
 
10145
                ndr_print_ptr(ndr, "return_authenticator", r->out.return_authenticator);
 
10146
                ndr->depth++;
 
10147
                if (r->out.return_authenticator) {
 
10148
                        ndr_print_netr_Authenticator(ndr, "return_authenticator", r->out.return_authenticator);
 
10149
                }
 
10150
                ndr->depth--;
 
10151
                ndr_print_NTSTATUS(ndr, "result", r->out.result);
 
10152
                ndr->depth--;
 
10153
        }
 
10154
        ndr->depth--;
 
10155
}
 
10156
 
 
10157
_PUBLIC_ enum ndr_err_code ndr_push_netr_ServerReqChallenge(struct ndr_push *ndr, int flags, const struct netr_ServerReqChallenge *r)
 
10158
{
 
10159
        if (flags & NDR_IN) {
 
10160
                NDR_CHECK(ndr_push_unique_ptr(ndr, r->in.server_name));
 
10161
                if (r->in.server_name) {
 
10162
                        NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->in.server_name, CH_UTF16)));
 
10163
                        NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, 0));
 
10164
                        NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->in.server_name, CH_UTF16)));
 
10165
                        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));
 
10166
                }
 
10167
                if (r->in.computer_name == NULL) {
 
10168
                        return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
 
10169
                }
 
10170
                NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->in.computer_name, CH_UTF16)));
 
10171
                NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, 0));
 
10172
                NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->in.computer_name, CH_UTF16)));
 
10173
                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));
 
10174
                if (r->in.credentials == NULL) {
 
10175
                        return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
 
10176
                }
 
10177
                NDR_CHECK(ndr_push_netr_Credential(ndr, NDR_SCALARS, r->in.credentials));
 
10178
        }
 
10179
        if (flags & NDR_OUT) {
 
10180
                if (r->out.return_credentials == NULL) {
 
10181
                        return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
 
10182
                }
 
10183
                NDR_CHECK(ndr_push_netr_Credential(ndr, NDR_SCALARS, r->out.return_credentials));
 
10184
                NDR_CHECK(ndr_push_NTSTATUS(ndr, NDR_SCALARS, r->out.result));
 
10185
        }
 
10186
        return NDR_ERR_SUCCESS;
 
10187
}
 
10188
 
 
10189
_PUBLIC_ enum ndr_err_code ndr_pull_netr_ServerReqChallenge(struct ndr_pull *ndr, int flags, struct netr_ServerReqChallenge *r)
 
10190
{
 
10191
        uint32_t _ptr_server_name;
 
10192
        TALLOC_CTX *_mem_save_server_name_0;
 
10193
        TALLOC_CTX *_mem_save_credentials_0;
 
10194
        TALLOC_CTX *_mem_save_return_credentials_0;
 
10195
        if (flags & NDR_IN) {
 
10196
                ZERO_STRUCT(r->out);
 
10197
 
 
10198
                NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_server_name));
 
10199
                if (_ptr_server_name) {
 
10200
                        NDR_PULL_ALLOC(ndr, r->in.server_name);
 
10201
                } else {
 
10202
                        r->in.server_name = NULL;
 
10203
                }
 
10204
                if (r->in.server_name) {
 
10205
                        _mem_save_server_name_0 = NDR_PULL_GET_MEM_CTX(ndr);
 
10206
                        NDR_PULL_SET_MEM_CTX(ndr, r->in.server_name, 0);
 
10207
                        NDR_CHECK(ndr_pull_array_size(ndr, &r->in.server_name));
 
10208
                        NDR_CHECK(ndr_pull_array_length(ndr, &r->in.server_name));
 
10209
                        if (ndr_get_array_length(ndr, &r->in.server_name) > ndr_get_array_size(ndr, &r->in.server_name)) {
 
10210
                                return 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));
 
10211
                        }
 
10212
                        NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->in.server_name), sizeof(uint16_t)));
 
10213
                        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));
 
10214
                        NDR_PULL_SET_MEM_CTX(ndr, _mem_save_server_name_0, 0);
 
10215
                }
 
10216
                NDR_CHECK(ndr_pull_array_size(ndr, &r->in.computer_name));
 
10217
                NDR_CHECK(ndr_pull_array_length(ndr, &r->in.computer_name));
 
10218
                if (ndr_get_array_length(ndr, &r->in.computer_name) > ndr_get_array_size(ndr, &r->in.computer_name)) {
 
10219
                        return 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));
 
10220
                }
 
10221
                NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->in.computer_name), sizeof(uint16_t)));
 
10222
                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));
 
10223
                if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
 
10224
                        NDR_PULL_ALLOC(ndr, r->in.credentials);
 
10225
                }
 
10226
                _mem_save_credentials_0 = NDR_PULL_GET_MEM_CTX(ndr);
 
10227
                NDR_PULL_SET_MEM_CTX(ndr, r->in.credentials, LIBNDR_FLAG_REF_ALLOC);
 
10228
                NDR_CHECK(ndr_pull_netr_Credential(ndr, NDR_SCALARS, r->in.credentials));
 
10229
                NDR_PULL_SET_MEM_CTX(ndr, _mem_save_credentials_0, LIBNDR_FLAG_REF_ALLOC);
 
10230
                NDR_PULL_ALLOC(ndr, r->out.return_credentials);
 
10231
                ZERO_STRUCTP(r->out.return_credentials);
 
10232
        }
 
10233
        if (flags & NDR_OUT) {
 
10234
                if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
 
10235
                        NDR_PULL_ALLOC(ndr, r->out.return_credentials);
 
10236
                }
 
10237
                _mem_save_return_credentials_0 = NDR_PULL_GET_MEM_CTX(ndr);
 
10238
                NDR_PULL_SET_MEM_CTX(ndr, r->out.return_credentials, LIBNDR_FLAG_REF_ALLOC);
 
10239
                NDR_CHECK(ndr_pull_netr_Credential(ndr, NDR_SCALARS, r->out.return_credentials));
 
10240
                NDR_PULL_SET_MEM_CTX(ndr, _mem_save_return_credentials_0, LIBNDR_FLAG_REF_ALLOC);
 
10241
                NDR_CHECK(ndr_pull_NTSTATUS(ndr, NDR_SCALARS, &r->out.result));
 
10242
        }
 
10243
        return NDR_ERR_SUCCESS;
 
10244
}
 
10245
 
 
10246
_PUBLIC_ void ndr_print_netr_ServerReqChallenge(struct ndr_print *ndr, const char *name, int flags, const struct netr_ServerReqChallenge *r)
 
10247
{
 
10248
        ndr_print_struct(ndr, name, "netr_ServerReqChallenge");
 
10249
        ndr->depth++;
 
10250
        if (flags & NDR_SET_VALUES) {
 
10251
                ndr->flags |= LIBNDR_PRINT_SET_VALUES;
 
10252
        }
 
10253
        if (flags & NDR_IN) {
 
10254
                ndr_print_struct(ndr, "in", "netr_ServerReqChallenge");
 
10255
                ndr->depth++;
 
10256
                ndr_print_ptr(ndr, "server_name", r->in.server_name);
 
10257
                ndr->depth++;
 
10258
                if (r->in.server_name) {
 
10259
                        ndr_print_string(ndr, "server_name", r->in.server_name);
 
10260
                }
 
10261
                ndr->depth--;
 
10262
                ndr_print_ptr(ndr, "computer_name", r->in.computer_name);
 
10263
                ndr->depth++;
 
10264
                ndr_print_string(ndr, "computer_name", r->in.computer_name);
 
10265
                ndr->depth--;
 
10266
                ndr_print_ptr(ndr, "credentials", r->in.credentials);
 
10267
                ndr->depth++;
 
10268
                ndr_print_netr_Credential(ndr, "credentials", r->in.credentials);
 
10269
                ndr->depth--;
 
10270
                ndr->depth--;
 
10271
        }
 
10272
        if (flags & NDR_OUT) {
 
10273
                ndr_print_struct(ndr, "out", "netr_ServerReqChallenge");
 
10274
                ndr->depth++;
 
10275
                ndr_print_ptr(ndr, "return_credentials", r->out.return_credentials);
 
10276
                ndr->depth++;
 
10277
                ndr_print_netr_Credential(ndr, "return_credentials", r->out.return_credentials);
 
10278
                ndr->depth--;
 
10279
                ndr_print_NTSTATUS(ndr, "result", r->out.result);
 
10280
                ndr->depth--;
 
10281
        }
 
10282
        ndr->depth--;
 
10283
}
 
10284
 
 
10285
static enum ndr_err_code ndr_push_netr_ServerAuthenticate(struct ndr_push *ndr, int flags, const struct netr_ServerAuthenticate *r)
 
10286
{
 
10287
        if (flags & NDR_IN) {
 
10288
                NDR_CHECK(ndr_push_unique_ptr(ndr, r->in.server_name));
 
10289
                if (r->in.server_name) {
 
10290
                        NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->in.server_name, CH_UTF16)));
 
10291
                        NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, 0));
 
10292
                        NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->in.server_name, CH_UTF16)));
 
10293
                        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));
 
10294
                }
 
10295
                if (r->in.account_name == NULL) {
 
10296
                        return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
 
10297
                }
 
10298
                NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->in.account_name, CH_UTF16)));
 
10299
                NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, 0));
 
10300
                NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->in.account_name, CH_UTF16)));
 
10301
                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));
 
10302
                NDR_CHECK(ndr_push_netr_SchannelType(ndr, NDR_SCALARS, r->in.secure_channel_type));
 
10303
                if (r->in.computer_name == NULL) {
 
10304
                        return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
 
10305
                }
 
10306
                NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->in.computer_name, CH_UTF16)));
 
10307
                NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, 0));
 
10308
                NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->in.computer_name, CH_UTF16)));
 
10309
                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));
 
10310
                if (r->in.credentials == NULL) {
 
10311
                        return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
 
10312
                }
 
10313
                NDR_CHECK(ndr_push_netr_Credential(ndr, NDR_SCALARS, r->in.credentials));
 
10314
        }
 
10315
        if (flags & NDR_OUT) {
 
10316
                if (r->out.return_credentials == NULL) {
 
10317
                        return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
 
10318
                }
 
10319
                NDR_CHECK(ndr_push_netr_Credential(ndr, NDR_SCALARS, r->out.return_credentials));
 
10320
                NDR_CHECK(ndr_push_NTSTATUS(ndr, NDR_SCALARS, r->out.result));
 
10321
        }
 
10322
        return NDR_ERR_SUCCESS;
 
10323
}
 
10324
 
 
10325
static enum ndr_err_code ndr_pull_netr_ServerAuthenticate(struct ndr_pull *ndr, int flags, struct netr_ServerAuthenticate *r)
 
10326
{
 
10327
        uint32_t _ptr_server_name;
 
10328
        TALLOC_CTX *_mem_save_server_name_0;
 
10329
        TALLOC_CTX *_mem_save_credentials_0;
 
10330
        TALLOC_CTX *_mem_save_return_credentials_0;
 
10331
        if (flags & NDR_IN) {
 
10332
                ZERO_STRUCT(r->out);
 
10333
 
 
10334
                NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_server_name));
 
10335
                if (_ptr_server_name) {
 
10336
                        NDR_PULL_ALLOC(ndr, r->in.server_name);
 
10337
                } else {
 
10338
                        r->in.server_name = NULL;
 
10339
                }
 
10340
                if (r->in.server_name) {
 
10341
                        _mem_save_server_name_0 = NDR_PULL_GET_MEM_CTX(ndr);
 
10342
                        NDR_PULL_SET_MEM_CTX(ndr, r->in.server_name, 0);
 
10343
                        NDR_CHECK(ndr_pull_array_size(ndr, &r->in.server_name));
 
10344
                        NDR_CHECK(ndr_pull_array_length(ndr, &r->in.server_name));
 
10345
                        if (ndr_get_array_length(ndr, &r->in.server_name) > ndr_get_array_size(ndr, &r->in.server_name)) {
 
10346
                                return 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));
 
10347
                        }
 
10348
                        NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->in.server_name), sizeof(uint16_t)));
 
10349
                        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));
 
10350
                        NDR_PULL_SET_MEM_CTX(ndr, _mem_save_server_name_0, 0);
 
10351
                }
 
10352
                NDR_CHECK(ndr_pull_array_size(ndr, &r->in.account_name));
 
10353
                NDR_CHECK(ndr_pull_array_length(ndr, &r->in.account_name));
 
10354
                if (ndr_get_array_length(ndr, &r->in.account_name) > ndr_get_array_size(ndr, &r->in.account_name)) {
 
10355
                        return 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));
 
10356
                }
 
10357
                NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->in.account_name), sizeof(uint16_t)));
 
10358
                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));
 
10359
                NDR_CHECK(ndr_pull_netr_SchannelType(ndr, NDR_SCALARS, &r->in.secure_channel_type));
 
10360
                NDR_CHECK(ndr_pull_array_size(ndr, &r->in.computer_name));
 
10361
                NDR_CHECK(ndr_pull_array_length(ndr, &r->in.computer_name));
 
10362
                if (ndr_get_array_length(ndr, &r->in.computer_name) > ndr_get_array_size(ndr, &r->in.computer_name)) {
 
10363
                        return 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));
 
10364
                }
 
10365
                NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->in.computer_name), sizeof(uint16_t)));
 
10366
                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));
 
10367
                if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
 
10368
                        NDR_PULL_ALLOC(ndr, r->in.credentials);
 
10369
                }
 
10370
                _mem_save_credentials_0 = NDR_PULL_GET_MEM_CTX(ndr);
 
10371
                NDR_PULL_SET_MEM_CTX(ndr, r->in.credentials, LIBNDR_FLAG_REF_ALLOC);
 
10372
                NDR_CHECK(ndr_pull_netr_Credential(ndr, NDR_SCALARS, r->in.credentials));
 
10373
                NDR_PULL_SET_MEM_CTX(ndr, _mem_save_credentials_0, LIBNDR_FLAG_REF_ALLOC);
 
10374
                NDR_PULL_ALLOC(ndr, r->out.return_credentials);
 
10375
                ZERO_STRUCTP(r->out.return_credentials);
 
10376
        }
 
10377
        if (flags & NDR_OUT) {
 
10378
                if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
 
10379
                        NDR_PULL_ALLOC(ndr, r->out.return_credentials);
 
10380
                }
 
10381
                _mem_save_return_credentials_0 = NDR_PULL_GET_MEM_CTX(ndr);
 
10382
                NDR_PULL_SET_MEM_CTX(ndr, r->out.return_credentials, LIBNDR_FLAG_REF_ALLOC);
 
10383
                NDR_CHECK(ndr_pull_netr_Credential(ndr, NDR_SCALARS, r->out.return_credentials));
 
10384
                NDR_PULL_SET_MEM_CTX(ndr, _mem_save_return_credentials_0, LIBNDR_FLAG_REF_ALLOC);
 
10385
                NDR_CHECK(ndr_pull_NTSTATUS(ndr, NDR_SCALARS, &r->out.result));
 
10386
        }
 
10387
        return NDR_ERR_SUCCESS;
 
10388
}
 
10389
 
 
10390
_PUBLIC_ void ndr_print_netr_ServerAuthenticate(struct ndr_print *ndr, const char *name, int flags, const struct netr_ServerAuthenticate *r)
 
10391
{
 
10392
        ndr_print_struct(ndr, name, "netr_ServerAuthenticate");
 
10393
        ndr->depth++;
 
10394
        if (flags & NDR_SET_VALUES) {
 
10395
                ndr->flags |= LIBNDR_PRINT_SET_VALUES;
 
10396
        }
 
10397
        if (flags & NDR_IN) {
 
10398
                ndr_print_struct(ndr, "in", "netr_ServerAuthenticate");
 
10399
                ndr->depth++;
 
10400
                ndr_print_ptr(ndr, "server_name", r->in.server_name);
 
10401
                ndr->depth++;
 
10402
                if (r->in.server_name) {
 
10403
                        ndr_print_string(ndr, "server_name", r->in.server_name);
 
10404
                }
 
10405
                ndr->depth--;
 
10406
                ndr_print_ptr(ndr, "account_name", r->in.account_name);
 
10407
                ndr->depth++;
 
10408
                ndr_print_string(ndr, "account_name", r->in.account_name);
 
10409
                ndr->depth--;
 
10410
                ndr_print_netr_SchannelType(ndr, "secure_channel_type", r->in.secure_channel_type);
 
10411
                ndr_print_ptr(ndr, "computer_name", r->in.computer_name);
 
10412
                ndr->depth++;
 
10413
                ndr_print_string(ndr, "computer_name", r->in.computer_name);
 
10414
                ndr->depth--;
 
10415
                ndr_print_ptr(ndr, "credentials", r->in.credentials);
 
10416
                ndr->depth++;
 
10417
                ndr_print_netr_Credential(ndr, "credentials", r->in.credentials);
 
10418
                ndr->depth--;
 
10419
                ndr->depth--;
 
10420
        }
 
10421
        if (flags & NDR_OUT) {
 
10422
                ndr_print_struct(ndr, "out", "netr_ServerAuthenticate");
 
10423
                ndr->depth++;
 
10424
                ndr_print_ptr(ndr, "return_credentials", r->out.return_credentials);
 
10425
                ndr->depth++;
 
10426
                ndr_print_netr_Credential(ndr, "return_credentials", r->out.return_credentials);
 
10427
                ndr->depth--;
 
10428
                ndr_print_NTSTATUS(ndr, "result", r->out.result);
 
10429
                ndr->depth--;
 
10430
        }
 
10431
        ndr->depth--;
 
10432
}
 
10433
 
 
10434
static enum ndr_err_code ndr_push_netr_ServerPasswordSet(struct ndr_push *ndr, int flags, const struct netr_ServerPasswordSet *r)
 
10435
{
 
10436
        if (flags & NDR_IN) {
 
10437
                NDR_CHECK(ndr_push_unique_ptr(ndr, r->in.server_name));
 
10438
                if (r->in.server_name) {
 
10439
                        NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->in.server_name, CH_UTF16)));
 
10440
                        NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, 0));
 
10441
                        NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->in.server_name, CH_UTF16)));
 
10442
                        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));
 
10443
                }
 
10444
                if (r->in.account_name == NULL) {
 
10445
                        return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
 
10446
                }
 
10447
                NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->in.account_name, CH_UTF16)));
 
10448
                NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, 0));
 
10449
                NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->in.account_name, CH_UTF16)));
 
10450
                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));
 
10451
                NDR_CHECK(ndr_push_netr_SchannelType(ndr, NDR_SCALARS, r->in.secure_channel_type));
 
10452
                if (r->in.computer_name == NULL) {
 
10453
                        return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
 
10454
                }
 
10455
                NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->in.computer_name, CH_UTF16)));
 
10456
                NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, 0));
 
10457
                NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->in.computer_name, CH_UTF16)));
 
10458
                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));
 
10459
                if (r->in.credential == NULL) {
 
10460
                        return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
 
10461
                }
 
10462
                NDR_CHECK(ndr_push_netr_Authenticator(ndr, NDR_SCALARS, r->in.credential));
 
10463
                if (r->in.new_password == NULL) {
 
10464
                        return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
 
10465
                }
 
10466
                NDR_CHECK(ndr_push_samr_Password(ndr, NDR_SCALARS, r->in.new_password));
 
10467
        }
 
10468
        if (flags & NDR_OUT) {
 
10469
                if (r->out.return_authenticator == NULL) {
 
10470
                        return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
 
10471
                }
 
10472
                NDR_CHECK(ndr_push_netr_Authenticator(ndr, NDR_SCALARS, r->out.return_authenticator));
 
10473
                NDR_CHECK(ndr_push_NTSTATUS(ndr, NDR_SCALARS, r->out.result));
 
10474
        }
 
10475
        return NDR_ERR_SUCCESS;
 
10476
}
 
10477
 
 
10478
static enum ndr_err_code ndr_pull_netr_ServerPasswordSet(struct ndr_pull *ndr, int flags, struct netr_ServerPasswordSet *r)
 
10479
{
 
10480
        uint32_t _ptr_server_name;
 
10481
        TALLOC_CTX *_mem_save_server_name_0;
 
10482
        TALLOC_CTX *_mem_save_credential_0;
 
10483
        TALLOC_CTX *_mem_save_return_authenticator_0;
 
10484
        TALLOC_CTX *_mem_save_new_password_0;
 
10485
        if (flags & NDR_IN) {
 
10486
                ZERO_STRUCT(r->out);
 
10487
 
 
10488
                NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_server_name));
 
10489
                if (_ptr_server_name) {
 
10490
                        NDR_PULL_ALLOC(ndr, r->in.server_name);
 
10491
                } else {
 
10492
                        r->in.server_name = NULL;
 
10493
                }
 
10494
                if (r->in.server_name) {
 
10495
                        _mem_save_server_name_0 = NDR_PULL_GET_MEM_CTX(ndr);
 
10496
                        NDR_PULL_SET_MEM_CTX(ndr, r->in.server_name, 0);
 
10497
                        NDR_CHECK(ndr_pull_array_size(ndr, &r->in.server_name));
 
10498
                        NDR_CHECK(ndr_pull_array_length(ndr, &r->in.server_name));
 
10499
                        if (ndr_get_array_length(ndr, &r->in.server_name) > ndr_get_array_size(ndr, &r->in.server_name)) {
 
10500
                                return 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));
 
10501
                        }
 
10502
                        NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->in.server_name), sizeof(uint16_t)));
 
10503
                        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));
 
10504
                        NDR_PULL_SET_MEM_CTX(ndr, _mem_save_server_name_0, 0);
 
10505
                }
 
10506
                NDR_CHECK(ndr_pull_array_size(ndr, &r->in.account_name));
 
10507
                NDR_CHECK(ndr_pull_array_length(ndr, &r->in.account_name));
 
10508
                if (ndr_get_array_length(ndr, &r->in.account_name) > ndr_get_array_size(ndr, &r->in.account_name)) {
 
10509
                        return 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));
 
10510
                }
 
10511
                NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->in.account_name), sizeof(uint16_t)));
 
10512
                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));
 
10513
                NDR_CHECK(ndr_pull_netr_SchannelType(ndr, NDR_SCALARS, &r->in.secure_channel_type));
 
10514
                NDR_CHECK(ndr_pull_array_size(ndr, &r->in.computer_name));
 
10515
                NDR_CHECK(ndr_pull_array_length(ndr, &r->in.computer_name));
 
10516
                if (ndr_get_array_length(ndr, &r->in.computer_name) > ndr_get_array_size(ndr, &r->in.computer_name)) {
 
10517
                        return 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));
 
10518
                }
 
10519
                NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->in.computer_name), sizeof(uint16_t)));
 
10520
                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));
 
10521
                if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
 
10522
                        NDR_PULL_ALLOC(ndr, r->in.credential);
 
10523
                }
 
10524
                _mem_save_credential_0 = NDR_PULL_GET_MEM_CTX(ndr);
 
10525
                NDR_PULL_SET_MEM_CTX(ndr, r->in.credential, LIBNDR_FLAG_REF_ALLOC);
 
10526
                NDR_CHECK(ndr_pull_netr_Authenticator(ndr, NDR_SCALARS, r->in.credential));
 
10527
                NDR_PULL_SET_MEM_CTX(ndr, _mem_save_credential_0, LIBNDR_FLAG_REF_ALLOC);
 
10528
                if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
 
10529
                        NDR_PULL_ALLOC(ndr, r->in.new_password);
 
10530
                }
 
10531
                _mem_save_new_password_0 = NDR_PULL_GET_MEM_CTX(ndr);
 
10532
                NDR_PULL_SET_MEM_CTX(ndr, r->in.new_password, LIBNDR_FLAG_REF_ALLOC);
 
10533
                NDR_CHECK(ndr_pull_samr_Password(ndr, NDR_SCALARS, r->in.new_password));
 
10534
                NDR_PULL_SET_MEM_CTX(ndr, _mem_save_new_password_0, LIBNDR_FLAG_REF_ALLOC);
 
10535
                NDR_PULL_ALLOC(ndr, r->out.return_authenticator);
 
10536
                ZERO_STRUCTP(r->out.return_authenticator);
 
10537
        }
 
10538
        if (flags & NDR_OUT) {
 
10539
                if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
 
10540
                        NDR_PULL_ALLOC(ndr, r->out.return_authenticator);
 
10541
                }
 
10542
                _mem_save_return_authenticator_0 = NDR_PULL_GET_MEM_CTX(ndr);
 
10543
                NDR_PULL_SET_MEM_CTX(ndr, r->out.return_authenticator, LIBNDR_FLAG_REF_ALLOC);
 
10544
                NDR_CHECK(ndr_pull_netr_Authenticator(ndr, NDR_SCALARS, r->out.return_authenticator));
 
10545
                NDR_PULL_SET_MEM_CTX(ndr, _mem_save_return_authenticator_0, LIBNDR_FLAG_REF_ALLOC);
 
10546
                NDR_CHECK(ndr_pull_NTSTATUS(ndr, NDR_SCALARS, &r->out.result));
 
10547
        }
 
10548
        return NDR_ERR_SUCCESS;
 
10549
}
 
10550
 
 
10551
_PUBLIC_ void ndr_print_netr_ServerPasswordSet(struct ndr_print *ndr, const char *name, int flags, const struct netr_ServerPasswordSet *r)
 
10552
{
 
10553
        ndr_print_struct(ndr, name, "netr_ServerPasswordSet");
 
10554
        ndr->depth++;
 
10555
        if (flags & NDR_SET_VALUES) {
 
10556
                ndr->flags |= LIBNDR_PRINT_SET_VALUES;
 
10557
        }
 
10558
        if (flags & NDR_IN) {
 
10559
                ndr_print_struct(ndr, "in", "netr_ServerPasswordSet");
 
10560
                ndr->depth++;
 
10561
                ndr_print_ptr(ndr, "server_name", r->in.server_name);
 
10562
                ndr->depth++;
 
10563
                if (r->in.server_name) {
 
10564
                        ndr_print_string(ndr, "server_name", r->in.server_name);
 
10565
                }
 
10566
                ndr->depth--;
 
10567
                ndr_print_ptr(ndr, "account_name", r->in.account_name);
 
10568
                ndr->depth++;
 
10569
                ndr_print_string(ndr, "account_name", r->in.account_name);
 
10570
                ndr->depth--;
 
10571
                ndr_print_netr_SchannelType(ndr, "secure_channel_type", r->in.secure_channel_type);
 
10572
                ndr_print_ptr(ndr, "computer_name", r->in.computer_name);
 
10573
                ndr->depth++;
 
10574
                ndr_print_string(ndr, "computer_name", r->in.computer_name);
 
10575
                ndr->depth--;
 
10576
                ndr_print_ptr(ndr, "credential", r->in.credential);
 
10577
                ndr->depth++;
 
10578
                ndr_print_netr_Authenticator(ndr, "credential", r->in.credential);
 
10579
                ndr->depth--;
 
10580
                ndr_print_ptr(ndr, "new_password", r->in.new_password);
 
10581
                ndr->depth++;
 
10582
                ndr_print_samr_Password(ndr, "new_password", r->in.new_password);
 
10583
                ndr->depth--;
 
10584
                ndr->depth--;
 
10585
        }
 
10586
        if (flags & NDR_OUT) {
 
10587
                ndr_print_struct(ndr, "out", "netr_ServerPasswordSet");
 
10588
                ndr->depth++;
 
10589
                ndr_print_ptr(ndr, "return_authenticator", r->out.return_authenticator);
 
10590
                ndr->depth++;
 
10591
                ndr_print_netr_Authenticator(ndr, "return_authenticator", r->out.return_authenticator);
 
10592
                ndr->depth--;
 
10593
                ndr_print_NTSTATUS(ndr, "result", r->out.result);
 
10594
                ndr->depth--;
 
10595
        }
 
10596
        ndr->depth--;
 
10597
}
 
10598
 
 
10599
static enum ndr_err_code ndr_push_netr_DatabaseDeltas(struct ndr_push *ndr, int flags, const struct netr_DatabaseDeltas *r)
 
10600
{
 
10601
        if (flags & NDR_IN) {
 
10602
                if (r->in.logon_server == NULL) {
 
10603
                        return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
 
10604
                }
 
10605
                NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->in.logon_server, CH_UTF16)));
 
10606
                NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, 0));
 
10607
                NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->in.logon_server, CH_UTF16)));
 
10608
                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));
 
10609
                if (r->in.computername == NULL) {
 
10610
                        return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
 
10611
                }
 
10612
                NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->in.computername, CH_UTF16)));
 
10613
                NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, 0));
 
10614
                NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->in.computername, CH_UTF16)));
 
10615
                NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->in.computername, ndr_charset_length(r->in.computername, CH_UTF16), sizeof(uint16_t), CH_UTF16));
 
10616
                if (r->in.credential == NULL) {
 
10617
                        return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
 
10618
                }
 
10619
                NDR_CHECK(ndr_push_netr_Authenticator(ndr, NDR_SCALARS, r->in.credential));
 
10620
                if (r->in.return_authenticator == NULL) {
 
10621
                        return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
 
10622
                }
 
10623
                NDR_CHECK(ndr_push_netr_Authenticator(ndr, NDR_SCALARS, r->in.return_authenticator));
 
10624
                NDR_CHECK(ndr_push_netr_SamDatabaseID(ndr, NDR_SCALARS, r->in.database_id));
 
10625
                if (r->in.sequence_num == NULL) {
 
10626
                        return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
 
10627
                }
 
10628
                NDR_CHECK(ndr_push_udlong(ndr, NDR_SCALARS, *r->in.sequence_num));
 
10629
                NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->in.preferredmaximumlength));
 
10630
        }
 
10631
        if (flags & NDR_OUT) {
 
10632
                if (r->out.return_authenticator == NULL) {
 
10633
                        return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
 
10634
                }
 
10635
                NDR_CHECK(ndr_push_netr_Authenticator(ndr, NDR_SCALARS, r->out.return_authenticator));
 
10636
                if (r->out.sequence_num == NULL) {
 
10637
                        return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
 
10638
                }
 
10639
                NDR_CHECK(ndr_push_udlong(ndr, NDR_SCALARS, *r->out.sequence_num));
 
10640
                if (r->out.delta_enum_array == NULL) {
 
10641
                        return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
 
10642
                }
 
10643
                NDR_CHECK(ndr_push_unique_ptr(ndr, *r->out.delta_enum_array));
 
10644
                if (*r->out.delta_enum_array) {
 
10645
                        NDR_CHECK(ndr_push_netr_DELTA_ENUM_ARRAY(ndr, NDR_SCALARS|NDR_BUFFERS, *r->out.delta_enum_array));
 
10646
                }
 
10647
                NDR_CHECK(ndr_push_NTSTATUS(ndr, NDR_SCALARS, r->out.result));
 
10648
        }
 
10649
        return NDR_ERR_SUCCESS;
 
10650
}
 
10651
 
 
10652
static enum ndr_err_code ndr_pull_netr_DatabaseDeltas(struct ndr_pull *ndr, int flags, struct netr_DatabaseDeltas *r)
 
10653
{
 
10654
        uint32_t _ptr_delta_enum_array;
 
10655
        TALLOC_CTX *_mem_save_credential_0;
 
10656
        TALLOC_CTX *_mem_save_return_authenticator_0;
 
10657
        TALLOC_CTX *_mem_save_sequence_num_0;
 
10658
        TALLOC_CTX *_mem_save_delta_enum_array_0;
 
10659
        TALLOC_CTX *_mem_save_delta_enum_array_1;
 
10660
        if (flags & NDR_IN) {
 
10661
                ZERO_STRUCT(r->out);
 
10662
 
 
10663
                NDR_CHECK(ndr_pull_array_size(ndr, &r->in.logon_server));
 
10664
                NDR_CHECK(ndr_pull_array_length(ndr, &r->in.logon_server));
 
10665
                if (ndr_get_array_length(ndr, &r->in.logon_server) > ndr_get_array_size(ndr, &r->in.logon_server)) {
 
10666
                        return 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));
 
10667
                }
 
10668
                NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->in.logon_server), sizeof(uint16_t)));
 
10669
                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));
 
10670
                NDR_CHECK(ndr_pull_array_size(ndr, &r->in.computername));
 
10671
                NDR_CHECK(ndr_pull_array_length(ndr, &r->in.computername));
 
10672
                if (ndr_get_array_length(ndr, &r->in.computername) > ndr_get_array_size(ndr, &r->in.computername)) {
 
10673
                        return 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));
 
10674
                }
 
10675
                NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->in.computername), sizeof(uint16_t)));
 
10676
                NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->in.computername, ndr_get_array_length(ndr, &r->in.computername), sizeof(uint16_t), CH_UTF16));
 
10677
                if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
 
10678
                        NDR_PULL_ALLOC(ndr, r->in.credential);
 
10679
                }
 
10680
                _mem_save_credential_0 = NDR_PULL_GET_MEM_CTX(ndr);
 
10681
                NDR_PULL_SET_MEM_CTX(ndr, r->in.credential, LIBNDR_FLAG_REF_ALLOC);
 
10682
                NDR_CHECK(ndr_pull_netr_Authenticator(ndr, NDR_SCALARS, r->in.credential));
 
10683
                NDR_PULL_SET_MEM_CTX(ndr, _mem_save_credential_0, LIBNDR_FLAG_REF_ALLOC);
 
10684
                if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
 
10685
                        NDR_PULL_ALLOC(ndr, r->in.return_authenticator);
 
10686
                }
 
10687
                _mem_save_return_authenticator_0 = NDR_PULL_GET_MEM_CTX(ndr);
 
10688
                NDR_PULL_SET_MEM_CTX(ndr, r->in.return_authenticator, LIBNDR_FLAG_REF_ALLOC);
 
10689
                NDR_CHECK(ndr_pull_netr_Authenticator(ndr, NDR_SCALARS, r->in.return_authenticator));
 
10690
                NDR_PULL_SET_MEM_CTX(ndr, _mem_save_return_authenticator_0, LIBNDR_FLAG_REF_ALLOC);
 
10691
                NDR_CHECK(ndr_pull_netr_SamDatabaseID(ndr, NDR_SCALARS, &r->in.database_id));
 
10692
                if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
 
10693
                        NDR_PULL_ALLOC(ndr, r->in.sequence_num);
 
10694
                }
 
10695
                _mem_save_sequence_num_0 = NDR_PULL_GET_MEM_CTX(ndr);
 
10696
                NDR_PULL_SET_MEM_CTX(ndr, r->in.sequence_num, LIBNDR_FLAG_REF_ALLOC);
 
10697
                NDR_CHECK(ndr_pull_udlong(ndr, NDR_SCALARS, r->in.sequence_num));
 
10698
                NDR_PULL_SET_MEM_CTX(ndr, _mem_save_sequence_num_0, LIBNDR_FLAG_REF_ALLOC);
 
10699
                NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->in.preferredmaximumlength));
 
10700
                NDR_PULL_ALLOC(ndr, r->out.return_authenticator);
 
10701
                *r->out.return_authenticator = *r->in.return_authenticator;
 
10702
                NDR_PULL_ALLOC(ndr, r->out.sequence_num);
 
10703
                *r->out.sequence_num = *r->in.sequence_num;
 
10704
                NDR_PULL_ALLOC(ndr, r->out.delta_enum_array);
 
10705
                ZERO_STRUCTP(r->out.delta_enum_array);
 
10706
        }
 
10707
        if (flags & NDR_OUT) {
 
10708
                if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
 
10709
                        NDR_PULL_ALLOC(ndr, r->out.return_authenticator);
 
10710
                }
 
10711
                _mem_save_return_authenticator_0 = NDR_PULL_GET_MEM_CTX(ndr);
 
10712
                NDR_PULL_SET_MEM_CTX(ndr, r->out.return_authenticator, LIBNDR_FLAG_REF_ALLOC);
 
10713
                NDR_CHECK(ndr_pull_netr_Authenticator(ndr, NDR_SCALARS, r->out.return_authenticator));
 
10714
                NDR_PULL_SET_MEM_CTX(ndr, _mem_save_return_authenticator_0, LIBNDR_FLAG_REF_ALLOC);
 
10715
                if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
 
10716
                        NDR_PULL_ALLOC(ndr, r->out.sequence_num);
 
10717
                }
 
10718
                _mem_save_sequence_num_0 = NDR_PULL_GET_MEM_CTX(ndr);
 
10719
                NDR_PULL_SET_MEM_CTX(ndr, r->out.sequence_num, LIBNDR_FLAG_REF_ALLOC);
 
10720
                NDR_CHECK(ndr_pull_udlong(ndr, NDR_SCALARS, r->out.sequence_num));
 
10721
                NDR_PULL_SET_MEM_CTX(ndr, _mem_save_sequence_num_0, LIBNDR_FLAG_REF_ALLOC);
 
10722
                if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
 
10723
                        NDR_PULL_ALLOC(ndr, r->out.delta_enum_array);
 
10724
                }
 
10725
                _mem_save_delta_enum_array_0 = NDR_PULL_GET_MEM_CTX(ndr);
 
10726
                NDR_PULL_SET_MEM_CTX(ndr, r->out.delta_enum_array, LIBNDR_FLAG_REF_ALLOC);
 
10727
                NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_delta_enum_array));
 
10728
                if (_ptr_delta_enum_array) {
 
10729
                        NDR_PULL_ALLOC(ndr, *r->out.delta_enum_array);
 
10730
                } else {
 
10731
                        *r->out.delta_enum_array = NULL;
 
10732
                }
 
10733
                if (*r->out.delta_enum_array) {
 
10734
                        _mem_save_delta_enum_array_1 = NDR_PULL_GET_MEM_CTX(ndr);
 
10735
                        NDR_PULL_SET_MEM_CTX(ndr, *r->out.delta_enum_array, 0);
 
10736
                        NDR_CHECK(ndr_pull_netr_DELTA_ENUM_ARRAY(ndr, NDR_SCALARS|NDR_BUFFERS, *r->out.delta_enum_array));
 
10737
                        NDR_PULL_SET_MEM_CTX(ndr, _mem_save_delta_enum_array_1, 0);
 
10738
                }
 
10739
                NDR_PULL_SET_MEM_CTX(ndr, _mem_save_delta_enum_array_0, LIBNDR_FLAG_REF_ALLOC);
 
10740
                NDR_CHECK(ndr_pull_NTSTATUS(ndr, NDR_SCALARS, &r->out.result));
 
10741
        }
 
10742
        return NDR_ERR_SUCCESS;
 
10743
}
 
10744
 
 
10745
_PUBLIC_ void ndr_print_netr_DatabaseDeltas(struct ndr_print *ndr, const char *name, int flags, const struct netr_DatabaseDeltas *r)
 
10746
{
 
10747
        ndr_print_struct(ndr, name, "netr_DatabaseDeltas");
 
10748
        ndr->depth++;
 
10749
        if (flags & NDR_SET_VALUES) {
 
10750
                ndr->flags |= LIBNDR_PRINT_SET_VALUES;
 
10751
        }
 
10752
        if (flags & NDR_IN) {
 
10753
                ndr_print_struct(ndr, "in", "netr_DatabaseDeltas");
 
10754
                ndr->depth++;
 
10755
                ndr_print_ptr(ndr, "logon_server", r->in.logon_server);
 
10756
                ndr->depth++;
 
10757
                ndr_print_string(ndr, "logon_server", r->in.logon_server);
 
10758
                ndr->depth--;
 
10759
                ndr_print_ptr(ndr, "computername", r->in.computername);
 
10760
                ndr->depth++;
 
10761
                ndr_print_string(ndr, "computername", r->in.computername);
 
10762
                ndr->depth--;
 
10763
                ndr_print_ptr(ndr, "credential", r->in.credential);
 
10764
                ndr->depth++;
 
10765
                ndr_print_netr_Authenticator(ndr, "credential", r->in.credential);
 
10766
                ndr->depth--;
 
10767
                ndr_print_ptr(ndr, "return_authenticator", r->in.return_authenticator);
 
10768
                ndr->depth++;
 
10769
                ndr_print_netr_Authenticator(ndr, "return_authenticator", r->in.return_authenticator);
 
10770
                ndr->depth--;
 
10771
                ndr_print_netr_SamDatabaseID(ndr, "database_id", r->in.database_id);
 
10772
                ndr_print_ptr(ndr, "sequence_num", r->in.sequence_num);
 
10773
                ndr->depth++;
 
10774
                ndr_print_udlong(ndr, "sequence_num", *r->in.sequence_num);
 
10775
                ndr->depth--;
 
10776
                ndr_print_uint32(ndr, "preferredmaximumlength", r->in.preferredmaximumlength);
 
10777
                ndr->depth--;
 
10778
        }
 
10779
        if (flags & NDR_OUT) {
 
10780
                ndr_print_struct(ndr, "out", "netr_DatabaseDeltas");
 
10781
                ndr->depth++;
 
10782
                ndr_print_ptr(ndr, "return_authenticator", r->out.return_authenticator);
 
10783
                ndr->depth++;
 
10784
                ndr_print_netr_Authenticator(ndr, "return_authenticator", r->out.return_authenticator);
 
10785
                ndr->depth--;
 
10786
                ndr_print_ptr(ndr, "sequence_num", r->out.sequence_num);
 
10787
                ndr->depth++;
 
10788
                ndr_print_udlong(ndr, "sequence_num", *r->out.sequence_num);
 
10789
                ndr->depth--;
 
10790
                ndr_print_ptr(ndr, "delta_enum_array", r->out.delta_enum_array);
 
10791
                ndr->depth++;
 
10792
                ndr_print_ptr(ndr, "delta_enum_array", *r->out.delta_enum_array);
 
10793
                ndr->depth++;
 
10794
                if (*r->out.delta_enum_array) {
 
10795
                        ndr_print_netr_DELTA_ENUM_ARRAY(ndr, "delta_enum_array", *r->out.delta_enum_array);
 
10796
                }
 
10797
                ndr->depth--;
 
10798
                ndr->depth--;
 
10799
                ndr_print_NTSTATUS(ndr, "result", r->out.result);
 
10800
                ndr->depth--;
 
10801
        }
 
10802
        ndr->depth--;
 
10803
}
 
10804
 
 
10805
static enum ndr_err_code ndr_push_netr_DatabaseSync(struct ndr_push *ndr, int flags, const struct netr_DatabaseSync *r)
 
10806
{
 
10807
        if (flags & NDR_IN) {
 
10808
                if (r->in.logon_server == NULL) {
 
10809
                        return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
 
10810
                }
 
10811
                NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->in.logon_server, CH_UTF16)));
 
10812
                NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, 0));
 
10813
                NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->in.logon_server, CH_UTF16)));
 
10814
                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));
 
10815
                if (r->in.computername == NULL) {
 
10816
                        return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
 
10817
                }
 
10818
                NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->in.computername, CH_UTF16)));
 
10819
                NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, 0));
 
10820
                NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->in.computername, CH_UTF16)));
 
10821
                NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->in.computername, ndr_charset_length(r->in.computername, CH_UTF16), sizeof(uint16_t), CH_UTF16));
 
10822
                if (r->in.credential == NULL) {
 
10823
                        return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
 
10824
                }
 
10825
                NDR_CHECK(ndr_push_netr_Authenticator(ndr, NDR_SCALARS, r->in.credential));
 
10826
                if (r->in.return_authenticator == NULL) {
 
10827
                        return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
 
10828
                }
 
10829
                NDR_CHECK(ndr_push_netr_Authenticator(ndr, NDR_SCALARS, r->in.return_authenticator));
 
10830
                NDR_CHECK(ndr_push_netr_SamDatabaseID(ndr, NDR_SCALARS, r->in.database_id));
 
10831
                if (r->in.sync_context == NULL) {
 
10832
                        return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
 
10833
                }
 
10834
                NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, *r->in.sync_context));
 
10835
                NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->in.preferredmaximumlength));
 
10836
        }
 
10837
        if (flags & NDR_OUT) {
 
10838
                if (r->out.return_authenticator == NULL) {
 
10839
                        return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
 
10840
                }
 
10841
                NDR_CHECK(ndr_push_netr_Authenticator(ndr, NDR_SCALARS, r->out.return_authenticator));
 
10842
                if (r->out.sync_context == NULL) {
 
10843
                        return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
 
10844
                }
 
10845
                NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, *r->out.sync_context));
 
10846
                if (r->out.delta_enum_array == NULL) {
 
10847
                        return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
 
10848
                }
 
10849
                NDR_CHECK(ndr_push_unique_ptr(ndr, *r->out.delta_enum_array));
 
10850
                if (*r->out.delta_enum_array) {
 
10851
                        NDR_CHECK(ndr_push_netr_DELTA_ENUM_ARRAY(ndr, NDR_SCALARS|NDR_BUFFERS, *r->out.delta_enum_array));
 
10852
                }
 
10853
                NDR_CHECK(ndr_push_NTSTATUS(ndr, NDR_SCALARS, r->out.result));
 
10854
        }
 
10855
        return NDR_ERR_SUCCESS;
 
10856
}
 
10857
 
 
10858
static enum ndr_err_code ndr_pull_netr_DatabaseSync(struct ndr_pull *ndr, int flags, struct netr_DatabaseSync *r)
 
10859
{
 
10860
        uint32_t _ptr_delta_enum_array;
 
10861
        TALLOC_CTX *_mem_save_credential_0;
 
10862
        TALLOC_CTX *_mem_save_return_authenticator_0;
 
10863
        TALLOC_CTX *_mem_save_sync_context_0;
 
10864
        TALLOC_CTX *_mem_save_delta_enum_array_0;
 
10865
        TALLOC_CTX *_mem_save_delta_enum_array_1;
 
10866
        if (flags & NDR_IN) {
 
10867
                ZERO_STRUCT(r->out);
 
10868
 
 
10869
                NDR_CHECK(ndr_pull_array_size(ndr, &r->in.logon_server));
 
10870
                NDR_CHECK(ndr_pull_array_length(ndr, &r->in.logon_server));
 
10871
                if (ndr_get_array_length(ndr, &r->in.logon_server) > ndr_get_array_size(ndr, &r->in.logon_server)) {
 
10872
                        return 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));
 
10873
                }
 
10874
                NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->in.logon_server), sizeof(uint16_t)));
 
10875
                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));
 
10876
                NDR_CHECK(ndr_pull_array_size(ndr, &r->in.computername));
 
10877
                NDR_CHECK(ndr_pull_array_length(ndr, &r->in.computername));
 
10878
                if (ndr_get_array_length(ndr, &r->in.computername) > ndr_get_array_size(ndr, &r->in.computername)) {
 
10879
                        return 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));
 
10880
                }
 
10881
                NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->in.computername), sizeof(uint16_t)));
 
10882
                NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->in.computername, ndr_get_array_length(ndr, &r->in.computername), sizeof(uint16_t), CH_UTF16));
 
10883
                if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
 
10884
                        NDR_PULL_ALLOC(ndr, r->in.credential);
 
10885
                }
 
10886
                _mem_save_credential_0 = NDR_PULL_GET_MEM_CTX(ndr);
 
10887
                NDR_PULL_SET_MEM_CTX(ndr, r->in.credential, LIBNDR_FLAG_REF_ALLOC);
 
10888
                NDR_CHECK(ndr_pull_netr_Authenticator(ndr, NDR_SCALARS, r->in.credential));
 
10889
                NDR_PULL_SET_MEM_CTX(ndr, _mem_save_credential_0, LIBNDR_FLAG_REF_ALLOC);
 
10890
                if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
 
10891
                        NDR_PULL_ALLOC(ndr, r->in.return_authenticator);
 
10892
                }
 
10893
                _mem_save_return_authenticator_0 = NDR_PULL_GET_MEM_CTX(ndr);
 
10894
                NDR_PULL_SET_MEM_CTX(ndr, r->in.return_authenticator, LIBNDR_FLAG_REF_ALLOC);
 
10895
                NDR_CHECK(ndr_pull_netr_Authenticator(ndr, NDR_SCALARS, r->in.return_authenticator));
 
10896
                NDR_PULL_SET_MEM_CTX(ndr, _mem_save_return_authenticator_0, LIBNDR_FLAG_REF_ALLOC);
 
10897
                NDR_CHECK(ndr_pull_netr_SamDatabaseID(ndr, NDR_SCALARS, &r->in.database_id));
 
10898
                if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
 
10899
                        NDR_PULL_ALLOC(ndr, r->in.sync_context);
 
10900
                }
 
10901
                _mem_save_sync_context_0 = NDR_PULL_GET_MEM_CTX(ndr);
 
10902
                NDR_PULL_SET_MEM_CTX(ndr, r->in.sync_context, LIBNDR_FLAG_REF_ALLOC);
 
10903
                NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, r->in.sync_context));
 
10904
                NDR_PULL_SET_MEM_CTX(ndr, _mem_save_sync_context_0, LIBNDR_FLAG_REF_ALLOC);
 
10905
                NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->in.preferredmaximumlength));
 
10906
                NDR_PULL_ALLOC(ndr, r->out.return_authenticator);
 
10907
                *r->out.return_authenticator = *r->in.return_authenticator;
 
10908
                NDR_PULL_ALLOC(ndr, r->out.sync_context);
 
10909
                *r->out.sync_context = *r->in.sync_context;
 
10910
                NDR_PULL_ALLOC(ndr, r->out.delta_enum_array);
 
10911
                ZERO_STRUCTP(r->out.delta_enum_array);
 
10912
        }
 
10913
        if (flags & NDR_OUT) {
 
10914
                if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
 
10915
                        NDR_PULL_ALLOC(ndr, r->out.return_authenticator);
 
10916
                }
 
10917
                _mem_save_return_authenticator_0 = NDR_PULL_GET_MEM_CTX(ndr);
 
10918
                NDR_PULL_SET_MEM_CTX(ndr, r->out.return_authenticator, LIBNDR_FLAG_REF_ALLOC);
 
10919
                NDR_CHECK(ndr_pull_netr_Authenticator(ndr, NDR_SCALARS, r->out.return_authenticator));
 
10920
                NDR_PULL_SET_MEM_CTX(ndr, _mem_save_return_authenticator_0, LIBNDR_FLAG_REF_ALLOC);
 
10921
                if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
 
10922
                        NDR_PULL_ALLOC(ndr, r->out.sync_context);
 
10923
                }
 
10924
                _mem_save_sync_context_0 = NDR_PULL_GET_MEM_CTX(ndr);
 
10925
                NDR_PULL_SET_MEM_CTX(ndr, r->out.sync_context, LIBNDR_FLAG_REF_ALLOC);
 
10926
                NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, r->out.sync_context));
 
10927
                NDR_PULL_SET_MEM_CTX(ndr, _mem_save_sync_context_0, LIBNDR_FLAG_REF_ALLOC);
 
10928
                if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
 
10929
                        NDR_PULL_ALLOC(ndr, r->out.delta_enum_array);
 
10930
                }
 
10931
                _mem_save_delta_enum_array_0 = NDR_PULL_GET_MEM_CTX(ndr);
 
10932
                NDR_PULL_SET_MEM_CTX(ndr, r->out.delta_enum_array, LIBNDR_FLAG_REF_ALLOC);
 
10933
                NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_delta_enum_array));
 
10934
                if (_ptr_delta_enum_array) {
 
10935
                        NDR_PULL_ALLOC(ndr, *r->out.delta_enum_array);
 
10936
                } else {
 
10937
                        *r->out.delta_enum_array = NULL;
 
10938
                }
 
10939
                if (*r->out.delta_enum_array) {
 
10940
                        _mem_save_delta_enum_array_1 = NDR_PULL_GET_MEM_CTX(ndr);
 
10941
                        NDR_PULL_SET_MEM_CTX(ndr, *r->out.delta_enum_array, 0);
 
10942
                        NDR_CHECK(ndr_pull_netr_DELTA_ENUM_ARRAY(ndr, NDR_SCALARS|NDR_BUFFERS, *r->out.delta_enum_array));
 
10943
                        NDR_PULL_SET_MEM_CTX(ndr, _mem_save_delta_enum_array_1, 0);
 
10944
                }
 
10945
                NDR_PULL_SET_MEM_CTX(ndr, _mem_save_delta_enum_array_0, LIBNDR_FLAG_REF_ALLOC);
 
10946
                NDR_CHECK(ndr_pull_NTSTATUS(ndr, NDR_SCALARS, &r->out.result));
 
10947
        }
 
10948
        return NDR_ERR_SUCCESS;
 
10949
}
 
10950
 
 
10951
_PUBLIC_ void ndr_print_netr_DatabaseSync(struct ndr_print *ndr, const char *name, int flags, const struct netr_DatabaseSync *r)
 
10952
{
 
10953
        ndr_print_struct(ndr, name, "netr_DatabaseSync");
 
10954
        ndr->depth++;
 
10955
        if (flags & NDR_SET_VALUES) {
 
10956
                ndr->flags |= LIBNDR_PRINT_SET_VALUES;
 
10957
        }
 
10958
        if (flags & NDR_IN) {
 
10959
                ndr_print_struct(ndr, "in", "netr_DatabaseSync");
 
10960
                ndr->depth++;
 
10961
                ndr_print_ptr(ndr, "logon_server", r->in.logon_server);
 
10962
                ndr->depth++;
 
10963
                ndr_print_string(ndr, "logon_server", r->in.logon_server);
 
10964
                ndr->depth--;
 
10965
                ndr_print_ptr(ndr, "computername", r->in.computername);
 
10966
                ndr->depth++;
 
10967
                ndr_print_string(ndr, "computername", r->in.computername);
 
10968
                ndr->depth--;
 
10969
                ndr_print_ptr(ndr, "credential", r->in.credential);
 
10970
                ndr->depth++;
 
10971
                ndr_print_netr_Authenticator(ndr, "credential", r->in.credential);
 
10972
                ndr->depth--;
 
10973
                ndr_print_ptr(ndr, "return_authenticator", r->in.return_authenticator);
 
10974
                ndr->depth++;
 
10975
                ndr_print_netr_Authenticator(ndr, "return_authenticator", r->in.return_authenticator);
 
10976
                ndr->depth--;
 
10977
                ndr_print_netr_SamDatabaseID(ndr, "database_id", r->in.database_id);
 
10978
                ndr_print_ptr(ndr, "sync_context", r->in.sync_context);
 
10979
                ndr->depth++;
 
10980
                ndr_print_uint32(ndr, "sync_context", *r->in.sync_context);
 
10981
                ndr->depth--;
 
10982
                ndr_print_uint32(ndr, "preferredmaximumlength", r->in.preferredmaximumlength);
 
10983
                ndr->depth--;
 
10984
        }
 
10985
        if (flags & NDR_OUT) {
 
10986
                ndr_print_struct(ndr, "out", "netr_DatabaseSync");
 
10987
                ndr->depth++;
 
10988
                ndr_print_ptr(ndr, "return_authenticator", r->out.return_authenticator);
 
10989
                ndr->depth++;
 
10990
                ndr_print_netr_Authenticator(ndr, "return_authenticator", r->out.return_authenticator);
 
10991
                ndr->depth--;
 
10992
                ndr_print_ptr(ndr, "sync_context", r->out.sync_context);
 
10993
                ndr->depth++;
 
10994
                ndr_print_uint32(ndr, "sync_context", *r->out.sync_context);
 
10995
                ndr->depth--;
 
10996
                ndr_print_ptr(ndr, "delta_enum_array", r->out.delta_enum_array);
 
10997
                ndr->depth++;
 
10998
                ndr_print_ptr(ndr, "delta_enum_array", *r->out.delta_enum_array);
 
10999
                ndr->depth++;
 
11000
                if (*r->out.delta_enum_array) {
 
11001
                        ndr_print_netr_DELTA_ENUM_ARRAY(ndr, "delta_enum_array", *r->out.delta_enum_array);
 
11002
                }
 
11003
                ndr->depth--;
 
11004
                ndr->depth--;
 
11005
                ndr_print_NTSTATUS(ndr, "result", r->out.result);
 
11006
                ndr->depth--;
 
11007
        }
 
11008
        ndr->depth--;
 
11009
}
 
11010
 
 
11011
static enum ndr_err_code ndr_push_netr_AccountDeltas(struct ndr_push *ndr, int flags, const struct netr_AccountDeltas *r)
 
11012
{
 
11013
        if (flags & NDR_IN) {
 
11014
                NDR_CHECK(ndr_push_unique_ptr(ndr, r->in.logon_server));
 
11015
                if (r->in.logon_server) {
 
11016
                        NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->in.logon_server, CH_UTF16)));
 
11017
                        NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, 0));
 
11018
                        NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->in.logon_server, CH_UTF16)));
 
11019
                        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));
 
11020
                }
 
11021
                if (r->in.computername == NULL) {
 
11022
                        return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
 
11023
                }
 
11024
                NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->in.computername, CH_UTF16)));
 
11025
                NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, 0));
 
11026
                NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->in.computername, CH_UTF16)));
 
11027
                NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->in.computername, ndr_charset_length(r->in.computername, CH_UTF16), sizeof(uint16_t), CH_UTF16));
 
11028
                NDR_CHECK(ndr_push_netr_Authenticator(ndr, NDR_SCALARS, &r->in.credential));
 
11029
                if (r->in.return_authenticator == NULL) {
 
11030
                        return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
 
11031
                }
 
11032
                NDR_CHECK(ndr_push_netr_Authenticator(ndr, NDR_SCALARS, r->in.return_authenticator));
 
11033
                NDR_CHECK(ndr_push_netr_UAS_INFO_0(ndr, NDR_SCALARS, &r->in.uas));
 
11034
                NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->in.count));
 
11035
                NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->in.level));
 
11036
                NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->in.buffersize));
 
11037
        }
 
11038
        if (flags & NDR_OUT) {
 
11039
                if (r->out.return_authenticator == NULL) {
 
11040
                        return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
 
11041
                }
 
11042
                NDR_CHECK(ndr_push_netr_Authenticator(ndr, NDR_SCALARS, r->out.return_authenticator));
 
11043
                if (r->out.buffer == NULL) {
 
11044
                        return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
 
11045
                }
 
11046
                {
 
11047
                        struct ndr_push *_ndr_buffer;
 
11048
                        NDR_CHECK(ndr_push_subcontext_start(ndr, &_ndr_buffer, 4, -1));
 
11049
                        NDR_CHECK(ndr_push_netr_AccountBuffer(_ndr_buffer, NDR_SCALARS, r->out.buffer));
 
11050
                        NDR_CHECK(ndr_push_subcontext_end(ndr, _ndr_buffer, 4, -1));
 
11051
                }
 
11052
                if (r->out.count_returned == NULL) {
 
11053
                        return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
 
11054
                }
 
11055
                NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, *r->out.count_returned));
 
11056
                if (r->out.total_entries == NULL) {
 
11057
                        return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
 
11058
                }
 
11059
                NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, *r->out.total_entries));
 
11060
                if (r->out.recordid == NULL) {
 
11061
                        return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
 
11062
                }
 
11063
                NDR_CHECK(ndr_push_netr_UAS_INFO_0(ndr, NDR_SCALARS, r->out.recordid));
 
11064
                NDR_CHECK(ndr_push_NTSTATUS(ndr, NDR_SCALARS, r->out.result));
 
11065
        }
 
11066
        return NDR_ERR_SUCCESS;
 
11067
}
 
11068
 
 
11069
static enum ndr_err_code ndr_pull_netr_AccountDeltas(struct ndr_pull *ndr, int flags, struct netr_AccountDeltas *r)
 
11070
{
 
11071
        uint32_t _ptr_logon_server;
 
11072
        TALLOC_CTX *_mem_save_logon_server_0;
 
11073
        TALLOC_CTX *_mem_save_return_authenticator_0;
 
11074
        TALLOC_CTX *_mem_save_buffer_0;
 
11075
        TALLOC_CTX *_mem_save_count_returned_0;
 
11076
        TALLOC_CTX *_mem_save_total_entries_0;
 
11077
        TALLOC_CTX *_mem_save_recordid_0;
 
11078
        if (flags & NDR_IN) {
 
11079
                ZERO_STRUCT(r->out);
 
11080
 
 
11081
                NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_logon_server));
 
11082
                if (_ptr_logon_server) {
 
11083
                        NDR_PULL_ALLOC(ndr, r->in.logon_server);
 
11084
                } else {
 
11085
                        r->in.logon_server = NULL;
 
11086
                }
 
11087
                if (r->in.logon_server) {
 
11088
                        _mem_save_logon_server_0 = NDR_PULL_GET_MEM_CTX(ndr);
 
11089
                        NDR_PULL_SET_MEM_CTX(ndr, r->in.logon_server, 0);
 
11090
                        NDR_CHECK(ndr_pull_array_size(ndr, &r->in.logon_server));
 
11091
                        NDR_CHECK(ndr_pull_array_length(ndr, &r->in.logon_server));
 
11092
                        if (ndr_get_array_length(ndr, &r->in.logon_server) > ndr_get_array_size(ndr, &r->in.logon_server)) {
 
11093
                                return 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));
 
11094
                        }
 
11095
                        NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->in.logon_server), sizeof(uint16_t)));
 
11096
                        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));
 
11097
                        NDR_PULL_SET_MEM_CTX(ndr, _mem_save_logon_server_0, 0);
 
11098
                }
 
11099
                NDR_CHECK(ndr_pull_array_size(ndr, &r->in.computername));
 
11100
                NDR_CHECK(ndr_pull_array_length(ndr, &r->in.computername));
 
11101
                if (ndr_get_array_length(ndr, &r->in.computername) > ndr_get_array_size(ndr, &r->in.computername)) {
 
11102
                        return 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));
 
11103
                }
 
11104
                NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->in.computername), sizeof(uint16_t)));
 
11105
                NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->in.computername, ndr_get_array_length(ndr, &r->in.computername), sizeof(uint16_t), CH_UTF16));
 
11106
                NDR_CHECK(ndr_pull_netr_Authenticator(ndr, NDR_SCALARS, &r->in.credential));
 
11107
                if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
 
11108
                        NDR_PULL_ALLOC(ndr, r->in.return_authenticator);
 
11109
                }
 
11110
                _mem_save_return_authenticator_0 = NDR_PULL_GET_MEM_CTX(ndr);
 
11111
                NDR_PULL_SET_MEM_CTX(ndr, r->in.return_authenticator, LIBNDR_FLAG_REF_ALLOC);
 
11112
                NDR_CHECK(ndr_pull_netr_Authenticator(ndr, NDR_SCALARS, r->in.return_authenticator));
 
11113
                NDR_PULL_SET_MEM_CTX(ndr, _mem_save_return_authenticator_0, LIBNDR_FLAG_REF_ALLOC);
 
11114
                NDR_CHECK(ndr_pull_netr_UAS_INFO_0(ndr, NDR_SCALARS, &r->in.uas));
 
11115
                NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->in.count));
 
11116
                NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->in.level));
 
11117
                NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->in.buffersize));
 
11118
                NDR_PULL_ALLOC(ndr, r->out.return_authenticator);
 
11119
                *r->out.return_authenticator = *r->in.return_authenticator;
 
11120
                NDR_PULL_ALLOC(ndr, r->out.buffer);
 
11121
                ZERO_STRUCTP(r->out.buffer);
 
11122
                NDR_PULL_ALLOC(ndr, r->out.count_returned);
 
11123
                ZERO_STRUCTP(r->out.count_returned);
 
11124
                NDR_PULL_ALLOC(ndr, r->out.total_entries);
 
11125
                ZERO_STRUCTP(r->out.total_entries);
 
11126
                NDR_PULL_ALLOC(ndr, r->out.recordid);
 
11127
                ZERO_STRUCTP(r->out.recordid);
 
11128
        }
 
11129
        if (flags & NDR_OUT) {
 
11130
                if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
 
11131
                        NDR_PULL_ALLOC(ndr, r->out.return_authenticator);
 
11132
                }
 
11133
                _mem_save_return_authenticator_0 = NDR_PULL_GET_MEM_CTX(ndr);
 
11134
                NDR_PULL_SET_MEM_CTX(ndr, r->out.return_authenticator, LIBNDR_FLAG_REF_ALLOC);
 
11135
                NDR_CHECK(ndr_pull_netr_Authenticator(ndr, NDR_SCALARS, r->out.return_authenticator));
 
11136
                NDR_PULL_SET_MEM_CTX(ndr, _mem_save_return_authenticator_0, LIBNDR_FLAG_REF_ALLOC);
 
11137
                if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
 
11138
                        NDR_PULL_ALLOC(ndr, r->out.buffer);
 
11139
                }
 
11140
                _mem_save_buffer_0 = NDR_PULL_GET_MEM_CTX(ndr);
 
11141
                NDR_PULL_SET_MEM_CTX(ndr, r->out.buffer, LIBNDR_FLAG_REF_ALLOC);
 
11142
                {
 
11143
                        struct ndr_pull *_ndr_buffer;
 
11144
                        NDR_CHECK(ndr_pull_subcontext_start(ndr, &_ndr_buffer, 4, -1));
 
11145
                        NDR_CHECK(ndr_pull_netr_AccountBuffer(_ndr_buffer, NDR_SCALARS, r->out.buffer));
 
11146
                        NDR_CHECK(ndr_pull_subcontext_end(ndr, _ndr_buffer, 4, -1));
 
11147
                }
 
11148
                NDR_PULL_SET_MEM_CTX(ndr, _mem_save_buffer_0, LIBNDR_FLAG_REF_ALLOC);
 
11149
                if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
 
11150
                        NDR_PULL_ALLOC(ndr, r->out.count_returned);
 
11151
                }
 
11152
                _mem_save_count_returned_0 = NDR_PULL_GET_MEM_CTX(ndr);
 
11153
                NDR_PULL_SET_MEM_CTX(ndr, r->out.count_returned, LIBNDR_FLAG_REF_ALLOC);
 
11154
                NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, r->out.count_returned));
 
11155
                NDR_PULL_SET_MEM_CTX(ndr, _mem_save_count_returned_0, LIBNDR_FLAG_REF_ALLOC);
 
11156
                if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
 
11157
                        NDR_PULL_ALLOC(ndr, r->out.total_entries);
 
11158
                }
 
11159
                _mem_save_total_entries_0 = NDR_PULL_GET_MEM_CTX(ndr);
 
11160
                NDR_PULL_SET_MEM_CTX(ndr, r->out.total_entries, LIBNDR_FLAG_REF_ALLOC);
 
11161
                NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, r->out.total_entries));
 
11162
                NDR_PULL_SET_MEM_CTX(ndr, _mem_save_total_entries_0, LIBNDR_FLAG_REF_ALLOC);
 
11163
                if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
 
11164
                        NDR_PULL_ALLOC(ndr, r->out.recordid);
 
11165
                }
 
11166
                _mem_save_recordid_0 = NDR_PULL_GET_MEM_CTX(ndr);
 
11167
                NDR_PULL_SET_MEM_CTX(ndr, r->out.recordid, LIBNDR_FLAG_REF_ALLOC);
 
11168
                NDR_CHECK(ndr_pull_netr_UAS_INFO_0(ndr, NDR_SCALARS, r->out.recordid));
 
11169
                NDR_PULL_SET_MEM_CTX(ndr, _mem_save_recordid_0, LIBNDR_FLAG_REF_ALLOC);
 
11170
                NDR_CHECK(ndr_pull_NTSTATUS(ndr, NDR_SCALARS, &r->out.result));
 
11171
        }
 
11172
        return NDR_ERR_SUCCESS;
 
11173
}
 
11174
 
 
11175
_PUBLIC_ void ndr_print_netr_AccountDeltas(struct ndr_print *ndr, const char *name, int flags, const struct netr_AccountDeltas *r)
 
11176
{
 
11177
        ndr_print_struct(ndr, name, "netr_AccountDeltas");
 
11178
        ndr->depth++;
 
11179
        if (flags & NDR_SET_VALUES) {
 
11180
                ndr->flags |= LIBNDR_PRINT_SET_VALUES;
 
11181
        }
 
11182
        if (flags & NDR_IN) {
 
11183
                ndr_print_struct(ndr, "in", "netr_AccountDeltas");
 
11184
                ndr->depth++;
 
11185
                ndr_print_ptr(ndr, "logon_server", r->in.logon_server);
 
11186
                ndr->depth++;
 
11187
                if (r->in.logon_server) {
 
11188
                        ndr_print_string(ndr, "logon_server", r->in.logon_server);
 
11189
                }
 
11190
                ndr->depth--;
 
11191
                ndr_print_ptr(ndr, "computername", r->in.computername);
 
11192
                ndr->depth++;
 
11193
                ndr_print_string(ndr, "computername", r->in.computername);
 
11194
                ndr->depth--;
 
11195
                ndr_print_netr_Authenticator(ndr, "credential", &r->in.credential);
 
11196
                ndr_print_ptr(ndr, "return_authenticator", r->in.return_authenticator);
 
11197
                ndr->depth++;
 
11198
                ndr_print_netr_Authenticator(ndr, "return_authenticator", r->in.return_authenticator);
 
11199
                ndr->depth--;
 
11200
                ndr_print_netr_UAS_INFO_0(ndr, "uas", &r->in.uas);
 
11201
                ndr_print_uint32(ndr, "count", r->in.count);
 
11202
                ndr_print_uint32(ndr, "level", r->in.level);
 
11203
                ndr_print_uint32(ndr, "buffersize", r->in.buffersize);
 
11204
                ndr->depth--;
 
11205
        }
 
11206
        if (flags & NDR_OUT) {
 
11207
                ndr_print_struct(ndr, "out", "netr_AccountDeltas");
 
11208
                ndr->depth++;
 
11209
                ndr_print_ptr(ndr, "return_authenticator", r->out.return_authenticator);
 
11210
                ndr->depth++;
 
11211
                ndr_print_netr_Authenticator(ndr, "return_authenticator", r->out.return_authenticator);
 
11212
                ndr->depth--;
 
11213
                ndr_print_ptr(ndr, "buffer", r->out.buffer);
 
11214
                ndr->depth++;
 
11215
                ndr_print_netr_AccountBuffer(ndr, "buffer", r->out.buffer);
 
11216
                ndr->depth--;
 
11217
                ndr_print_ptr(ndr, "count_returned", r->out.count_returned);
 
11218
                ndr->depth++;
 
11219
                ndr_print_uint32(ndr, "count_returned", *r->out.count_returned);
 
11220
                ndr->depth--;
 
11221
                ndr_print_ptr(ndr, "total_entries", r->out.total_entries);
 
11222
                ndr->depth++;
 
11223
                ndr_print_uint32(ndr, "total_entries", *r->out.total_entries);
 
11224
                ndr->depth--;
 
11225
                ndr_print_ptr(ndr, "recordid", r->out.recordid);
 
11226
                ndr->depth++;
 
11227
                ndr_print_netr_UAS_INFO_0(ndr, "recordid", r->out.recordid);
 
11228
                ndr->depth--;
 
11229
                ndr_print_NTSTATUS(ndr, "result", r->out.result);
 
11230
                ndr->depth--;
 
11231
        }
 
11232
        ndr->depth--;
 
11233
}
 
11234
 
 
11235
static enum ndr_err_code ndr_push_netr_AccountSync(struct ndr_push *ndr, int flags, const struct netr_AccountSync *r)
 
11236
{
 
11237
        if (flags & NDR_IN) {
 
11238
                NDR_CHECK(ndr_push_unique_ptr(ndr, r->in.logon_server));
 
11239
                if (r->in.logon_server) {
 
11240
                        NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->in.logon_server, CH_UTF16)));
 
11241
                        NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, 0));
 
11242
                        NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->in.logon_server, CH_UTF16)));
 
11243
                        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));
 
11244
                }
 
11245
                if (r->in.computername == NULL) {
 
11246
                        return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
 
11247
                }
 
11248
                NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->in.computername, CH_UTF16)));
 
11249
                NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, 0));
 
11250
                NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->in.computername, CH_UTF16)));
 
11251
                NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->in.computername, ndr_charset_length(r->in.computername, CH_UTF16), sizeof(uint16_t), CH_UTF16));
 
11252
                NDR_CHECK(ndr_push_netr_Authenticator(ndr, NDR_SCALARS, &r->in.credential));
 
11253
                if (r->in.return_authenticator == NULL) {
 
11254
                        return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
 
11255
                }
 
11256
                NDR_CHECK(ndr_push_netr_Authenticator(ndr, NDR_SCALARS, r->in.return_authenticator));
 
11257
                NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->in.reference));
 
11258
                NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->in.level));
 
11259
                NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->in.buffersize));
 
11260
                if (r->in.recordid == NULL) {
 
11261
                        return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
 
11262
                }
 
11263
                NDR_CHECK(ndr_push_netr_UAS_INFO_0(ndr, NDR_SCALARS, r->in.recordid));
 
11264
        }
 
11265
        if (flags & NDR_OUT) {
 
11266
                if (r->out.return_authenticator == NULL) {
 
11267
                        return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
 
11268
                }
 
11269
                NDR_CHECK(ndr_push_netr_Authenticator(ndr, NDR_SCALARS, r->out.return_authenticator));
 
11270
                if (r->out.buffer == NULL) {
 
11271
                        return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
 
11272
                }
 
11273
                {
 
11274
                        struct ndr_push *_ndr_buffer;
 
11275
                        NDR_CHECK(ndr_push_subcontext_start(ndr, &_ndr_buffer, 4, -1));
 
11276
                        NDR_CHECK(ndr_push_netr_AccountBuffer(_ndr_buffer, NDR_SCALARS, r->out.buffer));
 
11277
                        NDR_CHECK(ndr_push_subcontext_end(ndr, _ndr_buffer, 4, -1));
 
11278
                }
 
11279
                if (r->out.count_returned == NULL) {
 
11280
                        return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
 
11281
                }
 
11282
                NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, *r->out.count_returned));
 
11283
                if (r->out.total_entries == NULL) {
 
11284
                        return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
 
11285
                }
 
11286
                NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, *r->out.total_entries));
 
11287
                if (r->out.next_reference == NULL) {
 
11288
                        return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
 
11289
                }
 
11290
                NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, *r->out.next_reference));
 
11291
                if (r->out.recordid == NULL) {
 
11292
                        return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
 
11293
                }
 
11294
                NDR_CHECK(ndr_push_netr_UAS_INFO_0(ndr, NDR_SCALARS, r->out.recordid));
 
11295
                NDR_CHECK(ndr_push_NTSTATUS(ndr, NDR_SCALARS, r->out.result));
 
11296
        }
 
11297
        return NDR_ERR_SUCCESS;
 
11298
}
 
11299
 
 
11300
static enum ndr_err_code ndr_pull_netr_AccountSync(struct ndr_pull *ndr, int flags, struct netr_AccountSync *r)
 
11301
{
 
11302
        uint32_t _ptr_logon_server;
 
11303
        TALLOC_CTX *_mem_save_logon_server_0;
 
11304
        TALLOC_CTX *_mem_save_return_authenticator_0;
 
11305
        TALLOC_CTX *_mem_save_buffer_0;
 
11306
        TALLOC_CTX *_mem_save_count_returned_0;
 
11307
        TALLOC_CTX *_mem_save_total_entries_0;
 
11308
        TALLOC_CTX *_mem_save_next_reference_0;
 
11309
        TALLOC_CTX *_mem_save_recordid_0;
 
11310
        if (flags & NDR_IN) {
 
11311
                ZERO_STRUCT(r->out);
 
11312
 
 
11313
                NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_logon_server));
 
11314
                if (_ptr_logon_server) {
 
11315
                        NDR_PULL_ALLOC(ndr, r->in.logon_server);
 
11316
                } else {
 
11317
                        r->in.logon_server = NULL;
 
11318
                }
 
11319
                if (r->in.logon_server) {
 
11320
                        _mem_save_logon_server_0 = NDR_PULL_GET_MEM_CTX(ndr);
 
11321
                        NDR_PULL_SET_MEM_CTX(ndr, r->in.logon_server, 0);
 
11322
                        NDR_CHECK(ndr_pull_array_size(ndr, &r->in.logon_server));
 
11323
                        NDR_CHECK(ndr_pull_array_length(ndr, &r->in.logon_server));
 
11324
                        if (ndr_get_array_length(ndr, &r->in.logon_server) > ndr_get_array_size(ndr, &r->in.logon_server)) {
 
11325
                                return 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));
 
11326
                        }
 
11327
                        NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->in.logon_server), sizeof(uint16_t)));
 
11328
                        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));
 
11329
                        NDR_PULL_SET_MEM_CTX(ndr, _mem_save_logon_server_0, 0);
 
11330
                }
 
11331
                NDR_CHECK(ndr_pull_array_size(ndr, &r->in.computername));
 
11332
                NDR_CHECK(ndr_pull_array_length(ndr, &r->in.computername));
 
11333
                if (ndr_get_array_length(ndr, &r->in.computername) > ndr_get_array_size(ndr, &r->in.computername)) {
 
11334
                        return 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));
 
11335
                }
 
11336
                NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->in.computername), sizeof(uint16_t)));
 
11337
                NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->in.computername, ndr_get_array_length(ndr, &r->in.computername), sizeof(uint16_t), CH_UTF16));
 
11338
                NDR_CHECK(ndr_pull_netr_Authenticator(ndr, NDR_SCALARS, &r->in.credential));
 
11339
                if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
 
11340
                        NDR_PULL_ALLOC(ndr, r->in.return_authenticator);
 
11341
                }
 
11342
                _mem_save_return_authenticator_0 = NDR_PULL_GET_MEM_CTX(ndr);
 
11343
                NDR_PULL_SET_MEM_CTX(ndr, r->in.return_authenticator, LIBNDR_FLAG_REF_ALLOC);
 
11344
                NDR_CHECK(ndr_pull_netr_Authenticator(ndr, NDR_SCALARS, r->in.return_authenticator));
 
11345
                NDR_PULL_SET_MEM_CTX(ndr, _mem_save_return_authenticator_0, LIBNDR_FLAG_REF_ALLOC);
 
11346
                NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->in.reference));
 
11347
                NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->in.level));
 
11348
                NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->in.buffersize));
 
11349
                if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
 
11350
                        NDR_PULL_ALLOC(ndr, r->in.recordid);
 
11351
                }
 
11352
                _mem_save_recordid_0 = NDR_PULL_GET_MEM_CTX(ndr);
 
11353
                NDR_PULL_SET_MEM_CTX(ndr, r->in.recordid, LIBNDR_FLAG_REF_ALLOC);
 
11354
                NDR_CHECK(ndr_pull_netr_UAS_INFO_0(ndr, NDR_SCALARS, r->in.recordid));
 
11355
                NDR_PULL_SET_MEM_CTX(ndr, _mem_save_recordid_0, LIBNDR_FLAG_REF_ALLOC);
 
11356
                NDR_PULL_ALLOC(ndr, r->out.return_authenticator);
 
11357
                *r->out.return_authenticator = *r->in.return_authenticator;
 
11358
                NDR_PULL_ALLOC(ndr, r->out.buffer);
 
11359
                ZERO_STRUCTP(r->out.buffer);
 
11360
                NDR_PULL_ALLOC(ndr, r->out.count_returned);
 
11361
                ZERO_STRUCTP(r->out.count_returned);
 
11362
                NDR_PULL_ALLOC(ndr, r->out.total_entries);
 
11363
                ZERO_STRUCTP(r->out.total_entries);
 
11364
                NDR_PULL_ALLOC(ndr, r->out.next_reference);
 
11365
                ZERO_STRUCTP(r->out.next_reference);
 
11366
                NDR_PULL_ALLOC(ndr, r->out.recordid);
 
11367
                *r->out.recordid = *r->in.recordid;
 
11368
        }
 
11369
        if (flags & NDR_OUT) {
 
11370
                if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
 
11371
                        NDR_PULL_ALLOC(ndr, r->out.return_authenticator);
 
11372
                }
 
11373
                _mem_save_return_authenticator_0 = NDR_PULL_GET_MEM_CTX(ndr);
 
11374
                NDR_PULL_SET_MEM_CTX(ndr, r->out.return_authenticator, LIBNDR_FLAG_REF_ALLOC);
 
11375
                NDR_CHECK(ndr_pull_netr_Authenticator(ndr, NDR_SCALARS, r->out.return_authenticator));
 
11376
                NDR_PULL_SET_MEM_CTX(ndr, _mem_save_return_authenticator_0, LIBNDR_FLAG_REF_ALLOC);
 
11377
                if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
 
11378
                        NDR_PULL_ALLOC(ndr, r->out.buffer);
 
11379
                }
 
11380
                _mem_save_buffer_0 = NDR_PULL_GET_MEM_CTX(ndr);
 
11381
                NDR_PULL_SET_MEM_CTX(ndr, r->out.buffer, LIBNDR_FLAG_REF_ALLOC);
 
11382
                {
 
11383
                        struct ndr_pull *_ndr_buffer;
 
11384
                        NDR_CHECK(ndr_pull_subcontext_start(ndr, &_ndr_buffer, 4, -1));
 
11385
                        NDR_CHECK(ndr_pull_netr_AccountBuffer(_ndr_buffer, NDR_SCALARS, r->out.buffer));
 
11386
                        NDR_CHECK(ndr_pull_subcontext_end(ndr, _ndr_buffer, 4, -1));
 
11387
                }
 
11388
                NDR_PULL_SET_MEM_CTX(ndr, _mem_save_buffer_0, LIBNDR_FLAG_REF_ALLOC);
 
11389
                if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
 
11390
                        NDR_PULL_ALLOC(ndr, r->out.count_returned);
 
11391
                }
 
11392
                _mem_save_count_returned_0 = NDR_PULL_GET_MEM_CTX(ndr);
 
11393
                NDR_PULL_SET_MEM_CTX(ndr, r->out.count_returned, LIBNDR_FLAG_REF_ALLOC);
 
11394
                NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, r->out.count_returned));
 
11395
                NDR_PULL_SET_MEM_CTX(ndr, _mem_save_count_returned_0, LIBNDR_FLAG_REF_ALLOC);
 
11396
                if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
 
11397
                        NDR_PULL_ALLOC(ndr, r->out.total_entries);
 
11398
                }
 
11399
                _mem_save_total_entries_0 = NDR_PULL_GET_MEM_CTX(ndr);
 
11400
                NDR_PULL_SET_MEM_CTX(ndr, r->out.total_entries, LIBNDR_FLAG_REF_ALLOC);
 
11401
                NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, r->out.total_entries));
 
11402
                NDR_PULL_SET_MEM_CTX(ndr, _mem_save_total_entries_0, LIBNDR_FLAG_REF_ALLOC);
 
11403
                if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
 
11404
                        NDR_PULL_ALLOC(ndr, r->out.next_reference);
 
11405
                }
 
11406
                _mem_save_next_reference_0 = NDR_PULL_GET_MEM_CTX(ndr);
 
11407
                NDR_PULL_SET_MEM_CTX(ndr, r->out.next_reference, LIBNDR_FLAG_REF_ALLOC);
 
11408
                NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, r->out.next_reference));
 
11409
                NDR_PULL_SET_MEM_CTX(ndr, _mem_save_next_reference_0, LIBNDR_FLAG_REF_ALLOC);
 
11410
                if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
 
11411
                        NDR_PULL_ALLOC(ndr, r->out.recordid);
 
11412
                }
 
11413
                _mem_save_recordid_0 = NDR_PULL_GET_MEM_CTX(ndr);
 
11414
                NDR_PULL_SET_MEM_CTX(ndr, r->out.recordid, LIBNDR_FLAG_REF_ALLOC);
 
11415
                NDR_CHECK(ndr_pull_netr_UAS_INFO_0(ndr, NDR_SCALARS, r->out.recordid));
 
11416
                NDR_PULL_SET_MEM_CTX(ndr, _mem_save_recordid_0, LIBNDR_FLAG_REF_ALLOC);
 
11417
                NDR_CHECK(ndr_pull_NTSTATUS(ndr, NDR_SCALARS, &r->out.result));
 
11418
        }
 
11419
        return NDR_ERR_SUCCESS;
 
11420
}
 
11421
 
 
11422
_PUBLIC_ void ndr_print_netr_AccountSync(struct ndr_print *ndr, const char *name, int flags, const struct netr_AccountSync *r)
 
11423
{
 
11424
        ndr_print_struct(ndr, name, "netr_AccountSync");
 
11425
        ndr->depth++;
 
11426
        if (flags & NDR_SET_VALUES) {
 
11427
                ndr->flags |= LIBNDR_PRINT_SET_VALUES;
 
11428
        }
 
11429
        if (flags & NDR_IN) {
 
11430
                ndr_print_struct(ndr, "in", "netr_AccountSync");
 
11431
                ndr->depth++;
 
11432
                ndr_print_ptr(ndr, "logon_server", r->in.logon_server);
 
11433
                ndr->depth++;
 
11434
                if (r->in.logon_server) {
 
11435
                        ndr_print_string(ndr, "logon_server", r->in.logon_server);
 
11436
                }
 
11437
                ndr->depth--;
 
11438
                ndr_print_ptr(ndr, "computername", r->in.computername);
 
11439
                ndr->depth++;
 
11440
                ndr_print_string(ndr, "computername", r->in.computername);
 
11441
                ndr->depth--;
 
11442
                ndr_print_netr_Authenticator(ndr, "credential", &r->in.credential);
 
11443
                ndr_print_ptr(ndr, "return_authenticator", r->in.return_authenticator);
 
11444
                ndr->depth++;
 
11445
                ndr_print_netr_Authenticator(ndr, "return_authenticator", r->in.return_authenticator);
 
11446
                ndr->depth--;
 
11447
                ndr_print_uint32(ndr, "reference", r->in.reference);
 
11448
                ndr_print_uint32(ndr, "level", r->in.level);
 
11449
                ndr_print_uint32(ndr, "buffersize", r->in.buffersize);
 
11450
                ndr_print_ptr(ndr, "recordid", r->in.recordid);
 
11451
                ndr->depth++;
 
11452
                ndr_print_netr_UAS_INFO_0(ndr, "recordid", r->in.recordid);
 
11453
                ndr->depth--;
 
11454
                ndr->depth--;
 
11455
        }
 
11456
        if (flags & NDR_OUT) {
 
11457
                ndr_print_struct(ndr, "out", "netr_AccountSync");
 
11458
                ndr->depth++;
 
11459
                ndr_print_ptr(ndr, "return_authenticator", r->out.return_authenticator);
 
11460
                ndr->depth++;
 
11461
                ndr_print_netr_Authenticator(ndr, "return_authenticator", r->out.return_authenticator);
 
11462
                ndr->depth--;
 
11463
                ndr_print_ptr(ndr, "buffer", r->out.buffer);
 
11464
                ndr->depth++;
 
11465
                ndr_print_netr_AccountBuffer(ndr, "buffer", r->out.buffer);
 
11466
                ndr->depth--;
 
11467
                ndr_print_ptr(ndr, "count_returned", r->out.count_returned);
 
11468
                ndr->depth++;
 
11469
                ndr_print_uint32(ndr, "count_returned", *r->out.count_returned);
 
11470
                ndr->depth--;
 
11471
                ndr_print_ptr(ndr, "total_entries", r->out.total_entries);
 
11472
                ndr->depth++;
 
11473
                ndr_print_uint32(ndr, "total_entries", *r->out.total_entries);
 
11474
                ndr->depth--;
 
11475
                ndr_print_ptr(ndr, "next_reference", r->out.next_reference);
 
11476
                ndr->depth++;
 
11477
                ndr_print_uint32(ndr, "next_reference", *r->out.next_reference);
 
11478
                ndr->depth--;
 
11479
                ndr_print_ptr(ndr, "recordid", r->out.recordid);
 
11480
                ndr->depth++;
 
11481
                ndr_print_netr_UAS_INFO_0(ndr, "recordid", r->out.recordid);
 
11482
                ndr->depth--;
 
11483
                ndr_print_NTSTATUS(ndr, "result", r->out.result);
 
11484
                ndr->depth--;
 
11485
        }
 
11486
        ndr->depth--;
 
11487
}
 
11488
 
 
11489
static enum ndr_err_code ndr_push_netr_GetDcName(struct ndr_push *ndr, int flags, const struct netr_GetDcName *r)
 
11490
{
 
11491
        if (flags & NDR_IN) {
 
11492
                if (r->in.logon_server == NULL) {
 
11493
                        return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
 
11494
                }
 
11495
                NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->in.logon_server, CH_UTF16)));
 
11496
                NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, 0));
 
11497
                NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->in.logon_server, CH_UTF16)));
 
11498
                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));
 
11499
                NDR_CHECK(ndr_push_unique_ptr(ndr, r->in.domainname));
 
11500
                if (r->in.domainname) {
 
11501
                        NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->in.domainname, CH_UTF16)));
 
11502
                        NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, 0));
 
11503
                        NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->in.domainname, CH_UTF16)));
 
11504
                        NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->in.domainname, ndr_charset_length(r->in.domainname, CH_UTF16), sizeof(uint16_t), CH_UTF16));
 
11505
                }
 
11506
        }
 
11507
        if (flags & NDR_OUT) {
 
11508
                if (r->out.dcname == NULL) {
 
11509
                        return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
 
11510
                }
 
11511
                NDR_CHECK(ndr_push_unique_ptr(ndr, *r->out.dcname));
 
11512
                if (*r->out.dcname) {
 
11513
                        NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(*r->out.dcname, CH_UTF16)));
 
11514
                        NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, 0));
 
11515
                        NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(*r->out.dcname, CH_UTF16)));
 
11516
                        NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, *r->out.dcname, ndr_charset_length(*r->out.dcname, CH_UTF16), sizeof(uint16_t), CH_UTF16));
 
11517
                }
 
11518
                NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result));
 
11519
        }
 
11520
        return NDR_ERR_SUCCESS;
 
11521
}
 
11522
 
 
11523
static enum ndr_err_code ndr_pull_netr_GetDcName(struct ndr_pull *ndr, int flags, struct netr_GetDcName *r)
 
11524
{
 
11525
        uint32_t _ptr_domainname;
 
11526
        uint32_t _ptr_dcname;
 
11527
        TALLOC_CTX *_mem_save_domainname_0;
 
11528
        TALLOC_CTX *_mem_save_dcname_0;
 
11529
        TALLOC_CTX *_mem_save_dcname_1;
 
11530
        if (flags & NDR_IN) {
 
11531
                ZERO_STRUCT(r->out);
 
11532
 
 
11533
                NDR_CHECK(ndr_pull_array_size(ndr, &r->in.logon_server));
 
11534
                NDR_CHECK(ndr_pull_array_length(ndr, &r->in.logon_server));
 
11535
                if (ndr_get_array_length(ndr, &r->in.logon_server) > ndr_get_array_size(ndr, &r->in.logon_server)) {
 
11536
                        return 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));
 
11537
                }
 
11538
                NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->in.logon_server), sizeof(uint16_t)));
 
11539
                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));
 
11540
                NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_domainname));
 
11541
                if (_ptr_domainname) {
 
11542
                        NDR_PULL_ALLOC(ndr, r->in.domainname);
 
11543
                } else {
 
11544
                        r->in.domainname = NULL;
 
11545
                }
 
11546
                if (r->in.domainname) {
 
11547
                        _mem_save_domainname_0 = NDR_PULL_GET_MEM_CTX(ndr);
 
11548
                        NDR_PULL_SET_MEM_CTX(ndr, r->in.domainname, 0);
 
11549
                        NDR_CHECK(ndr_pull_array_size(ndr, &r->in.domainname));
 
11550
                        NDR_CHECK(ndr_pull_array_length(ndr, &r->in.domainname));
 
11551
                        if (ndr_get_array_length(ndr, &r->in.domainname) > ndr_get_array_size(ndr, &r->in.domainname)) {
 
11552
                                return 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));
 
11553
                        }
 
11554
                        NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->in.domainname), sizeof(uint16_t)));
 
11555
                        NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->in.domainname, ndr_get_array_length(ndr, &r->in.domainname), sizeof(uint16_t), CH_UTF16));
 
11556
                        NDR_PULL_SET_MEM_CTX(ndr, _mem_save_domainname_0, 0);
 
11557
                }
 
11558
                NDR_PULL_ALLOC(ndr, r->out.dcname);
 
11559
                ZERO_STRUCTP(r->out.dcname);
 
11560
        }
 
11561
        if (flags & NDR_OUT) {
 
11562
                if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
 
11563
                        NDR_PULL_ALLOC(ndr, r->out.dcname);
 
11564
                }
 
11565
                _mem_save_dcname_0 = NDR_PULL_GET_MEM_CTX(ndr);
 
11566
                NDR_PULL_SET_MEM_CTX(ndr, r->out.dcname, LIBNDR_FLAG_REF_ALLOC);
 
11567
                NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_dcname));
 
11568
                if (_ptr_dcname) {
 
11569
                        NDR_PULL_ALLOC(ndr, *r->out.dcname);
 
11570
                } else {
 
11571
                        *r->out.dcname = NULL;
 
11572
                }
 
11573
                if (*r->out.dcname) {
 
11574
                        _mem_save_dcname_1 = NDR_PULL_GET_MEM_CTX(ndr);
 
11575
                        NDR_PULL_SET_MEM_CTX(ndr, *r->out.dcname, 0);
 
11576
                        NDR_CHECK(ndr_pull_array_size(ndr, r->out.dcname));
 
11577
                        NDR_CHECK(ndr_pull_array_length(ndr, r->out.dcname));
 
11578
                        if (ndr_get_array_length(ndr, r->out.dcname) > ndr_get_array_size(ndr, r->out.dcname)) {
 
11579
                                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));
 
11580
                        }
 
11581
                        NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, r->out.dcname), sizeof(uint16_t)));
 
11582
                        NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, r->out.dcname, ndr_get_array_length(ndr, r->out.dcname), sizeof(uint16_t), CH_UTF16));
 
11583
                        NDR_PULL_SET_MEM_CTX(ndr, _mem_save_dcname_1, 0);
 
11584
                }
 
11585
                NDR_PULL_SET_MEM_CTX(ndr, _mem_save_dcname_0, LIBNDR_FLAG_REF_ALLOC);
 
11586
                NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result));
 
11587
        }
 
11588
        return NDR_ERR_SUCCESS;
 
11589
}
 
11590
 
 
11591
_PUBLIC_ void ndr_print_netr_GetDcName(struct ndr_print *ndr, const char *name, int flags, const struct netr_GetDcName *r)
 
11592
{
 
11593
        ndr_print_struct(ndr, name, "netr_GetDcName");
 
11594
        ndr->depth++;
 
11595
        if (flags & NDR_SET_VALUES) {
 
11596
                ndr->flags |= LIBNDR_PRINT_SET_VALUES;
 
11597
        }
 
11598
        if (flags & NDR_IN) {
 
11599
                ndr_print_struct(ndr, "in", "netr_GetDcName");
 
11600
                ndr->depth++;
 
11601
                ndr_print_ptr(ndr, "logon_server", r->in.logon_server);
 
11602
                ndr->depth++;
 
11603
                ndr_print_string(ndr, "logon_server", r->in.logon_server);
 
11604
                ndr->depth--;
 
11605
                ndr_print_ptr(ndr, "domainname", r->in.domainname);
 
11606
                ndr->depth++;
 
11607
                if (r->in.domainname) {
 
11608
                        ndr_print_string(ndr, "domainname", r->in.domainname);
 
11609
                }
 
11610
                ndr->depth--;
 
11611
                ndr->depth--;
 
11612
        }
 
11613
        if (flags & NDR_OUT) {
 
11614
                ndr_print_struct(ndr, "out", "netr_GetDcName");
 
11615
                ndr->depth++;
 
11616
                ndr_print_ptr(ndr, "dcname", r->out.dcname);
 
11617
                ndr->depth++;
 
11618
                ndr_print_ptr(ndr, "dcname", *r->out.dcname);
 
11619
                ndr->depth++;
 
11620
                if (*r->out.dcname) {
 
11621
                        ndr_print_string(ndr, "dcname", *r->out.dcname);
 
11622
                }
 
11623
                ndr->depth--;
 
11624
                ndr->depth--;
 
11625
                ndr_print_WERROR(ndr, "result", r->out.result);
 
11626
                ndr->depth--;
 
11627
        }
 
11628
        ndr->depth--;
 
11629
}
 
11630
 
 
11631
static enum ndr_err_code ndr_push_netr_LogonControl(struct ndr_push *ndr, int flags, const struct netr_LogonControl *r)
 
11632
{
 
11633
        if (flags & NDR_IN) {
 
11634
                NDR_CHECK(ndr_push_unique_ptr(ndr, r->in.logon_server));
 
11635
                if (r->in.logon_server) {
 
11636
                        NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->in.logon_server, CH_UTF16)));
 
11637
                        NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, 0));
 
11638
                        NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->in.logon_server, CH_UTF16)));
 
11639
                        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));
 
11640
                }
 
11641
                NDR_CHECK(ndr_push_netr_LogonControlCode(ndr, NDR_SCALARS, r->in.function_code));
 
11642
                NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->in.level));
 
11643
        }
 
11644
        if (flags & NDR_OUT) {
 
11645
                if (r->out.query == NULL) {
 
11646
                        return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
 
11647
                }
 
11648
                NDR_CHECK(ndr_push_set_switch_value(ndr, r->out.query, r->in.level));
 
11649
                NDR_CHECK(ndr_push_netr_CONTROL_QUERY_INFORMATION(ndr, NDR_SCALARS|NDR_BUFFERS, r->out.query));
 
11650
                NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result));
 
11651
        }
 
11652
        return NDR_ERR_SUCCESS;
 
11653
}
 
11654
 
 
11655
static enum ndr_err_code ndr_pull_netr_LogonControl(struct ndr_pull *ndr, int flags, struct netr_LogonControl *r)
 
11656
{
 
11657
        uint32_t _ptr_logon_server;
 
11658
        TALLOC_CTX *_mem_save_logon_server_0;
 
11659
        TALLOC_CTX *_mem_save_query_0;
 
11660
        if (flags & NDR_IN) {
 
11661
                ZERO_STRUCT(r->out);
 
11662
 
 
11663
                NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_logon_server));
 
11664
                if (_ptr_logon_server) {
 
11665
                        NDR_PULL_ALLOC(ndr, r->in.logon_server);
 
11666
                } else {
 
11667
                        r->in.logon_server = NULL;
 
11668
                }
 
11669
                if (r->in.logon_server) {
 
11670
                        _mem_save_logon_server_0 = NDR_PULL_GET_MEM_CTX(ndr);
 
11671
                        NDR_PULL_SET_MEM_CTX(ndr, r->in.logon_server, 0);
 
11672
                        NDR_CHECK(ndr_pull_array_size(ndr, &r->in.logon_server));
 
11673
                        NDR_CHECK(ndr_pull_array_length(ndr, &r->in.logon_server));
 
11674
                        if (ndr_get_array_length(ndr, &r->in.logon_server) > ndr_get_array_size(ndr, &r->in.logon_server)) {
 
11675
                                return 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));
 
11676
                        }
 
11677
                        NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->in.logon_server), sizeof(uint16_t)));
 
11678
                        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));
 
11679
                        NDR_PULL_SET_MEM_CTX(ndr, _mem_save_logon_server_0, 0);
 
11680
                }
 
11681
                NDR_CHECK(ndr_pull_netr_LogonControlCode(ndr, NDR_SCALARS, &r->in.function_code));
 
11682
                NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->in.level));
 
11683
                NDR_PULL_ALLOC(ndr, r->out.query);
 
11684
                ZERO_STRUCTP(r->out.query);
 
11685
        }
 
11686
        if (flags & NDR_OUT) {
 
11687
                if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
 
11688
                        NDR_PULL_ALLOC(ndr, r->out.query);
 
11689
                }
 
11690
                _mem_save_query_0 = NDR_PULL_GET_MEM_CTX(ndr);
 
11691
                NDR_PULL_SET_MEM_CTX(ndr, r->out.query, LIBNDR_FLAG_REF_ALLOC);
 
11692
                NDR_CHECK(ndr_pull_set_switch_value(ndr, r->out.query, r->in.level));
 
11693
                NDR_CHECK(ndr_pull_netr_CONTROL_QUERY_INFORMATION(ndr, NDR_SCALARS|NDR_BUFFERS, r->out.query));
 
11694
                NDR_PULL_SET_MEM_CTX(ndr, _mem_save_query_0, LIBNDR_FLAG_REF_ALLOC);
 
11695
                NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result));
 
11696
        }
 
11697
        return NDR_ERR_SUCCESS;
 
11698
}
 
11699
 
 
11700
_PUBLIC_ void ndr_print_netr_LogonControl(struct ndr_print *ndr, const char *name, int flags, const struct netr_LogonControl *r)
 
11701
{
 
11702
        ndr_print_struct(ndr, name, "netr_LogonControl");
 
11703
        ndr->depth++;
 
11704
        if (flags & NDR_SET_VALUES) {
 
11705
                ndr->flags |= LIBNDR_PRINT_SET_VALUES;
 
11706
        }
 
11707
        if (flags & NDR_IN) {
 
11708
                ndr_print_struct(ndr, "in", "netr_LogonControl");
 
11709
                ndr->depth++;
 
11710
                ndr_print_ptr(ndr, "logon_server", r->in.logon_server);
 
11711
                ndr->depth++;
 
11712
                if (r->in.logon_server) {
 
11713
                        ndr_print_string(ndr, "logon_server", r->in.logon_server);
 
11714
                }
 
11715
                ndr->depth--;
 
11716
                ndr_print_netr_LogonControlCode(ndr, "function_code", r->in.function_code);
 
11717
                ndr_print_uint32(ndr, "level", r->in.level);
 
11718
                ndr->depth--;
 
11719
        }
 
11720
        if (flags & NDR_OUT) {
 
11721
                ndr_print_struct(ndr, "out", "netr_LogonControl");
 
11722
                ndr->depth++;
 
11723
                ndr_print_ptr(ndr, "query", r->out.query);
 
11724
                ndr->depth++;
 
11725
                ndr_print_set_switch_value(ndr, r->out.query, r->in.level);
 
11726
                ndr_print_netr_CONTROL_QUERY_INFORMATION(ndr, "query", r->out.query);
 
11727
                ndr->depth--;
 
11728
                ndr_print_WERROR(ndr, "result", r->out.result);
 
11729
                ndr->depth--;
 
11730
        }
 
11731
        ndr->depth--;
 
11732
}
 
11733
 
 
11734
static enum ndr_err_code ndr_push_netr_GetAnyDCName(struct ndr_push *ndr, int flags, const struct netr_GetAnyDCName *r)
 
11735
{
 
11736
        if (flags & NDR_IN) {
 
11737
                NDR_CHECK(ndr_push_unique_ptr(ndr, r->in.logon_server));
 
11738
                if (r->in.logon_server) {
 
11739
                        NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->in.logon_server, CH_UTF16)));
 
11740
                        NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, 0));
 
11741
                        NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->in.logon_server, CH_UTF16)));
 
11742
                        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));
 
11743
                }
 
11744
                NDR_CHECK(ndr_push_unique_ptr(ndr, r->in.domainname));
 
11745
                if (r->in.domainname) {
 
11746
                        NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->in.domainname, CH_UTF16)));
 
11747
                        NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, 0));
 
11748
                        NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->in.domainname, CH_UTF16)));
 
11749
                        NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->in.domainname, ndr_charset_length(r->in.domainname, CH_UTF16), sizeof(uint16_t), CH_UTF16));
 
11750
                }
 
11751
        }
 
11752
        if (flags & NDR_OUT) {
 
11753
                if (r->out.dcname == NULL) {
 
11754
                        return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
 
11755
                }
 
11756
                NDR_CHECK(ndr_push_unique_ptr(ndr, *r->out.dcname));
 
11757
                if (*r->out.dcname) {
 
11758
                        NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(*r->out.dcname, CH_UTF16)));
 
11759
                        NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, 0));
 
11760
                        NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(*r->out.dcname, CH_UTF16)));
 
11761
                        NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, *r->out.dcname, ndr_charset_length(*r->out.dcname, CH_UTF16), sizeof(uint16_t), CH_UTF16));
 
11762
                }
 
11763
                NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result));
 
11764
        }
 
11765
        return NDR_ERR_SUCCESS;
 
11766
}
 
11767
 
 
11768
static enum ndr_err_code ndr_pull_netr_GetAnyDCName(struct ndr_pull *ndr, int flags, struct netr_GetAnyDCName *r)
 
11769
{
 
11770
        uint32_t _ptr_logon_server;
 
11771
        uint32_t _ptr_domainname;
 
11772
        uint32_t _ptr_dcname;
 
11773
        TALLOC_CTX *_mem_save_logon_server_0;
 
11774
        TALLOC_CTX *_mem_save_domainname_0;
 
11775
        TALLOC_CTX *_mem_save_dcname_0;
 
11776
        TALLOC_CTX *_mem_save_dcname_1;
 
11777
        if (flags & NDR_IN) {
 
11778
                ZERO_STRUCT(r->out);
 
11779
 
 
11780
                NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_logon_server));
 
11781
                if (_ptr_logon_server) {
 
11782
                        NDR_PULL_ALLOC(ndr, r->in.logon_server);
 
11783
                } else {
 
11784
                        r->in.logon_server = NULL;
 
11785
                }
 
11786
                if (r->in.logon_server) {
 
11787
                        _mem_save_logon_server_0 = NDR_PULL_GET_MEM_CTX(ndr);
 
11788
                        NDR_PULL_SET_MEM_CTX(ndr, r->in.logon_server, 0);
 
11789
                        NDR_CHECK(ndr_pull_array_size(ndr, &r->in.logon_server));
 
11790
                        NDR_CHECK(ndr_pull_array_length(ndr, &r->in.logon_server));
 
11791
                        if (ndr_get_array_length(ndr, &r->in.logon_server) > ndr_get_array_size(ndr, &r->in.logon_server)) {
 
11792
                                return 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));
 
11793
                        }
 
11794
                        NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->in.logon_server), sizeof(uint16_t)));
 
11795
                        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));
 
11796
                        NDR_PULL_SET_MEM_CTX(ndr, _mem_save_logon_server_0, 0);
 
11797
                }
 
11798
                NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_domainname));
 
11799
                if (_ptr_domainname) {
 
11800
                        NDR_PULL_ALLOC(ndr, r->in.domainname);
 
11801
                } else {
 
11802
                        r->in.domainname = NULL;
 
11803
                }
 
11804
                if (r->in.domainname) {
 
11805
                        _mem_save_domainname_0 = NDR_PULL_GET_MEM_CTX(ndr);
 
11806
                        NDR_PULL_SET_MEM_CTX(ndr, r->in.domainname, 0);
 
11807
                        NDR_CHECK(ndr_pull_array_size(ndr, &r->in.domainname));
 
11808
                        NDR_CHECK(ndr_pull_array_length(ndr, &r->in.domainname));
 
11809
                        if (ndr_get_array_length(ndr, &r->in.domainname) > ndr_get_array_size(ndr, &r->in.domainname)) {
 
11810
                                return 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));
 
11811
                        }
 
11812
                        NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->in.domainname), sizeof(uint16_t)));
 
11813
                        NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->in.domainname, ndr_get_array_length(ndr, &r->in.domainname), sizeof(uint16_t), CH_UTF16));
 
11814
                        NDR_PULL_SET_MEM_CTX(ndr, _mem_save_domainname_0, 0);
 
11815
                }
 
11816
                NDR_PULL_ALLOC(ndr, r->out.dcname);
 
11817
                ZERO_STRUCTP(r->out.dcname);
 
11818
        }
 
11819
        if (flags & NDR_OUT) {
 
11820
                if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
 
11821
                        NDR_PULL_ALLOC(ndr, r->out.dcname);
 
11822
                }
 
11823
                _mem_save_dcname_0 = NDR_PULL_GET_MEM_CTX(ndr);
 
11824
                NDR_PULL_SET_MEM_CTX(ndr, r->out.dcname, LIBNDR_FLAG_REF_ALLOC);
 
11825
                NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_dcname));
 
11826
                if (_ptr_dcname) {
 
11827
                        NDR_PULL_ALLOC(ndr, *r->out.dcname);
 
11828
                } else {
 
11829
                        *r->out.dcname = NULL;
 
11830
                }
 
11831
                if (*r->out.dcname) {
 
11832
                        _mem_save_dcname_1 = NDR_PULL_GET_MEM_CTX(ndr);
 
11833
                        NDR_PULL_SET_MEM_CTX(ndr, *r->out.dcname, 0);
 
11834
                        NDR_CHECK(ndr_pull_array_size(ndr, r->out.dcname));
 
11835
                        NDR_CHECK(ndr_pull_array_length(ndr, r->out.dcname));
 
11836
                        if (ndr_get_array_length(ndr, r->out.dcname) > ndr_get_array_size(ndr, r->out.dcname)) {
 
11837
                                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));
 
11838
                        }
 
11839
                        NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, r->out.dcname), sizeof(uint16_t)));
 
11840
                        NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, r->out.dcname, ndr_get_array_length(ndr, r->out.dcname), sizeof(uint16_t), CH_UTF16));
 
11841
                        NDR_PULL_SET_MEM_CTX(ndr, _mem_save_dcname_1, 0);
 
11842
                }
 
11843
                NDR_PULL_SET_MEM_CTX(ndr, _mem_save_dcname_0, LIBNDR_FLAG_REF_ALLOC);
 
11844
                NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result));
 
11845
        }
 
11846
        return NDR_ERR_SUCCESS;
 
11847
}
 
11848
 
 
11849
_PUBLIC_ void ndr_print_netr_GetAnyDCName(struct ndr_print *ndr, const char *name, int flags, const struct netr_GetAnyDCName *r)
 
11850
{
 
11851
        ndr_print_struct(ndr, name, "netr_GetAnyDCName");
 
11852
        ndr->depth++;
 
11853
        if (flags & NDR_SET_VALUES) {
 
11854
                ndr->flags |= LIBNDR_PRINT_SET_VALUES;
 
11855
        }
 
11856
        if (flags & NDR_IN) {
 
11857
                ndr_print_struct(ndr, "in", "netr_GetAnyDCName");
 
11858
                ndr->depth++;
 
11859
                ndr_print_ptr(ndr, "logon_server", r->in.logon_server);
 
11860
                ndr->depth++;
 
11861
                if (r->in.logon_server) {
 
11862
                        ndr_print_string(ndr, "logon_server", r->in.logon_server);
 
11863
                }
 
11864
                ndr->depth--;
 
11865
                ndr_print_ptr(ndr, "domainname", r->in.domainname);
 
11866
                ndr->depth++;
 
11867
                if (r->in.domainname) {
 
11868
                        ndr_print_string(ndr, "domainname", r->in.domainname);
 
11869
                }
 
11870
                ndr->depth--;
 
11871
                ndr->depth--;
 
11872
        }
 
11873
        if (flags & NDR_OUT) {
 
11874
                ndr_print_struct(ndr, "out", "netr_GetAnyDCName");
 
11875
                ndr->depth++;
 
11876
                ndr_print_ptr(ndr, "dcname", r->out.dcname);
 
11877
                ndr->depth++;
 
11878
                ndr_print_ptr(ndr, "dcname", *r->out.dcname);
 
11879
                ndr->depth++;
 
11880
                if (*r->out.dcname) {
 
11881
                        ndr_print_string(ndr, "dcname", *r->out.dcname);
 
11882
                }
 
11883
                ndr->depth--;
 
11884
                ndr->depth--;
 
11885
                ndr_print_WERROR(ndr, "result", r->out.result);
 
11886
                ndr->depth--;
 
11887
        }
 
11888
        ndr->depth--;
 
11889
}
 
11890
 
 
11891
static enum ndr_err_code ndr_push_netr_LogonControl2(struct ndr_push *ndr, int flags, const struct netr_LogonControl2 *r)
 
11892
{
 
11893
        if (flags & NDR_IN) {
 
11894
                NDR_CHECK(ndr_push_unique_ptr(ndr, r->in.logon_server));
 
11895
                if (r->in.logon_server) {
 
11896
                        NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->in.logon_server, CH_UTF16)));
 
11897
                        NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, 0));
 
11898
                        NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->in.logon_server, CH_UTF16)));
 
11899
                        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));
 
11900
                }
 
11901
                NDR_CHECK(ndr_push_netr_LogonControlCode(ndr, NDR_SCALARS, r->in.function_code));
 
11902
                NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->in.level));
 
11903
                if (r->in.data == NULL) {
 
11904
                        return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
 
11905
                }
 
11906
                NDR_CHECK(ndr_push_set_switch_value(ndr, r->in.data, r->in.function_code));
 
11907
                NDR_CHECK(ndr_push_netr_CONTROL_DATA_INFORMATION(ndr, NDR_SCALARS|NDR_BUFFERS, r->in.data));
 
11908
        }
 
11909
        if (flags & NDR_OUT) {
 
11910
                if (r->out.query == NULL) {
 
11911
                        return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
 
11912
                }
 
11913
                NDR_CHECK(ndr_push_set_switch_value(ndr, r->out.query, r->in.level));
 
11914
                NDR_CHECK(ndr_push_netr_CONTROL_QUERY_INFORMATION(ndr, NDR_SCALARS|NDR_BUFFERS, r->out.query));
 
11915
                NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result));
 
11916
        }
 
11917
        return NDR_ERR_SUCCESS;
 
11918
}
 
11919
 
 
11920
static enum ndr_err_code ndr_pull_netr_LogonControl2(struct ndr_pull *ndr, int flags, struct netr_LogonControl2 *r)
 
11921
{
 
11922
        uint32_t _ptr_logon_server;
 
11923
        TALLOC_CTX *_mem_save_logon_server_0;
 
11924
        TALLOC_CTX *_mem_save_data_0;
 
11925
        TALLOC_CTX *_mem_save_query_0;
 
11926
        if (flags & NDR_IN) {
 
11927
                ZERO_STRUCT(r->out);
 
11928
 
 
11929
                NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_logon_server));
 
11930
                if (_ptr_logon_server) {
 
11931
                        NDR_PULL_ALLOC(ndr, r->in.logon_server);
 
11932
                } else {
 
11933
                        r->in.logon_server = NULL;
 
11934
                }
 
11935
                if (r->in.logon_server) {
 
11936
                        _mem_save_logon_server_0 = NDR_PULL_GET_MEM_CTX(ndr);
 
11937
                        NDR_PULL_SET_MEM_CTX(ndr, r->in.logon_server, 0);
 
11938
                        NDR_CHECK(ndr_pull_array_size(ndr, &r->in.logon_server));
 
11939
                        NDR_CHECK(ndr_pull_array_length(ndr, &r->in.logon_server));
 
11940
                        if (ndr_get_array_length(ndr, &r->in.logon_server) > ndr_get_array_size(ndr, &r->in.logon_server)) {
 
11941
                                return 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));
 
11942
                        }
 
11943
                        NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->in.logon_server), sizeof(uint16_t)));
 
11944
                        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));
 
11945
                        NDR_PULL_SET_MEM_CTX(ndr, _mem_save_logon_server_0, 0);
 
11946
                }
 
11947
                NDR_CHECK(ndr_pull_netr_LogonControlCode(ndr, NDR_SCALARS, &r->in.function_code));
 
11948
                NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->in.level));
 
11949
                if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
 
11950
                        NDR_PULL_ALLOC(ndr, r->in.data);
 
11951
                }
 
11952
                _mem_save_data_0 = NDR_PULL_GET_MEM_CTX(ndr);
 
11953
                NDR_PULL_SET_MEM_CTX(ndr, r->in.data, LIBNDR_FLAG_REF_ALLOC);
 
11954
                NDR_CHECK(ndr_pull_set_switch_value(ndr, r->in.data, r->in.function_code));
 
11955
                NDR_CHECK(ndr_pull_netr_CONTROL_DATA_INFORMATION(ndr, NDR_SCALARS|NDR_BUFFERS, r->in.data));
 
11956
                NDR_PULL_SET_MEM_CTX(ndr, _mem_save_data_0, LIBNDR_FLAG_REF_ALLOC);
 
11957
                NDR_PULL_ALLOC(ndr, r->out.query);
 
11958
                ZERO_STRUCTP(r->out.query);
 
11959
        }
 
11960
        if (flags & NDR_OUT) {
 
11961
                if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
 
11962
                        NDR_PULL_ALLOC(ndr, r->out.query);
 
11963
                }
 
11964
                _mem_save_query_0 = NDR_PULL_GET_MEM_CTX(ndr);
 
11965
                NDR_PULL_SET_MEM_CTX(ndr, r->out.query, LIBNDR_FLAG_REF_ALLOC);
 
11966
                NDR_CHECK(ndr_pull_set_switch_value(ndr, r->out.query, r->in.level));
 
11967
                NDR_CHECK(ndr_pull_netr_CONTROL_QUERY_INFORMATION(ndr, NDR_SCALARS|NDR_BUFFERS, r->out.query));
 
11968
                NDR_PULL_SET_MEM_CTX(ndr, _mem_save_query_0, LIBNDR_FLAG_REF_ALLOC);
 
11969
                NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result));
 
11970
        }
 
11971
        return NDR_ERR_SUCCESS;
 
11972
}
 
11973
 
 
11974
_PUBLIC_ void ndr_print_netr_LogonControl2(struct ndr_print *ndr, const char *name, int flags, const struct netr_LogonControl2 *r)
 
11975
{
 
11976
        ndr_print_struct(ndr, name, "netr_LogonControl2");
 
11977
        ndr->depth++;
 
11978
        if (flags & NDR_SET_VALUES) {
 
11979
                ndr->flags |= LIBNDR_PRINT_SET_VALUES;
 
11980
        }
 
11981
        if (flags & NDR_IN) {
 
11982
                ndr_print_struct(ndr, "in", "netr_LogonControl2");
 
11983
                ndr->depth++;
 
11984
                ndr_print_ptr(ndr, "logon_server", r->in.logon_server);
 
11985
                ndr->depth++;
 
11986
                if (r->in.logon_server) {
 
11987
                        ndr_print_string(ndr, "logon_server", r->in.logon_server);
 
11988
                }
 
11989
                ndr->depth--;
 
11990
                ndr_print_netr_LogonControlCode(ndr, "function_code", r->in.function_code);
 
11991
                ndr_print_uint32(ndr, "level", r->in.level);
 
11992
                ndr_print_ptr(ndr, "data", r->in.data);
 
11993
                ndr->depth++;
 
11994
                ndr_print_set_switch_value(ndr, r->in.data, r->in.function_code);
 
11995
                ndr_print_netr_CONTROL_DATA_INFORMATION(ndr, "data", r->in.data);
 
11996
                ndr->depth--;
 
11997
                ndr->depth--;
 
11998
        }
 
11999
        if (flags & NDR_OUT) {
 
12000
                ndr_print_struct(ndr, "out", "netr_LogonControl2");
 
12001
                ndr->depth++;
 
12002
                ndr_print_ptr(ndr, "query", r->out.query);
 
12003
                ndr->depth++;
 
12004
                ndr_print_set_switch_value(ndr, r->out.query, r->in.level);
 
12005
                ndr_print_netr_CONTROL_QUERY_INFORMATION(ndr, "query", r->out.query);
 
12006
                ndr->depth--;
 
12007
                ndr_print_WERROR(ndr, "result", r->out.result);
 
12008
                ndr->depth--;
 
12009
        }
 
12010
        ndr->depth--;
 
12011
}
 
12012
 
 
12013
static enum ndr_err_code ndr_push_netr_ServerAuthenticate2(struct ndr_push *ndr, int flags, const struct netr_ServerAuthenticate2 *r)
 
12014
{
 
12015
        if (flags & NDR_IN) {
 
12016
                NDR_CHECK(ndr_push_unique_ptr(ndr, r->in.server_name));
 
12017
                if (r->in.server_name) {
 
12018
                        NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->in.server_name, CH_UTF16)));
 
12019
                        NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, 0));
 
12020
                        NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->in.server_name, CH_UTF16)));
 
12021
                        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));
 
12022
                }
 
12023
                if (r->in.account_name == NULL) {
 
12024
                        return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
 
12025
                }
 
12026
                NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->in.account_name, CH_UTF16)));
 
12027
                NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, 0));
 
12028
                NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->in.account_name, CH_UTF16)));
 
12029
                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));
 
12030
                NDR_CHECK(ndr_push_netr_SchannelType(ndr, NDR_SCALARS, r->in.secure_channel_type));
 
12031
                if (r->in.computer_name == NULL) {
 
12032
                        return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
 
12033
                }
 
12034
                NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->in.computer_name, CH_UTF16)));
 
12035
                NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, 0));
 
12036
                NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->in.computer_name, CH_UTF16)));
 
12037
                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));
 
12038
                if (r->in.credentials == NULL) {
 
12039
                        return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
 
12040
                }
 
12041
                NDR_CHECK(ndr_push_netr_Credential(ndr, NDR_SCALARS, r->in.credentials));
 
12042
                if (r->in.negotiate_flags == NULL) {
 
12043
                        return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
 
12044
                }
 
12045
                NDR_CHECK(ndr_push_netr_NegotiateFlags(ndr, NDR_SCALARS, *r->in.negotiate_flags));
 
12046
        }
 
12047
        if (flags & NDR_OUT) {
 
12048
                if (r->out.return_credentials == NULL) {
 
12049
                        return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
 
12050
                }
 
12051
                NDR_CHECK(ndr_push_netr_Credential(ndr, NDR_SCALARS, r->out.return_credentials));
 
12052
                if (r->out.negotiate_flags == NULL) {
 
12053
                        return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
 
12054
                }
 
12055
                NDR_CHECK(ndr_push_netr_NegotiateFlags(ndr, NDR_SCALARS, *r->out.negotiate_flags));
 
12056
                NDR_CHECK(ndr_push_NTSTATUS(ndr, NDR_SCALARS, r->out.result));
 
12057
        }
 
12058
        return NDR_ERR_SUCCESS;
 
12059
}
 
12060
 
 
12061
static enum ndr_err_code ndr_pull_netr_ServerAuthenticate2(struct ndr_pull *ndr, int flags, struct netr_ServerAuthenticate2 *r)
 
12062
{
 
12063
        uint32_t _ptr_server_name;
 
12064
        TALLOC_CTX *_mem_save_server_name_0;
 
12065
        TALLOC_CTX *_mem_save_credentials_0;
 
12066
        TALLOC_CTX *_mem_save_return_credentials_0;
 
12067
        TALLOC_CTX *_mem_save_negotiate_flags_0;
 
12068
        if (flags & NDR_IN) {
 
12069
                ZERO_STRUCT(r->out);
 
12070
 
 
12071
                NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_server_name));
 
12072
                if (_ptr_server_name) {
 
12073
                        NDR_PULL_ALLOC(ndr, r->in.server_name);
 
12074
                } else {
 
12075
                        r->in.server_name = NULL;
 
12076
                }
 
12077
                if (r->in.server_name) {
 
12078
                        _mem_save_server_name_0 = NDR_PULL_GET_MEM_CTX(ndr);
 
12079
                        NDR_PULL_SET_MEM_CTX(ndr, r->in.server_name, 0);
 
12080
                        NDR_CHECK(ndr_pull_array_size(ndr, &r->in.server_name));
 
12081
                        NDR_CHECK(ndr_pull_array_length(ndr, &r->in.server_name));
 
12082
                        if (ndr_get_array_length(ndr, &r->in.server_name) > ndr_get_array_size(ndr, &r->in.server_name)) {
 
12083
                                return 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));
 
12084
                        }
 
12085
                        NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->in.server_name), sizeof(uint16_t)));
 
12086
                        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));
 
12087
                        NDR_PULL_SET_MEM_CTX(ndr, _mem_save_server_name_0, 0);
 
12088
                }
 
12089
                NDR_CHECK(ndr_pull_array_size(ndr, &r->in.account_name));
 
12090
                NDR_CHECK(ndr_pull_array_length(ndr, &r->in.account_name));
 
12091
                if (ndr_get_array_length(ndr, &r->in.account_name) > ndr_get_array_size(ndr, &r->in.account_name)) {
 
12092
                        return 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));
 
12093
                }
 
12094
                NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->in.account_name), sizeof(uint16_t)));
 
12095
                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));
 
12096
                NDR_CHECK(ndr_pull_netr_SchannelType(ndr, NDR_SCALARS, &r->in.secure_channel_type));
 
12097
                NDR_CHECK(ndr_pull_array_size(ndr, &r->in.computer_name));
 
12098
                NDR_CHECK(ndr_pull_array_length(ndr, &r->in.computer_name));
 
12099
                if (ndr_get_array_length(ndr, &r->in.computer_name) > ndr_get_array_size(ndr, &r->in.computer_name)) {
 
12100
                        return 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));
 
12101
                }
 
12102
                NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->in.computer_name), sizeof(uint16_t)));
 
12103
                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));
 
12104
                if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
 
12105
                        NDR_PULL_ALLOC(ndr, r->in.credentials);
 
12106
                }
 
12107
                _mem_save_credentials_0 = NDR_PULL_GET_MEM_CTX(ndr);
 
12108
                NDR_PULL_SET_MEM_CTX(ndr, r->in.credentials, LIBNDR_FLAG_REF_ALLOC);
 
12109
                NDR_CHECK(ndr_pull_netr_Credential(ndr, NDR_SCALARS, r->in.credentials));
 
12110
                NDR_PULL_SET_MEM_CTX(ndr, _mem_save_credentials_0, LIBNDR_FLAG_REF_ALLOC);
 
12111
                if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
 
12112
                        NDR_PULL_ALLOC(ndr, r->in.negotiate_flags);
 
12113
                }
 
12114
                _mem_save_negotiate_flags_0 = NDR_PULL_GET_MEM_CTX(ndr);
 
12115
                NDR_PULL_SET_MEM_CTX(ndr, r->in.negotiate_flags, LIBNDR_FLAG_REF_ALLOC);
 
12116
                NDR_CHECK(ndr_pull_netr_NegotiateFlags(ndr, NDR_SCALARS, r->in.negotiate_flags));
 
12117
                NDR_PULL_SET_MEM_CTX(ndr, _mem_save_negotiate_flags_0, LIBNDR_FLAG_REF_ALLOC);
 
12118
                NDR_PULL_ALLOC(ndr, r->out.return_credentials);
 
12119
                ZERO_STRUCTP(r->out.return_credentials);
 
12120
                NDR_PULL_ALLOC(ndr, r->out.negotiate_flags);
 
12121
                *r->out.negotiate_flags = *r->in.negotiate_flags;
 
12122
        }
 
12123
        if (flags & NDR_OUT) {
 
12124
                if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
 
12125
                        NDR_PULL_ALLOC(ndr, r->out.return_credentials);
 
12126
                }
 
12127
                _mem_save_return_credentials_0 = NDR_PULL_GET_MEM_CTX(ndr);
 
12128
                NDR_PULL_SET_MEM_CTX(ndr, r->out.return_credentials, LIBNDR_FLAG_REF_ALLOC);
 
12129
                NDR_CHECK(ndr_pull_netr_Credential(ndr, NDR_SCALARS, r->out.return_credentials));
 
12130
                NDR_PULL_SET_MEM_CTX(ndr, _mem_save_return_credentials_0, LIBNDR_FLAG_REF_ALLOC);
 
12131
                if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
 
12132
                        NDR_PULL_ALLOC(ndr, r->out.negotiate_flags);
 
12133
                }
 
12134
                _mem_save_negotiate_flags_0 = NDR_PULL_GET_MEM_CTX(ndr);
 
12135
                NDR_PULL_SET_MEM_CTX(ndr, r->out.negotiate_flags, LIBNDR_FLAG_REF_ALLOC);
 
12136
                NDR_CHECK(ndr_pull_netr_NegotiateFlags(ndr, NDR_SCALARS, r->out.negotiate_flags));
 
12137
                NDR_PULL_SET_MEM_CTX(ndr, _mem_save_negotiate_flags_0, LIBNDR_FLAG_REF_ALLOC);
 
12138
                NDR_CHECK(ndr_pull_NTSTATUS(ndr, NDR_SCALARS, &r->out.result));
 
12139
        }
 
12140
        return NDR_ERR_SUCCESS;
 
12141
}
 
12142
 
 
12143
_PUBLIC_ void ndr_print_netr_ServerAuthenticate2(struct ndr_print *ndr, const char *name, int flags, const struct netr_ServerAuthenticate2 *r)
 
12144
{
 
12145
        ndr_print_struct(ndr, name, "netr_ServerAuthenticate2");
 
12146
        ndr->depth++;
 
12147
        if (flags & NDR_SET_VALUES) {
 
12148
                ndr->flags |= LIBNDR_PRINT_SET_VALUES;
 
12149
        }
 
12150
        if (flags & NDR_IN) {
 
12151
                ndr_print_struct(ndr, "in", "netr_ServerAuthenticate2");
 
12152
                ndr->depth++;
 
12153
                ndr_print_ptr(ndr, "server_name", r->in.server_name);
 
12154
                ndr->depth++;
 
12155
                if (r->in.server_name) {
 
12156
                        ndr_print_string(ndr, "server_name", r->in.server_name);
 
12157
                }
 
12158
                ndr->depth--;
 
12159
                ndr_print_ptr(ndr, "account_name", r->in.account_name);
 
12160
                ndr->depth++;
 
12161
                ndr_print_string(ndr, "account_name", r->in.account_name);
 
12162
                ndr->depth--;
 
12163
                ndr_print_netr_SchannelType(ndr, "secure_channel_type", r->in.secure_channel_type);
 
12164
                ndr_print_ptr(ndr, "computer_name", r->in.computer_name);
 
12165
                ndr->depth++;
 
12166
                ndr_print_string(ndr, "computer_name", r->in.computer_name);
 
12167
                ndr->depth--;
 
12168
                ndr_print_ptr(ndr, "credentials", r->in.credentials);
 
12169
                ndr->depth++;
 
12170
                ndr_print_netr_Credential(ndr, "credentials", r->in.credentials);
 
12171
                ndr->depth--;
 
12172
                ndr_print_ptr(ndr, "negotiate_flags", r->in.negotiate_flags);
 
12173
                ndr->depth++;
 
12174
                ndr_print_netr_NegotiateFlags(ndr, "negotiate_flags", *r->in.negotiate_flags);
 
12175
                ndr->depth--;
 
12176
                ndr->depth--;
 
12177
        }
 
12178
        if (flags & NDR_OUT) {
 
12179
                ndr_print_struct(ndr, "out", "netr_ServerAuthenticate2");
 
12180
                ndr->depth++;
 
12181
                ndr_print_ptr(ndr, "return_credentials", r->out.return_credentials);
 
12182
                ndr->depth++;
 
12183
                ndr_print_netr_Credential(ndr, "return_credentials", r->out.return_credentials);
 
12184
                ndr->depth--;
 
12185
                ndr_print_ptr(ndr, "negotiate_flags", r->out.negotiate_flags);
 
12186
                ndr->depth++;
 
12187
                ndr_print_netr_NegotiateFlags(ndr, "negotiate_flags", *r->out.negotiate_flags);
 
12188
                ndr->depth--;
 
12189
                ndr_print_NTSTATUS(ndr, "result", r->out.result);
 
12190
                ndr->depth--;
 
12191
        }
 
12192
        ndr->depth--;
 
12193
}
 
12194
 
 
12195
static enum ndr_err_code ndr_push_netr_DatabaseSync2(struct ndr_push *ndr, int flags, const struct netr_DatabaseSync2 *r)
 
12196
{
 
12197
        if (flags & NDR_IN) {
 
12198
                if (r->in.logon_server == NULL) {
 
12199
                        return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
 
12200
                }
 
12201
                NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->in.logon_server, CH_UTF16)));
 
12202
                NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, 0));
 
12203
                NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->in.logon_server, CH_UTF16)));
 
12204
                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));
 
12205
                if (r->in.computername == NULL) {
 
12206
                        return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
 
12207
                }
 
12208
                NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->in.computername, CH_UTF16)));
 
12209
                NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, 0));
 
12210
                NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->in.computername, CH_UTF16)));
 
12211
                NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->in.computername, ndr_charset_length(r->in.computername, CH_UTF16), sizeof(uint16_t), CH_UTF16));
 
12212
                if (r->in.credential == NULL) {
 
12213
                        return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
 
12214
                }
 
12215
                NDR_CHECK(ndr_push_netr_Authenticator(ndr, NDR_SCALARS, r->in.credential));
 
12216
                if (r->in.return_authenticator == NULL) {
 
12217
                        return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
 
12218
                }
 
12219
                NDR_CHECK(ndr_push_netr_Authenticator(ndr, NDR_SCALARS, r->in.return_authenticator));
 
12220
                NDR_CHECK(ndr_push_netr_SamDatabaseID(ndr, NDR_SCALARS, r->in.database_id));
 
12221
                NDR_CHECK(ndr_push_SyncStateEnum(ndr, NDR_SCALARS, r->in.restart_state));
 
12222
                if (r->in.sync_context == NULL) {
 
12223
                        return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
 
12224
                }
 
12225
                NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, *r->in.sync_context));
 
12226
                NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->in.preferredmaximumlength));
 
12227
        }
 
12228
        if (flags & NDR_OUT) {
 
12229
                if (r->out.return_authenticator == NULL) {
 
12230
                        return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
 
12231
                }
 
12232
                NDR_CHECK(ndr_push_netr_Authenticator(ndr, NDR_SCALARS, r->out.return_authenticator));
 
12233
                if (r->out.sync_context == NULL) {
 
12234
                        return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
 
12235
                }
 
12236
                NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, *r->out.sync_context));
 
12237
                if (r->out.delta_enum_array == NULL) {
 
12238
                        return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
 
12239
                }
 
12240
                NDR_CHECK(ndr_push_unique_ptr(ndr, *r->out.delta_enum_array));
 
12241
                if (*r->out.delta_enum_array) {
 
12242
                        NDR_CHECK(ndr_push_netr_DELTA_ENUM_ARRAY(ndr, NDR_SCALARS|NDR_BUFFERS, *r->out.delta_enum_array));
 
12243
                }
 
12244
                NDR_CHECK(ndr_push_NTSTATUS(ndr, NDR_SCALARS, r->out.result));
 
12245
        }
 
12246
        return NDR_ERR_SUCCESS;
 
12247
}
 
12248
 
 
12249
static enum ndr_err_code ndr_pull_netr_DatabaseSync2(struct ndr_pull *ndr, int flags, struct netr_DatabaseSync2 *r)
 
12250
{
 
12251
        uint32_t _ptr_delta_enum_array;
 
12252
        TALLOC_CTX *_mem_save_credential_0;
 
12253
        TALLOC_CTX *_mem_save_return_authenticator_0;
 
12254
        TALLOC_CTX *_mem_save_sync_context_0;
 
12255
        TALLOC_CTX *_mem_save_delta_enum_array_0;
 
12256
        TALLOC_CTX *_mem_save_delta_enum_array_1;
 
12257
        if (flags & NDR_IN) {
 
12258
                ZERO_STRUCT(r->out);
 
12259
 
 
12260
                NDR_CHECK(ndr_pull_array_size(ndr, &r->in.logon_server));
 
12261
                NDR_CHECK(ndr_pull_array_length(ndr, &r->in.logon_server));
 
12262
                if (ndr_get_array_length(ndr, &r->in.logon_server) > ndr_get_array_size(ndr, &r->in.logon_server)) {
 
12263
                        return 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));
 
12264
                }
 
12265
                NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->in.logon_server), sizeof(uint16_t)));
 
12266
                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));
 
12267
                NDR_CHECK(ndr_pull_array_size(ndr, &r->in.computername));
 
12268
                NDR_CHECK(ndr_pull_array_length(ndr, &r->in.computername));
 
12269
                if (ndr_get_array_length(ndr, &r->in.computername) > ndr_get_array_size(ndr, &r->in.computername)) {
 
12270
                        return 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));
 
12271
                }
 
12272
                NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->in.computername), sizeof(uint16_t)));
 
12273
                NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->in.computername, ndr_get_array_length(ndr, &r->in.computername), sizeof(uint16_t), CH_UTF16));
 
12274
                if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
 
12275
                        NDR_PULL_ALLOC(ndr, r->in.credential);
 
12276
                }
 
12277
                _mem_save_credential_0 = NDR_PULL_GET_MEM_CTX(ndr);
 
12278
                NDR_PULL_SET_MEM_CTX(ndr, r->in.credential, LIBNDR_FLAG_REF_ALLOC);
 
12279
                NDR_CHECK(ndr_pull_netr_Authenticator(ndr, NDR_SCALARS, r->in.credential));
 
12280
                NDR_PULL_SET_MEM_CTX(ndr, _mem_save_credential_0, LIBNDR_FLAG_REF_ALLOC);
 
12281
                if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
 
12282
                        NDR_PULL_ALLOC(ndr, r->in.return_authenticator);
 
12283
                }
 
12284
                _mem_save_return_authenticator_0 = NDR_PULL_GET_MEM_CTX(ndr);
 
12285
                NDR_PULL_SET_MEM_CTX(ndr, r->in.return_authenticator, LIBNDR_FLAG_REF_ALLOC);
 
12286
                NDR_CHECK(ndr_pull_netr_Authenticator(ndr, NDR_SCALARS, r->in.return_authenticator));
 
12287
                NDR_PULL_SET_MEM_CTX(ndr, _mem_save_return_authenticator_0, LIBNDR_FLAG_REF_ALLOC);
 
12288
                NDR_CHECK(ndr_pull_netr_SamDatabaseID(ndr, NDR_SCALARS, &r->in.database_id));
 
12289
                NDR_CHECK(ndr_pull_SyncStateEnum(ndr, NDR_SCALARS, &r->in.restart_state));
 
12290
                if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
 
12291
                        NDR_PULL_ALLOC(ndr, r->in.sync_context);
 
12292
                }
 
12293
                _mem_save_sync_context_0 = NDR_PULL_GET_MEM_CTX(ndr);
 
12294
                NDR_PULL_SET_MEM_CTX(ndr, r->in.sync_context, LIBNDR_FLAG_REF_ALLOC);
 
12295
                NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, r->in.sync_context));
 
12296
                NDR_PULL_SET_MEM_CTX(ndr, _mem_save_sync_context_0, LIBNDR_FLAG_REF_ALLOC);
 
12297
                NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->in.preferredmaximumlength));
 
12298
                NDR_PULL_ALLOC(ndr, r->out.return_authenticator);
 
12299
                *r->out.return_authenticator = *r->in.return_authenticator;
 
12300
                NDR_PULL_ALLOC(ndr, r->out.sync_context);
 
12301
                *r->out.sync_context = *r->in.sync_context;
 
12302
                NDR_PULL_ALLOC(ndr, r->out.delta_enum_array);
 
12303
                ZERO_STRUCTP(r->out.delta_enum_array);
 
12304
        }
 
12305
        if (flags & NDR_OUT) {
 
12306
                if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
 
12307
                        NDR_PULL_ALLOC(ndr, r->out.return_authenticator);
 
12308
                }
 
12309
                _mem_save_return_authenticator_0 = NDR_PULL_GET_MEM_CTX(ndr);
 
12310
                NDR_PULL_SET_MEM_CTX(ndr, r->out.return_authenticator, LIBNDR_FLAG_REF_ALLOC);
 
12311
                NDR_CHECK(ndr_pull_netr_Authenticator(ndr, NDR_SCALARS, r->out.return_authenticator));
 
12312
                NDR_PULL_SET_MEM_CTX(ndr, _mem_save_return_authenticator_0, LIBNDR_FLAG_REF_ALLOC);
 
12313
                if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
 
12314
                        NDR_PULL_ALLOC(ndr, r->out.sync_context);
 
12315
                }
 
12316
                _mem_save_sync_context_0 = NDR_PULL_GET_MEM_CTX(ndr);
 
12317
                NDR_PULL_SET_MEM_CTX(ndr, r->out.sync_context, LIBNDR_FLAG_REF_ALLOC);
 
12318
                NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, r->out.sync_context));
 
12319
                NDR_PULL_SET_MEM_CTX(ndr, _mem_save_sync_context_0, LIBNDR_FLAG_REF_ALLOC);
 
12320
                if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
 
12321
                        NDR_PULL_ALLOC(ndr, r->out.delta_enum_array);
 
12322
                }
 
12323
                _mem_save_delta_enum_array_0 = NDR_PULL_GET_MEM_CTX(ndr);
 
12324
                NDR_PULL_SET_MEM_CTX(ndr, r->out.delta_enum_array, LIBNDR_FLAG_REF_ALLOC);
 
12325
                NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_delta_enum_array));
 
12326
                if (_ptr_delta_enum_array) {
 
12327
                        NDR_PULL_ALLOC(ndr, *r->out.delta_enum_array);
 
12328
                } else {
 
12329
                        *r->out.delta_enum_array = NULL;
 
12330
                }
 
12331
                if (*r->out.delta_enum_array) {
 
12332
                        _mem_save_delta_enum_array_1 = NDR_PULL_GET_MEM_CTX(ndr);
 
12333
                        NDR_PULL_SET_MEM_CTX(ndr, *r->out.delta_enum_array, 0);
 
12334
                        NDR_CHECK(ndr_pull_netr_DELTA_ENUM_ARRAY(ndr, NDR_SCALARS|NDR_BUFFERS, *r->out.delta_enum_array));
 
12335
                        NDR_PULL_SET_MEM_CTX(ndr, _mem_save_delta_enum_array_1, 0);
 
12336
                }
 
12337
                NDR_PULL_SET_MEM_CTX(ndr, _mem_save_delta_enum_array_0, LIBNDR_FLAG_REF_ALLOC);
 
12338
                NDR_CHECK(ndr_pull_NTSTATUS(ndr, NDR_SCALARS, &r->out.result));
 
12339
        }
 
12340
        return NDR_ERR_SUCCESS;
 
12341
}
 
12342
 
 
12343
_PUBLIC_ void ndr_print_netr_DatabaseSync2(struct ndr_print *ndr, const char *name, int flags, const struct netr_DatabaseSync2 *r)
 
12344
{
 
12345
        ndr_print_struct(ndr, name, "netr_DatabaseSync2");
 
12346
        ndr->depth++;
 
12347
        if (flags & NDR_SET_VALUES) {
 
12348
                ndr->flags |= LIBNDR_PRINT_SET_VALUES;
 
12349
        }
 
12350
        if (flags & NDR_IN) {
 
12351
                ndr_print_struct(ndr, "in", "netr_DatabaseSync2");
 
12352
                ndr->depth++;
 
12353
                ndr_print_ptr(ndr, "logon_server", r->in.logon_server);
 
12354
                ndr->depth++;
 
12355
                ndr_print_string(ndr, "logon_server", r->in.logon_server);
 
12356
                ndr->depth--;
 
12357
                ndr_print_ptr(ndr, "computername", r->in.computername);
 
12358
                ndr->depth++;
 
12359
                ndr_print_string(ndr, "computername", r->in.computername);
 
12360
                ndr->depth--;
 
12361
                ndr_print_ptr(ndr, "credential", r->in.credential);
 
12362
                ndr->depth++;
 
12363
                ndr_print_netr_Authenticator(ndr, "credential", r->in.credential);
 
12364
                ndr->depth--;
 
12365
                ndr_print_ptr(ndr, "return_authenticator", r->in.return_authenticator);
 
12366
                ndr->depth++;
 
12367
                ndr_print_netr_Authenticator(ndr, "return_authenticator", r->in.return_authenticator);
 
12368
                ndr->depth--;
 
12369
                ndr_print_netr_SamDatabaseID(ndr, "database_id", r->in.database_id);
 
12370
                ndr_print_SyncStateEnum(ndr, "restart_state", r->in.restart_state);
 
12371
                ndr_print_ptr(ndr, "sync_context", r->in.sync_context);
 
12372
                ndr->depth++;
 
12373
                ndr_print_uint32(ndr, "sync_context", *r->in.sync_context);
 
12374
                ndr->depth--;
 
12375
                ndr_print_uint32(ndr, "preferredmaximumlength", r->in.preferredmaximumlength);
 
12376
                ndr->depth--;
 
12377
        }
 
12378
        if (flags & NDR_OUT) {
 
12379
                ndr_print_struct(ndr, "out", "netr_DatabaseSync2");
 
12380
                ndr->depth++;
 
12381
                ndr_print_ptr(ndr, "return_authenticator", r->out.return_authenticator);
 
12382
                ndr->depth++;
 
12383
                ndr_print_netr_Authenticator(ndr, "return_authenticator", r->out.return_authenticator);
 
12384
                ndr->depth--;
 
12385
                ndr_print_ptr(ndr, "sync_context", r->out.sync_context);
 
12386
                ndr->depth++;
 
12387
                ndr_print_uint32(ndr, "sync_context", *r->out.sync_context);
 
12388
                ndr->depth--;
 
12389
                ndr_print_ptr(ndr, "delta_enum_array", r->out.delta_enum_array);
 
12390
                ndr->depth++;
 
12391
                ndr_print_ptr(ndr, "delta_enum_array", *r->out.delta_enum_array);
 
12392
                ndr->depth++;
 
12393
                if (*r->out.delta_enum_array) {
 
12394
                        ndr_print_netr_DELTA_ENUM_ARRAY(ndr, "delta_enum_array", *r->out.delta_enum_array);
 
12395
                }
 
12396
                ndr->depth--;
 
12397
                ndr->depth--;
 
12398
                ndr_print_NTSTATUS(ndr, "result", r->out.result);
 
12399
                ndr->depth--;
 
12400
        }
 
12401
        ndr->depth--;
 
12402
}
 
12403
 
 
12404
static enum ndr_err_code ndr_push_netr_DatabaseRedo(struct ndr_push *ndr, int flags, const struct netr_DatabaseRedo *r)
 
12405
{
 
12406
        if (flags & NDR_IN) {
 
12407
                if (r->in.logon_server == NULL) {
 
12408
                        return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
 
12409
                }
 
12410
                NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->in.logon_server, CH_UTF16)));
 
12411
                NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, 0));
 
12412
                NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->in.logon_server, CH_UTF16)));
 
12413
                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));
 
12414
                if (r->in.computername == NULL) {
 
12415
                        return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
 
12416
                }
 
12417
                NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->in.computername, CH_UTF16)));
 
12418
                NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, 0));
 
12419
                NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->in.computername, CH_UTF16)));
 
12420
                NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->in.computername, ndr_charset_length(r->in.computername, CH_UTF16), sizeof(uint16_t), CH_UTF16));
 
12421
                if (r->in.credential == NULL) {
 
12422
                        return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
 
12423
                }
 
12424
                NDR_CHECK(ndr_push_netr_Authenticator(ndr, NDR_SCALARS, r->in.credential));
 
12425
                if (r->in.return_authenticator == NULL) {
 
12426
                        return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
 
12427
                }
 
12428
                NDR_CHECK(ndr_push_netr_Authenticator(ndr, NDR_SCALARS, r->in.return_authenticator));
 
12429
                {
 
12430
                        struct ndr_push *_ndr_change_log_entry;
 
12431
                        NDR_CHECK(ndr_push_subcontext_start(ndr, &_ndr_change_log_entry, 4, ndr_size_netr_ChangeLogEntry(&r->in.change_log_entry, ndr->iconv_convenience, ndr->flags)));
 
12432
                        NDR_CHECK(ndr_push_netr_ChangeLogEntry(_ndr_change_log_entry, NDR_SCALARS|NDR_BUFFERS, &r->in.change_log_entry));
 
12433
                        NDR_CHECK(ndr_push_subcontext_end(ndr, _ndr_change_log_entry, 4, ndr_size_netr_ChangeLogEntry(&r->in.change_log_entry, ndr->iconv_convenience, ndr->flags)));
 
12434
                }
 
12435
                NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_size_netr_ChangeLogEntry(&r->in.change_log_entry, ndr->iconv_convenience, ndr->flags)));
 
12436
        }
 
12437
        if (flags & NDR_OUT) {
 
12438
                if (r->out.return_authenticator == NULL) {
 
12439
                        return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
 
12440
                }
 
12441
                NDR_CHECK(ndr_push_netr_Authenticator(ndr, NDR_SCALARS, r->out.return_authenticator));
 
12442
                if (r->out.delta_enum_array == NULL) {
 
12443
                        return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
 
12444
                }
 
12445
                NDR_CHECK(ndr_push_unique_ptr(ndr, *r->out.delta_enum_array));
 
12446
                if (*r->out.delta_enum_array) {
 
12447
                        NDR_CHECK(ndr_push_netr_DELTA_ENUM_ARRAY(ndr, NDR_SCALARS|NDR_BUFFERS, *r->out.delta_enum_array));
 
12448
                }
 
12449
                NDR_CHECK(ndr_push_NTSTATUS(ndr, NDR_SCALARS, r->out.result));
 
12450
        }
 
12451
        return NDR_ERR_SUCCESS;
 
12452
}
 
12453
 
 
12454
static enum ndr_err_code ndr_pull_netr_DatabaseRedo(struct ndr_pull *ndr, int flags, struct netr_DatabaseRedo *r)
 
12455
{
 
12456
        uint32_t _ptr_delta_enum_array;
 
12457
        TALLOC_CTX *_mem_save_credential_0;
 
12458
        TALLOC_CTX *_mem_save_return_authenticator_0;
 
12459
        TALLOC_CTX *_mem_save_delta_enum_array_0;
 
12460
        TALLOC_CTX *_mem_save_delta_enum_array_1;
 
12461
        if (flags & NDR_IN) {
 
12462
                ZERO_STRUCT(r->out);
 
12463
 
 
12464
                NDR_CHECK(ndr_pull_array_size(ndr, &r->in.logon_server));
 
12465
                NDR_CHECK(ndr_pull_array_length(ndr, &r->in.logon_server));
 
12466
                if (ndr_get_array_length(ndr, &r->in.logon_server) > ndr_get_array_size(ndr, &r->in.logon_server)) {
 
12467
                        return 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));
 
12468
                }
 
12469
                NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->in.logon_server), sizeof(uint16_t)));
 
12470
                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));
 
12471
                NDR_CHECK(ndr_pull_array_size(ndr, &r->in.computername));
 
12472
                NDR_CHECK(ndr_pull_array_length(ndr, &r->in.computername));
 
12473
                if (ndr_get_array_length(ndr, &r->in.computername) > ndr_get_array_size(ndr, &r->in.computername)) {
 
12474
                        return 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));
 
12475
                }
 
12476
                NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->in.computername), sizeof(uint16_t)));
 
12477
                NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->in.computername, ndr_get_array_length(ndr, &r->in.computername), sizeof(uint16_t), CH_UTF16));
 
12478
                if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
 
12479
                        NDR_PULL_ALLOC(ndr, r->in.credential);
 
12480
                }
 
12481
                _mem_save_credential_0 = NDR_PULL_GET_MEM_CTX(ndr);
 
12482
                NDR_PULL_SET_MEM_CTX(ndr, r->in.credential, LIBNDR_FLAG_REF_ALLOC);
 
12483
                NDR_CHECK(ndr_pull_netr_Authenticator(ndr, NDR_SCALARS, r->in.credential));
 
12484
                NDR_PULL_SET_MEM_CTX(ndr, _mem_save_credential_0, LIBNDR_FLAG_REF_ALLOC);
 
12485
                if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
 
12486
                        NDR_PULL_ALLOC(ndr, r->in.return_authenticator);
 
12487
                }
 
12488
                _mem_save_return_authenticator_0 = NDR_PULL_GET_MEM_CTX(ndr);
 
12489
                NDR_PULL_SET_MEM_CTX(ndr, r->in.return_authenticator, LIBNDR_FLAG_REF_ALLOC);
 
12490
                NDR_CHECK(ndr_pull_netr_Authenticator(ndr, NDR_SCALARS, r->in.return_authenticator));
 
12491
                NDR_PULL_SET_MEM_CTX(ndr, _mem_save_return_authenticator_0, LIBNDR_FLAG_REF_ALLOC);
 
12492
                {
 
12493
                        struct ndr_pull *_ndr_change_log_entry;
 
12494
                        NDR_CHECK(ndr_pull_subcontext_start(ndr, &_ndr_change_log_entry, 4, r->in.change_log_entry_size));
 
12495
                        NDR_CHECK(ndr_pull_netr_ChangeLogEntry(_ndr_change_log_entry, NDR_SCALARS|NDR_BUFFERS, &r->in.change_log_entry));
 
12496
                        NDR_CHECK(ndr_pull_subcontext_end(ndr, _ndr_change_log_entry, 4, r->in.change_log_entry_size));
 
12497
                }
 
12498
                NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->in.change_log_entry_size));
 
12499
                NDR_PULL_ALLOC(ndr, r->out.return_authenticator);
 
12500
                *r->out.return_authenticator = *r->in.return_authenticator;
 
12501
                NDR_PULL_ALLOC(ndr, r->out.delta_enum_array);
 
12502
                ZERO_STRUCTP(r->out.delta_enum_array);
 
12503
        }
 
12504
        if (flags & NDR_OUT) {
 
12505
                if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
 
12506
                        NDR_PULL_ALLOC(ndr, r->out.return_authenticator);
 
12507
                }
 
12508
                _mem_save_return_authenticator_0 = NDR_PULL_GET_MEM_CTX(ndr);
 
12509
                NDR_PULL_SET_MEM_CTX(ndr, r->out.return_authenticator, LIBNDR_FLAG_REF_ALLOC);
 
12510
                NDR_CHECK(ndr_pull_netr_Authenticator(ndr, NDR_SCALARS, r->out.return_authenticator));
 
12511
                NDR_PULL_SET_MEM_CTX(ndr, _mem_save_return_authenticator_0, LIBNDR_FLAG_REF_ALLOC);
 
12512
                if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
 
12513
                        NDR_PULL_ALLOC(ndr, r->out.delta_enum_array);
 
12514
                }
 
12515
                _mem_save_delta_enum_array_0 = NDR_PULL_GET_MEM_CTX(ndr);
 
12516
                NDR_PULL_SET_MEM_CTX(ndr, r->out.delta_enum_array, LIBNDR_FLAG_REF_ALLOC);
 
12517
                NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_delta_enum_array));
 
12518
                if (_ptr_delta_enum_array) {
 
12519
                        NDR_PULL_ALLOC(ndr, *r->out.delta_enum_array);
 
12520
                } else {
 
12521
                        *r->out.delta_enum_array = NULL;
 
12522
                }
 
12523
                if (*r->out.delta_enum_array) {
 
12524
                        _mem_save_delta_enum_array_1 = NDR_PULL_GET_MEM_CTX(ndr);
 
12525
                        NDR_PULL_SET_MEM_CTX(ndr, *r->out.delta_enum_array, 0);
 
12526
                        NDR_CHECK(ndr_pull_netr_DELTA_ENUM_ARRAY(ndr, NDR_SCALARS|NDR_BUFFERS, *r->out.delta_enum_array));
 
12527
                        NDR_PULL_SET_MEM_CTX(ndr, _mem_save_delta_enum_array_1, 0);
 
12528
                }
 
12529
                NDR_PULL_SET_MEM_CTX(ndr, _mem_save_delta_enum_array_0, LIBNDR_FLAG_REF_ALLOC);
 
12530
                NDR_CHECK(ndr_pull_NTSTATUS(ndr, NDR_SCALARS, &r->out.result));
 
12531
        }
 
12532
        return NDR_ERR_SUCCESS;
 
12533
}
 
12534
 
 
12535
_PUBLIC_ void ndr_print_netr_DatabaseRedo(struct ndr_print *ndr, const char *name, int flags, const struct netr_DatabaseRedo *r)
 
12536
{
 
12537
        ndr_print_struct(ndr, name, "netr_DatabaseRedo");
 
12538
        ndr->depth++;
 
12539
        if (flags & NDR_SET_VALUES) {
 
12540
                ndr->flags |= LIBNDR_PRINT_SET_VALUES;
 
12541
        }
 
12542
        if (flags & NDR_IN) {
 
12543
                ndr_print_struct(ndr, "in", "netr_DatabaseRedo");
 
12544
                ndr->depth++;
 
12545
                ndr_print_ptr(ndr, "logon_server", r->in.logon_server);
 
12546
                ndr->depth++;
 
12547
                ndr_print_string(ndr, "logon_server", r->in.logon_server);
 
12548
                ndr->depth--;
 
12549
                ndr_print_ptr(ndr, "computername", r->in.computername);
 
12550
                ndr->depth++;
 
12551
                ndr_print_string(ndr, "computername", r->in.computername);
 
12552
                ndr->depth--;
 
12553
                ndr_print_ptr(ndr, "credential", r->in.credential);
 
12554
                ndr->depth++;
 
12555
                ndr_print_netr_Authenticator(ndr, "credential", r->in.credential);
 
12556
                ndr->depth--;
 
12557
                ndr_print_ptr(ndr, "return_authenticator", r->in.return_authenticator);
 
12558
                ndr->depth++;
 
12559
                ndr_print_netr_Authenticator(ndr, "return_authenticator", r->in.return_authenticator);
 
12560
                ndr->depth--;
 
12561
                ndr_print_netr_ChangeLogEntry(ndr, "change_log_entry", &r->in.change_log_entry);
 
12562
                ndr_print_uint32(ndr, "change_log_entry_size", (ndr->flags & LIBNDR_PRINT_SET_VALUES)?ndr_size_netr_ChangeLogEntry(&r->in.change_log_entry, ndr->iconv_convenience, ndr->flags):r->in.change_log_entry_size);
 
12563
                ndr->depth--;
 
12564
        }
 
12565
        if (flags & NDR_OUT) {
 
12566
                ndr_print_struct(ndr, "out", "netr_DatabaseRedo");
 
12567
                ndr->depth++;
 
12568
                ndr_print_ptr(ndr, "return_authenticator", r->out.return_authenticator);
 
12569
                ndr->depth++;
 
12570
                ndr_print_netr_Authenticator(ndr, "return_authenticator", r->out.return_authenticator);
 
12571
                ndr->depth--;
 
12572
                ndr_print_ptr(ndr, "delta_enum_array", r->out.delta_enum_array);
 
12573
                ndr->depth++;
 
12574
                ndr_print_ptr(ndr, "delta_enum_array", *r->out.delta_enum_array);
 
12575
                ndr->depth++;
 
12576
                if (*r->out.delta_enum_array) {
 
12577
                        ndr_print_netr_DELTA_ENUM_ARRAY(ndr, "delta_enum_array", *r->out.delta_enum_array);
 
12578
                }
 
12579
                ndr->depth--;
 
12580
                ndr->depth--;
 
12581
                ndr_print_NTSTATUS(ndr, "result", r->out.result);
 
12582
                ndr->depth--;
 
12583
        }
 
12584
        ndr->depth--;
 
12585
}
 
12586
 
 
12587
static enum ndr_err_code ndr_push_netr_LogonControl2Ex(struct ndr_push *ndr, int flags, const struct netr_LogonControl2Ex *r)
 
12588
{
 
12589
        if (flags & NDR_IN) {
 
12590
                NDR_CHECK(ndr_push_unique_ptr(ndr, r->in.logon_server));
 
12591
                if (r->in.logon_server) {
 
12592
                        NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->in.logon_server, CH_UTF16)));
 
12593
                        NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, 0));
 
12594
                        NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->in.logon_server, CH_UTF16)));
 
12595
                        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));
 
12596
                }
 
12597
                NDR_CHECK(ndr_push_netr_LogonControlCode(ndr, NDR_SCALARS, r->in.function_code));
 
12598
                NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->in.level));
 
12599
                if (r->in.data == NULL) {
 
12600
                        return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
 
12601
                }
 
12602
                NDR_CHECK(ndr_push_set_switch_value(ndr, r->in.data, r->in.function_code));
 
12603
                NDR_CHECK(ndr_push_netr_CONTROL_DATA_INFORMATION(ndr, NDR_SCALARS|NDR_BUFFERS, r->in.data));
 
12604
        }
 
12605
        if (flags & NDR_OUT) {
 
12606
                if (r->out.query == NULL) {
 
12607
                        return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
 
12608
                }
 
12609
                NDR_CHECK(ndr_push_set_switch_value(ndr, r->out.query, r->in.level));
 
12610
                NDR_CHECK(ndr_push_netr_CONTROL_QUERY_INFORMATION(ndr, NDR_SCALARS|NDR_BUFFERS, r->out.query));
 
12611
                NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result));
 
12612
        }
 
12613
        return NDR_ERR_SUCCESS;
 
12614
}
 
12615
 
 
12616
static enum ndr_err_code ndr_pull_netr_LogonControl2Ex(struct ndr_pull *ndr, int flags, struct netr_LogonControl2Ex *r)
 
12617
{
 
12618
        uint32_t _ptr_logon_server;
 
12619
        TALLOC_CTX *_mem_save_logon_server_0;
 
12620
        TALLOC_CTX *_mem_save_data_0;
 
12621
        TALLOC_CTX *_mem_save_query_0;
 
12622
        if (flags & NDR_IN) {
 
12623
                ZERO_STRUCT(r->out);
 
12624
 
 
12625
                NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_logon_server));
 
12626
                if (_ptr_logon_server) {
 
12627
                        NDR_PULL_ALLOC(ndr, r->in.logon_server);
 
12628
                } else {
 
12629
                        r->in.logon_server = NULL;
 
12630
                }
 
12631
                if (r->in.logon_server) {
 
12632
                        _mem_save_logon_server_0 = NDR_PULL_GET_MEM_CTX(ndr);
 
12633
                        NDR_PULL_SET_MEM_CTX(ndr, r->in.logon_server, 0);
 
12634
                        NDR_CHECK(ndr_pull_array_size(ndr, &r->in.logon_server));
 
12635
                        NDR_CHECK(ndr_pull_array_length(ndr, &r->in.logon_server));
 
12636
                        if (ndr_get_array_length(ndr, &r->in.logon_server) > ndr_get_array_size(ndr, &r->in.logon_server)) {
 
12637
                                return 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));
 
12638
                        }
 
12639
                        NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->in.logon_server), sizeof(uint16_t)));
 
12640
                        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));
 
12641
                        NDR_PULL_SET_MEM_CTX(ndr, _mem_save_logon_server_0, 0);
 
12642
                }
 
12643
                NDR_CHECK(ndr_pull_netr_LogonControlCode(ndr, NDR_SCALARS, &r->in.function_code));
 
12644
                NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->in.level));
 
12645
                if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
 
12646
                        NDR_PULL_ALLOC(ndr, r->in.data);
 
12647
                }
 
12648
                _mem_save_data_0 = NDR_PULL_GET_MEM_CTX(ndr);
 
12649
                NDR_PULL_SET_MEM_CTX(ndr, r->in.data, LIBNDR_FLAG_REF_ALLOC);
 
12650
                NDR_CHECK(ndr_pull_set_switch_value(ndr, r->in.data, r->in.function_code));
 
12651
                NDR_CHECK(ndr_pull_netr_CONTROL_DATA_INFORMATION(ndr, NDR_SCALARS|NDR_BUFFERS, r->in.data));
 
12652
                NDR_PULL_SET_MEM_CTX(ndr, _mem_save_data_0, LIBNDR_FLAG_REF_ALLOC);
 
12653
                NDR_PULL_ALLOC(ndr, r->out.query);
 
12654
                ZERO_STRUCTP(r->out.query);
 
12655
        }
 
12656
        if (flags & NDR_OUT) {
 
12657
                if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
 
12658
                        NDR_PULL_ALLOC(ndr, r->out.query);
 
12659
                }
 
12660
                _mem_save_query_0 = NDR_PULL_GET_MEM_CTX(ndr);
 
12661
                NDR_PULL_SET_MEM_CTX(ndr, r->out.query, LIBNDR_FLAG_REF_ALLOC);
 
12662
                NDR_CHECK(ndr_pull_set_switch_value(ndr, r->out.query, r->in.level));
 
12663
                NDR_CHECK(ndr_pull_netr_CONTROL_QUERY_INFORMATION(ndr, NDR_SCALARS|NDR_BUFFERS, r->out.query));
 
12664
                NDR_PULL_SET_MEM_CTX(ndr, _mem_save_query_0, LIBNDR_FLAG_REF_ALLOC);
 
12665
                NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result));
 
12666
        }
 
12667
        return NDR_ERR_SUCCESS;
 
12668
}
 
12669
 
 
12670
_PUBLIC_ void ndr_print_netr_LogonControl2Ex(struct ndr_print *ndr, const char *name, int flags, const struct netr_LogonControl2Ex *r)
 
12671
{
 
12672
        ndr_print_struct(ndr, name, "netr_LogonControl2Ex");
 
12673
        ndr->depth++;
 
12674
        if (flags & NDR_SET_VALUES) {
 
12675
                ndr->flags |= LIBNDR_PRINT_SET_VALUES;
 
12676
        }
 
12677
        if (flags & NDR_IN) {
 
12678
                ndr_print_struct(ndr, "in", "netr_LogonControl2Ex");
 
12679
                ndr->depth++;
 
12680
                ndr_print_ptr(ndr, "logon_server", r->in.logon_server);
 
12681
                ndr->depth++;
 
12682
                if (r->in.logon_server) {
 
12683
                        ndr_print_string(ndr, "logon_server", r->in.logon_server);
 
12684
                }
 
12685
                ndr->depth--;
 
12686
                ndr_print_netr_LogonControlCode(ndr, "function_code", r->in.function_code);
 
12687
                ndr_print_uint32(ndr, "level", r->in.level);
 
12688
                ndr_print_ptr(ndr, "data", r->in.data);
 
12689
                ndr->depth++;
 
12690
                ndr_print_set_switch_value(ndr, r->in.data, r->in.function_code);
 
12691
                ndr_print_netr_CONTROL_DATA_INFORMATION(ndr, "data", r->in.data);
 
12692
                ndr->depth--;
 
12693
                ndr->depth--;
 
12694
        }
 
12695
        if (flags & NDR_OUT) {
 
12696
                ndr_print_struct(ndr, "out", "netr_LogonControl2Ex");
 
12697
                ndr->depth++;
 
12698
                ndr_print_ptr(ndr, "query", r->out.query);
 
12699
                ndr->depth++;
 
12700
                ndr_print_set_switch_value(ndr, r->out.query, r->in.level);
 
12701
                ndr_print_netr_CONTROL_QUERY_INFORMATION(ndr, "query", r->out.query);
 
12702
                ndr->depth--;
 
12703
                ndr_print_WERROR(ndr, "result", r->out.result);
 
12704
                ndr->depth--;
 
12705
        }
 
12706
        ndr->depth--;
 
12707
}
 
12708
 
 
12709
static enum ndr_err_code ndr_push_netr_NetrEnumerateTrustedDomains(struct ndr_push *ndr, int flags, const struct netr_NetrEnumerateTrustedDomains *r)
 
12710
{
 
12711
        if (flags & NDR_IN) {
 
12712
                NDR_CHECK(ndr_push_unique_ptr(ndr, r->in.server_name));
 
12713
                if (r->in.server_name) {
 
12714
                        NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->in.server_name, CH_UTF16)));
 
12715
                        NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, 0));
 
12716
                        NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->in.server_name, CH_UTF16)));
 
12717
                        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));
 
12718
                }
 
12719
        }
 
12720
        if (flags & NDR_OUT) {
 
12721
                if (r->out.trusted_domains_blob == NULL) {
 
12722
                        return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
 
12723
                }
 
12724
                NDR_CHECK(ndr_push_netr_Blob(ndr, NDR_SCALARS|NDR_BUFFERS, r->out.trusted_domains_blob));
 
12725
                NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result));
 
12726
        }
 
12727
        return NDR_ERR_SUCCESS;
 
12728
}
 
12729
 
 
12730
static enum ndr_err_code ndr_pull_netr_NetrEnumerateTrustedDomains(struct ndr_pull *ndr, int flags, struct netr_NetrEnumerateTrustedDomains *r)
 
12731
{
 
12732
        uint32_t _ptr_server_name;
 
12733
        TALLOC_CTX *_mem_save_server_name_0;
 
12734
        TALLOC_CTX *_mem_save_trusted_domains_blob_0;
 
12735
        if (flags & NDR_IN) {
 
12736
                ZERO_STRUCT(r->out);
 
12737
 
 
12738
                NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_server_name));
 
12739
                if (_ptr_server_name) {
 
12740
                        NDR_PULL_ALLOC(ndr, r->in.server_name);
 
12741
                } else {
 
12742
                        r->in.server_name = NULL;
 
12743
                }
 
12744
                if (r->in.server_name) {
 
12745
                        _mem_save_server_name_0 = NDR_PULL_GET_MEM_CTX(ndr);
 
12746
                        NDR_PULL_SET_MEM_CTX(ndr, r->in.server_name, 0);
 
12747
                        NDR_CHECK(ndr_pull_array_size(ndr, &r->in.server_name));
 
12748
                        NDR_CHECK(ndr_pull_array_length(ndr, &r->in.server_name));
 
12749
                        if (ndr_get_array_length(ndr, &r->in.server_name) > ndr_get_array_size(ndr, &r->in.server_name)) {
 
12750
                                return ndr_pull_error(ndr, NDR_ERR_ARRAY_SIZE, "Bad array size %u should exceed array length %u", ndr_get_array_size(ndr, &r->in.server_name), ndr_get_array_length(ndr, &r->in.server_name));
 
12751
                        }
 
12752
                        NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->in.server_name), sizeof(uint16_t)));
 
12753
                        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));
 
12754
                        NDR_PULL_SET_MEM_CTX(ndr, _mem_save_server_name_0, 0);
 
12755
                }
 
12756
                NDR_PULL_ALLOC(ndr, r->out.trusted_domains_blob);
 
12757
                ZERO_STRUCTP(r->out.trusted_domains_blob);
 
12758
        }
 
12759
        if (flags & NDR_OUT) {
 
12760
                if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
 
12761
                        NDR_PULL_ALLOC(ndr, r->out.trusted_domains_blob);
 
12762
                }
 
12763
                _mem_save_trusted_domains_blob_0 = NDR_PULL_GET_MEM_CTX(ndr);
 
12764
                NDR_PULL_SET_MEM_CTX(ndr, r->out.trusted_domains_blob, LIBNDR_FLAG_REF_ALLOC);
 
12765
                NDR_CHECK(ndr_pull_netr_Blob(ndr, NDR_SCALARS|NDR_BUFFERS, r->out.trusted_domains_blob));
 
12766
                NDR_PULL_SET_MEM_CTX(ndr, _mem_save_trusted_domains_blob_0, LIBNDR_FLAG_REF_ALLOC);
 
12767
                NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result));
 
12768
        }
 
12769
        return NDR_ERR_SUCCESS;
 
12770
}
 
12771
 
 
12772
_PUBLIC_ void ndr_print_netr_NetrEnumerateTrustedDomains(struct ndr_print *ndr, const char *name, int flags, const struct netr_NetrEnumerateTrustedDomains *r)
 
12773
{
 
12774
        ndr_print_struct(ndr, name, "netr_NetrEnumerateTrustedDomains");
 
12775
        ndr->depth++;
 
12776
        if (flags & NDR_SET_VALUES) {
 
12777
                ndr->flags |= LIBNDR_PRINT_SET_VALUES;
 
12778
        }
 
12779
        if (flags & NDR_IN) {
 
12780
                ndr_print_struct(ndr, "in", "netr_NetrEnumerateTrustedDomains");
 
12781
                ndr->depth++;
 
12782
                ndr_print_ptr(ndr, "server_name", r->in.server_name);
 
12783
                ndr->depth++;
 
12784
                if (r->in.server_name) {
 
12785
                        ndr_print_string(ndr, "server_name", r->in.server_name);
 
12786
                }
 
12787
                ndr->depth--;
 
12788
                ndr->depth--;
 
12789
        }
 
12790
        if (flags & NDR_OUT) {
 
12791
                ndr_print_struct(ndr, "out", "netr_NetrEnumerateTrustedDomains");
 
12792
                ndr->depth++;
 
12793
                ndr_print_ptr(ndr, "trusted_domains_blob", r->out.trusted_domains_blob);
 
12794
                ndr->depth++;
 
12795
                ndr_print_netr_Blob(ndr, "trusted_domains_blob", r->out.trusted_domains_blob);
 
12796
                ndr->depth--;
 
12797
                ndr_print_WERROR(ndr, "result", r->out.result);
 
12798
                ndr->depth--;
 
12799
        }
 
12800
        ndr->depth--;
 
12801
}
 
12802
 
 
12803
static enum ndr_err_code ndr_push_netr_DsRGetDCName(struct ndr_push *ndr, int flags, const struct netr_DsRGetDCName *r)
 
12804
{
 
12805
        if (flags & NDR_IN) {
 
12806
                NDR_CHECK(ndr_push_unique_ptr(ndr, r->in.server_unc));
 
12807
                if (r->in.server_unc) {
 
12808
                        NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->in.server_unc, CH_UTF16)));
 
12809
                        NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, 0));
 
12810
                        NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->in.server_unc, CH_UTF16)));
 
12811
                        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));
 
12812
                }
 
12813
                NDR_CHECK(ndr_push_unique_ptr(ndr, r->in.domain_name));
 
12814
                if (r->in.domain_name) {
 
12815
                        NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->in.domain_name, CH_UTF16)));
 
12816
                        NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, 0));
 
12817
                        NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->in.domain_name, CH_UTF16)));
 
12818
                        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));
 
12819
                }
 
12820
                NDR_CHECK(ndr_push_unique_ptr(ndr, r->in.domain_guid));
 
12821
                if (r->in.domain_guid) {
 
12822
                        NDR_CHECK(ndr_push_GUID(ndr, NDR_SCALARS, r->in.domain_guid));
 
12823
                }
 
12824
                NDR_CHECK(ndr_push_unique_ptr(ndr, r->in.site_guid));
 
12825
                if (r->in.site_guid) {
 
12826
                        NDR_CHECK(ndr_push_GUID(ndr, NDR_SCALARS, r->in.site_guid));
 
12827
                }
 
12828
                NDR_CHECK(ndr_push_netr_DsRGetDCName_flags(ndr, NDR_SCALARS, r->in.flags));
 
12829
        }
 
12830
        if (flags & NDR_OUT) {
 
12831
                if (r->out.info == NULL) {
 
12832
                        return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
 
12833
                }
 
12834
                NDR_CHECK(ndr_push_unique_ptr(ndr, *r->out.info));
 
12835
                if (*r->out.info) {
 
12836
                        NDR_CHECK(ndr_push_netr_DsRGetDCNameInfo(ndr, NDR_SCALARS|NDR_BUFFERS, *r->out.info));
 
12837
                }
 
12838
                NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result));
 
12839
        }
 
12840
        return NDR_ERR_SUCCESS;
 
12841
}
 
12842
 
 
12843
static enum ndr_err_code ndr_pull_netr_DsRGetDCName(struct ndr_pull *ndr, int flags, struct netr_DsRGetDCName *r)
 
12844
{
 
12845
        uint32_t _ptr_server_unc;
 
12846
        uint32_t _ptr_domain_name;
 
12847
        uint32_t _ptr_domain_guid;
 
12848
        uint32_t _ptr_site_guid;
 
12849
        uint32_t _ptr_info;
 
12850
        TALLOC_CTX *_mem_save_server_unc_0;
 
12851
        TALLOC_CTX *_mem_save_domain_name_0;
 
12852
        TALLOC_CTX *_mem_save_domain_guid_0;
 
12853
        TALLOC_CTX *_mem_save_site_guid_0;
 
12854
        TALLOC_CTX *_mem_save_info_0;
 
12855
        TALLOC_CTX *_mem_save_info_1;
 
12856
        if (flags & NDR_IN) {
 
12857
                ZERO_STRUCT(r->out);
 
12858
 
 
12859
                NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_server_unc));
 
12860
                if (_ptr_server_unc) {
 
12861
                        NDR_PULL_ALLOC(ndr, r->in.server_unc);
 
12862
                } else {
 
12863
                        r->in.server_unc = NULL;
 
12864
                }
 
12865
                if (r->in.server_unc) {
 
12866
                        _mem_save_server_unc_0 = NDR_PULL_GET_MEM_CTX(ndr);
 
12867
                        NDR_PULL_SET_MEM_CTX(ndr, r->in.server_unc, 0);
 
12868
                        NDR_CHECK(ndr_pull_array_size(ndr, &r->in.server_unc));
 
12869
                        NDR_CHECK(ndr_pull_array_length(ndr, &r->in.server_unc));
 
12870
                        if (ndr_get_array_length(ndr, &r->in.server_unc) > ndr_get_array_size(ndr, &r->in.server_unc)) {
 
12871
                                return 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));
 
12872
                        }
 
12873
                        NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->in.server_unc), sizeof(uint16_t)));
 
12874
                        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));
 
12875
                        NDR_PULL_SET_MEM_CTX(ndr, _mem_save_server_unc_0, 0);
 
12876
                }
 
12877
                NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_domain_name));
 
12878
                if (_ptr_domain_name) {
 
12879
                        NDR_PULL_ALLOC(ndr, r->in.domain_name);
 
12880
                } else {
 
12881
                        r->in.domain_name = NULL;
 
12882
                }
 
12883
                if (r->in.domain_name) {
 
12884
                        _mem_save_domain_name_0 = NDR_PULL_GET_MEM_CTX(ndr);
 
12885
                        NDR_PULL_SET_MEM_CTX(ndr, r->in.domain_name, 0);
 
12886
                        NDR_CHECK(ndr_pull_array_size(ndr, &r->in.domain_name));
 
12887
                        NDR_CHECK(ndr_pull_array_length(ndr, &r->in.domain_name));
 
12888
                        if (ndr_get_array_length(ndr, &r->in.domain_name) > ndr_get_array_size(ndr, &r->in.domain_name)) {
 
12889
                                return 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));
 
12890
                        }
 
12891
                        NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->in.domain_name), sizeof(uint16_t)));
 
12892
                        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));
 
12893
                        NDR_PULL_SET_MEM_CTX(ndr, _mem_save_domain_name_0, 0);
 
12894
                }
 
12895
                NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_domain_guid));
 
12896
                if (_ptr_domain_guid) {
 
12897
                        NDR_PULL_ALLOC(ndr, r->in.domain_guid);
 
12898
                } else {
 
12899
                        r->in.domain_guid = NULL;
 
12900
                }
 
12901
                if (r->in.domain_guid) {
 
12902
                        _mem_save_domain_guid_0 = NDR_PULL_GET_MEM_CTX(ndr);
 
12903
                        NDR_PULL_SET_MEM_CTX(ndr, r->in.domain_guid, 0);
 
12904
                        NDR_CHECK(ndr_pull_GUID(ndr, NDR_SCALARS, r->in.domain_guid));
 
12905
                        NDR_PULL_SET_MEM_CTX(ndr, _mem_save_domain_guid_0, 0);
 
12906
                }
 
12907
                NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_site_guid));
 
12908
                if (_ptr_site_guid) {
 
12909
                        NDR_PULL_ALLOC(ndr, r->in.site_guid);
 
12910
                } else {
 
12911
                        r->in.site_guid = NULL;
 
12912
                }
 
12913
                if (r->in.site_guid) {
 
12914
                        _mem_save_site_guid_0 = NDR_PULL_GET_MEM_CTX(ndr);
 
12915
                        NDR_PULL_SET_MEM_CTX(ndr, r->in.site_guid, 0);
 
12916
                        NDR_CHECK(ndr_pull_GUID(ndr, NDR_SCALARS, r->in.site_guid));
 
12917
                        NDR_PULL_SET_MEM_CTX(ndr, _mem_save_site_guid_0, 0);
 
12918
                }
 
12919
                NDR_CHECK(ndr_pull_netr_DsRGetDCName_flags(ndr, NDR_SCALARS, &r->in.flags));
 
12920
                NDR_PULL_ALLOC(ndr, r->out.info);
 
12921
                ZERO_STRUCTP(r->out.info);
 
12922
        }
 
12923
        if (flags & NDR_OUT) {
 
12924
                if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
 
12925
                        NDR_PULL_ALLOC(ndr, r->out.info);
 
12926
                }
 
12927
                _mem_save_info_0 = NDR_PULL_GET_MEM_CTX(ndr);
 
12928
                NDR_PULL_SET_MEM_CTX(ndr, r->out.info, LIBNDR_FLAG_REF_ALLOC);
 
12929
                NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_info));
 
12930
                if (_ptr_info) {
 
12931
                        NDR_PULL_ALLOC(ndr, *r->out.info);
 
12932
                } else {
 
12933
                        *r->out.info = NULL;
 
12934
                }
 
12935
                if (*r->out.info) {
 
12936
                        _mem_save_info_1 = NDR_PULL_GET_MEM_CTX(ndr);
 
12937
                        NDR_PULL_SET_MEM_CTX(ndr, *r->out.info, 0);
 
12938
                        NDR_CHECK(ndr_pull_netr_DsRGetDCNameInfo(ndr, NDR_SCALARS|NDR_BUFFERS, *r->out.info));
 
12939
                        NDR_PULL_SET_MEM_CTX(ndr, _mem_save_info_1, 0);
 
12940
                }
 
12941
                NDR_PULL_SET_MEM_CTX(ndr, _mem_save_info_0, LIBNDR_FLAG_REF_ALLOC);
 
12942
                NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result));
 
12943
        }
 
12944
        return NDR_ERR_SUCCESS;
 
12945
}
 
12946
 
 
12947
_PUBLIC_ void ndr_print_netr_DsRGetDCName(struct ndr_print *ndr, const char *name, int flags, const struct netr_DsRGetDCName *r)
 
12948
{
 
12949
        ndr_print_struct(ndr, name, "netr_DsRGetDCName");
 
12950
        ndr->depth++;
 
12951
        if (flags & NDR_SET_VALUES) {
 
12952
                ndr->flags |= LIBNDR_PRINT_SET_VALUES;
 
12953
        }
 
12954
        if (flags & NDR_IN) {
 
12955
                ndr_print_struct(ndr, "in", "netr_DsRGetDCName");
 
12956
                ndr->depth++;
 
12957
                ndr_print_ptr(ndr, "server_unc", r->in.server_unc);
 
12958
                ndr->depth++;
 
12959
                if (r->in.server_unc) {
 
12960
                        ndr_print_string(ndr, "server_unc", r->in.server_unc);
 
12961
                }
 
12962
                ndr->depth--;
 
12963
                ndr_print_ptr(ndr, "domain_name", r->in.domain_name);
 
12964
                ndr->depth++;
 
12965
                if (r->in.domain_name) {
 
12966
                        ndr_print_string(ndr, "domain_name", r->in.domain_name);
 
12967
                }
 
12968
                ndr->depth--;
 
12969
                ndr_print_ptr(ndr, "domain_guid", r->in.domain_guid);
 
12970
                ndr->depth++;
 
12971
                if (r->in.domain_guid) {
 
12972
                        ndr_print_GUID(ndr, "domain_guid", r->in.domain_guid);
 
12973
                }
 
12974
                ndr->depth--;
 
12975
                ndr_print_ptr(ndr, "site_guid", r->in.site_guid);
 
12976
                ndr->depth++;
 
12977
                if (r->in.site_guid) {
 
12978
                        ndr_print_GUID(ndr, "site_guid", r->in.site_guid);
 
12979
                }
 
12980
                ndr->depth--;
 
12981
                ndr_print_netr_DsRGetDCName_flags(ndr, "flags", r->in.flags);
 
12982
                ndr->depth--;
 
12983
        }
 
12984
        if (flags & NDR_OUT) {
 
12985
                ndr_print_struct(ndr, "out", "netr_DsRGetDCName");
 
12986
                ndr->depth++;
 
12987
                ndr_print_ptr(ndr, "info", r->out.info);
 
12988
                ndr->depth++;
 
12989
                ndr_print_ptr(ndr, "info", *r->out.info);
 
12990
                ndr->depth++;
 
12991
                if (*r->out.info) {
 
12992
                        ndr_print_netr_DsRGetDCNameInfo(ndr, "info", *r->out.info);
 
12993
                }
 
12994
                ndr->depth--;
 
12995
                ndr->depth--;
 
12996
                ndr_print_WERROR(ndr, "result", r->out.result);
 
12997
                ndr->depth--;
 
12998
        }
 
12999
        ndr->depth--;
 
13000
}
 
13001
 
 
13002
static enum ndr_err_code ndr_push_netr_LogonGetCapabilities(struct ndr_push *ndr, int flags, const struct netr_LogonGetCapabilities *r)
 
13003
{
 
13004
        if (flags & NDR_IN) {
 
13005
                if (r->in.server_name == NULL) {
 
13006
                        return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
 
13007
                }
 
13008
                NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->in.server_name, CH_UTF16)));
 
13009
                NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, 0));
 
13010
                NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->in.server_name, CH_UTF16)));
 
13011
                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));
 
13012
                NDR_CHECK(ndr_push_unique_ptr(ndr, r->in.computer_name));
 
13013
                if (r->in.computer_name) {
 
13014
                        NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->in.computer_name, CH_UTF16)));
 
13015
                        NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, 0));
 
13016
                        NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->in.computer_name, CH_UTF16)));
 
13017
                        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));
 
13018
                }
 
13019
                if (r->in.credential == NULL) {
 
13020
                        return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
 
13021
                }
 
13022
                NDR_CHECK(ndr_push_netr_Authenticator(ndr, NDR_SCALARS, r->in.credential));
 
13023
                if (r->in.return_authenticator == NULL) {
 
13024
                        return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
 
13025
                }
 
13026
                NDR_CHECK(ndr_push_netr_Authenticator(ndr, NDR_SCALARS, r->in.return_authenticator));
 
13027
                NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->in.query_level));
 
13028
        }
 
13029
        if (flags & NDR_OUT) {
 
13030
                if (r->out.return_authenticator == NULL) {
 
13031
                        return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
 
13032
                }
 
13033
                NDR_CHECK(ndr_push_netr_Authenticator(ndr, NDR_SCALARS, r->out.return_authenticator));
 
13034
                if (r->out.capabilities == NULL) {
 
13035
                        return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
 
13036
                }
 
13037
                NDR_CHECK(ndr_push_set_switch_value(ndr, r->out.capabilities, r->in.query_level));
 
13038
                NDR_CHECK(ndr_push_netr_Capabilities(ndr, NDR_SCALARS, r->out.capabilities));
 
13039
                NDR_CHECK(ndr_push_NTSTATUS(ndr, NDR_SCALARS, r->out.result));
 
13040
        }
 
13041
        return NDR_ERR_SUCCESS;
 
13042
}
 
13043
 
 
13044
static enum ndr_err_code ndr_pull_netr_LogonGetCapabilities(struct ndr_pull *ndr, int flags, struct netr_LogonGetCapabilities *r)
 
13045
{
 
13046
        uint32_t _ptr_computer_name;
 
13047
        TALLOC_CTX *_mem_save_computer_name_0;
 
13048
        TALLOC_CTX *_mem_save_credential_0;
 
13049
        TALLOC_CTX *_mem_save_return_authenticator_0;
 
13050
        TALLOC_CTX *_mem_save_capabilities_0;
 
13051
        if (flags & NDR_IN) {
 
13052
                ZERO_STRUCT(r->out);
 
13053
 
 
13054
                NDR_CHECK(ndr_pull_array_size(ndr, &r->in.server_name));
 
13055
                NDR_CHECK(ndr_pull_array_length(ndr, &r->in.server_name));
 
13056
                if (ndr_get_array_length(ndr, &r->in.server_name) > ndr_get_array_size(ndr, &r->in.server_name)) {
 
13057
                        return 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));
 
13058
                }
 
13059
                NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->in.server_name), sizeof(uint16_t)));
 
13060
                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));
 
13061
                NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_computer_name));
 
13062
                if (_ptr_computer_name) {
 
13063
                        NDR_PULL_ALLOC(ndr, r->in.computer_name);
 
13064
                } else {
 
13065
                        r->in.computer_name = NULL;
 
13066
                }
 
13067
                if (r->in.computer_name) {
 
13068
                        _mem_save_computer_name_0 = NDR_PULL_GET_MEM_CTX(ndr);
 
13069
                        NDR_PULL_SET_MEM_CTX(ndr, r->in.computer_name, 0);
 
13070
                        NDR_CHECK(ndr_pull_array_size(ndr, &r->in.computer_name));
 
13071
                        NDR_CHECK(ndr_pull_array_length(ndr, &r->in.computer_name));
 
13072
                        if (ndr_get_array_length(ndr, &r->in.computer_name) > ndr_get_array_size(ndr, &r->in.computer_name)) {
 
13073
                                return 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));
 
13074
                        }
 
13075
                        NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->in.computer_name), sizeof(uint16_t)));
 
13076
                        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));
 
13077
                        NDR_PULL_SET_MEM_CTX(ndr, _mem_save_computer_name_0, 0);
 
13078
                }
 
13079
                if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
 
13080
                        NDR_PULL_ALLOC(ndr, r->in.credential);
 
13081
                }
 
13082
                _mem_save_credential_0 = NDR_PULL_GET_MEM_CTX(ndr);
 
13083
                NDR_PULL_SET_MEM_CTX(ndr, r->in.credential, LIBNDR_FLAG_REF_ALLOC);
 
13084
                NDR_CHECK(ndr_pull_netr_Authenticator(ndr, NDR_SCALARS, r->in.credential));
 
13085
                NDR_PULL_SET_MEM_CTX(ndr, _mem_save_credential_0, LIBNDR_FLAG_REF_ALLOC);
 
13086
                if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
 
13087
                        NDR_PULL_ALLOC(ndr, r->in.return_authenticator);
 
13088
                }
 
13089
                _mem_save_return_authenticator_0 = NDR_PULL_GET_MEM_CTX(ndr);
 
13090
                NDR_PULL_SET_MEM_CTX(ndr, r->in.return_authenticator, LIBNDR_FLAG_REF_ALLOC);
 
13091
                NDR_CHECK(ndr_pull_netr_Authenticator(ndr, NDR_SCALARS, r->in.return_authenticator));
 
13092
                NDR_PULL_SET_MEM_CTX(ndr, _mem_save_return_authenticator_0, LIBNDR_FLAG_REF_ALLOC);
 
13093
                NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->in.query_level));
 
13094
                NDR_PULL_ALLOC(ndr, r->out.return_authenticator);
 
13095
                *r->out.return_authenticator = *r->in.return_authenticator;
 
13096
                NDR_PULL_ALLOC(ndr, r->out.capabilities);
 
13097
                ZERO_STRUCTP(r->out.capabilities);
 
13098
        }
 
13099
        if (flags & NDR_OUT) {
 
13100
                if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
 
13101
                        NDR_PULL_ALLOC(ndr, r->out.return_authenticator);
 
13102
                }
 
13103
                _mem_save_return_authenticator_0 = NDR_PULL_GET_MEM_CTX(ndr);
 
13104
                NDR_PULL_SET_MEM_CTX(ndr, r->out.return_authenticator, LIBNDR_FLAG_REF_ALLOC);
 
13105
                NDR_CHECK(ndr_pull_netr_Authenticator(ndr, NDR_SCALARS, r->out.return_authenticator));
 
13106
                NDR_PULL_SET_MEM_CTX(ndr, _mem_save_return_authenticator_0, LIBNDR_FLAG_REF_ALLOC);
 
13107
                if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
 
13108
                        NDR_PULL_ALLOC(ndr, r->out.capabilities);
 
13109
                }
 
13110
                _mem_save_capabilities_0 = NDR_PULL_GET_MEM_CTX(ndr);
 
13111
                NDR_PULL_SET_MEM_CTX(ndr, r->out.capabilities, LIBNDR_FLAG_REF_ALLOC);
 
13112
                NDR_CHECK(ndr_pull_set_switch_value(ndr, r->out.capabilities, r->in.query_level));
 
13113
                NDR_CHECK(ndr_pull_netr_Capabilities(ndr, NDR_SCALARS, r->out.capabilities));
 
13114
                NDR_PULL_SET_MEM_CTX(ndr, _mem_save_capabilities_0, LIBNDR_FLAG_REF_ALLOC);
 
13115
                NDR_CHECK(ndr_pull_NTSTATUS(ndr, NDR_SCALARS, &r->out.result));
 
13116
        }
 
13117
        return NDR_ERR_SUCCESS;
 
13118
}
 
13119
 
 
13120
_PUBLIC_ void ndr_print_netr_LogonGetCapabilities(struct ndr_print *ndr, const char *name, int flags, const struct netr_LogonGetCapabilities *r)
 
13121
{
 
13122
        ndr_print_struct(ndr, name, "netr_LogonGetCapabilities");
 
13123
        ndr->depth++;
 
13124
        if (flags & NDR_SET_VALUES) {
 
13125
                ndr->flags |= LIBNDR_PRINT_SET_VALUES;
 
13126
        }
 
13127
        if (flags & NDR_IN) {
 
13128
                ndr_print_struct(ndr, "in", "netr_LogonGetCapabilities");
 
13129
                ndr->depth++;
 
13130
                ndr_print_ptr(ndr, "server_name", r->in.server_name);
 
13131
                ndr->depth++;
 
13132
                ndr_print_string(ndr, "server_name", r->in.server_name);
 
13133
                ndr->depth--;
 
13134
                ndr_print_ptr(ndr, "computer_name", r->in.computer_name);
 
13135
                ndr->depth++;
 
13136
                if (r->in.computer_name) {
 
13137
                        ndr_print_string(ndr, "computer_name", r->in.computer_name);
 
13138
                }
 
13139
                ndr->depth--;
 
13140
                ndr_print_ptr(ndr, "credential", r->in.credential);
 
13141
                ndr->depth++;
 
13142
                ndr_print_netr_Authenticator(ndr, "credential", r->in.credential);
 
13143
                ndr->depth--;
 
13144
                ndr_print_ptr(ndr, "return_authenticator", r->in.return_authenticator);
 
13145
                ndr->depth++;
 
13146
                ndr_print_netr_Authenticator(ndr, "return_authenticator", r->in.return_authenticator);
 
13147
                ndr->depth--;
 
13148
                ndr_print_uint32(ndr, "query_level", r->in.query_level);
 
13149
                ndr->depth--;
 
13150
        }
 
13151
        if (flags & NDR_OUT) {
 
13152
                ndr_print_struct(ndr, "out", "netr_LogonGetCapabilities");
 
13153
                ndr->depth++;
 
13154
                ndr_print_ptr(ndr, "return_authenticator", r->out.return_authenticator);
 
13155
                ndr->depth++;
 
13156
                ndr_print_netr_Authenticator(ndr, "return_authenticator", r->out.return_authenticator);
 
13157
                ndr->depth--;
 
13158
                ndr_print_ptr(ndr, "capabilities", r->out.capabilities);
 
13159
                ndr->depth++;
 
13160
                ndr_print_set_switch_value(ndr, r->out.capabilities, r->in.query_level);
 
13161
                ndr_print_netr_Capabilities(ndr, "capabilities", r->out.capabilities);
 
13162
                ndr->depth--;
 
13163
                ndr_print_NTSTATUS(ndr, "result", r->out.result);
 
13164
                ndr->depth--;
 
13165
        }
 
13166
        ndr->depth--;
 
13167
}
 
13168
 
 
13169
static enum ndr_err_code ndr_push_netr_NETRLOGONSETSERVICEBITS(struct ndr_push *ndr, int flags, const struct netr_NETRLOGONSETSERVICEBITS *r)
 
13170
{
 
13171
        if (flags & NDR_IN) {
 
13172
        }
 
13173
        if (flags & NDR_OUT) {
 
13174
                NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result));
 
13175
        }
 
13176
        return NDR_ERR_SUCCESS;
 
13177
}
 
13178
 
 
13179
static enum ndr_err_code ndr_pull_netr_NETRLOGONSETSERVICEBITS(struct ndr_pull *ndr, int flags, struct netr_NETRLOGONSETSERVICEBITS *r)
 
13180
{
 
13181
        if (flags & NDR_IN) {
 
13182
        }
 
13183
        if (flags & NDR_OUT) {
 
13184
                NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result));
 
13185
        }
 
13186
        return NDR_ERR_SUCCESS;
 
13187
}
 
13188
 
 
13189
_PUBLIC_ void ndr_print_netr_NETRLOGONSETSERVICEBITS(struct ndr_print *ndr, const char *name, int flags, const struct netr_NETRLOGONSETSERVICEBITS *r)
 
13190
{
 
13191
        ndr_print_struct(ndr, name, "netr_NETRLOGONSETSERVICEBITS");
 
13192
        ndr->depth++;
 
13193
        if (flags & NDR_SET_VALUES) {
 
13194
                ndr->flags |= LIBNDR_PRINT_SET_VALUES;
 
13195
        }
 
13196
        if (flags & NDR_IN) {
 
13197
                ndr_print_struct(ndr, "in", "netr_NETRLOGONSETSERVICEBITS");
 
13198
                ndr->depth++;
 
13199
                ndr->depth--;
 
13200
        }
 
13201
        if (flags & NDR_OUT) {
 
13202
                ndr_print_struct(ndr, "out", "netr_NETRLOGONSETSERVICEBITS");
 
13203
                ndr->depth++;
 
13204
                ndr_print_WERROR(ndr, "result", r->out.result);
 
13205
                ndr->depth--;
 
13206
        }
 
13207
        ndr->depth--;
 
13208
}
 
13209
 
 
13210
static enum ndr_err_code ndr_push_netr_LogonGetTrustRid(struct ndr_push *ndr, int flags, const struct netr_LogonGetTrustRid *r)
 
13211
{
 
13212
        if (flags & NDR_IN) {
 
13213
                NDR_CHECK(ndr_push_unique_ptr(ndr, r->in.server_name));
 
13214
                if (r->in.server_name) {
 
13215
                        NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->in.server_name, CH_UTF16)));
 
13216
                        NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, 0));
 
13217
                        NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->in.server_name, CH_UTF16)));
 
13218
                        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));
 
13219
                }
 
13220
                NDR_CHECK(ndr_push_unique_ptr(ndr, r->in.domain_name));
 
13221
                if (r->in.domain_name) {
 
13222
                        NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->in.domain_name, CH_UTF16)));
 
13223
                        NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, 0));
 
13224
                        NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->in.domain_name, CH_UTF16)));
 
13225
                        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));
 
13226
                }
 
13227
        }
 
13228
        if (flags & NDR_OUT) {
 
13229
                if (r->out.rid == NULL) {
 
13230
                        return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
 
13231
                }
 
13232
                NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, *r->out.rid));
 
13233
                NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result));
 
13234
        }
 
13235
        return NDR_ERR_SUCCESS;
 
13236
}
 
13237
 
 
13238
static enum ndr_err_code ndr_pull_netr_LogonGetTrustRid(struct ndr_pull *ndr, int flags, struct netr_LogonGetTrustRid *r)
 
13239
{
 
13240
        uint32_t _ptr_server_name;
 
13241
        uint32_t _ptr_domain_name;
 
13242
        TALLOC_CTX *_mem_save_server_name_0;
 
13243
        TALLOC_CTX *_mem_save_domain_name_0;
 
13244
        TALLOC_CTX *_mem_save_rid_0;
 
13245
        if (flags & NDR_IN) {
 
13246
                ZERO_STRUCT(r->out);
 
13247
 
 
13248
                NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_server_name));
 
13249
                if (_ptr_server_name) {
 
13250
                        NDR_PULL_ALLOC(ndr, r->in.server_name);
 
13251
                } else {
 
13252
                        r->in.server_name = NULL;
 
13253
                }
 
13254
                if (r->in.server_name) {
 
13255
                        _mem_save_server_name_0 = NDR_PULL_GET_MEM_CTX(ndr);
 
13256
                        NDR_PULL_SET_MEM_CTX(ndr, r->in.server_name, 0);
 
13257
                        NDR_CHECK(ndr_pull_array_size(ndr, &r->in.server_name));
 
13258
                        NDR_CHECK(ndr_pull_array_length(ndr, &r->in.server_name));
 
13259
                        if (ndr_get_array_length(ndr, &r->in.server_name) > ndr_get_array_size(ndr, &r->in.server_name)) {
 
13260
                                return 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));
 
13261
                        }
 
13262
                        NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->in.server_name), sizeof(uint16_t)));
 
13263
                        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));
 
13264
                        NDR_PULL_SET_MEM_CTX(ndr, _mem_save_server_name_0, 0);
 
13265
                }
 
13266
                NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_domain_name));
 
13267
                if (_ptr_domain_name) {
 
13268
                        NDR_PULL_ALLOC(ndr, r->in.domain_name);
 
13269
                } else {
 
13270
                        r->in.domain_name = NULL;
 
13271
                }
 
13272
                if (r->in.domain_name) {
 
13273
                        _mem_save_domain_name_0 = NDR_PULL_GET_MEM_CTX(ndr);
 
13274
                        NDR_PULL_SET_MEM_CTX(ndr, r->in.domain_name, 0);
 
13275
                        NDR_CHECK(ndr_pull_array_size(ndr, &r->in.domain_name));
 
13276
                        NDR_CHECK(ndr_pull_array_length(ndr, &r->in.domain_name));
 
13277
                        if (ndr_get_array_length(ndr, &r->in.domain_name) > ndr_get_array_size(ndr, &r->in.domain_name)) {
 
13278
                                return 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));
 
13279
                        }
 
13280
                        NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->in.domain_name), sizeof(uint16_t)));
 
13281
                        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));
 
13282
                        NDR_PULL_SET_MEM_CTX(ndr, _mem_save_domain_name_0, 0);
 
13283
                }
 
13284
                NDR_PULL_ALLOC(ndr, r->out.rid);
 
13285
                ZERO_STRUCTP(r->out.rid);
 
13286
        }
 
13287
        if (flags & NDR_OUT) {
 
13288
                if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
 
13289
                        NDR_PULL_ALLOC(ndr, r->out.rid);
 
13290
                }
 
13291
                _mem_save_rid_0 = NDR_PULL_GET_MEM_CTX(ndr);
 
13292
                NDR_PULL_SET_MEM_CTX(ndr, r->out.rid, LIBNDR_FLAG_REF_ALLOC);
 
13293
                NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, r->out.rid));
 
13294
                NDR_PULL_SET_MEM_CTX(ndr, _mem_save_rid_0, LIBNDR_FLAG_REF_ALLOC);
 
13295
                NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result));
 
13296
        }
 
13297
        return NDR_ERR_SUCCESS;
 
13298
}
 
13299
 
 
13300
_PUBLIC_ void ndr_print_netr_LogonGetTrustRid(struct ndr_print *ndr, const char *name, int flags, const struct netr_LogonGetTrustRid *r)
 
13301
{
 
13302
        ndr_print_struct(ndr, name, "netr_LogonGetTrustRid");
 
13303
        ndr->depth++;
 
13304
        if (flags & NDR_SET_VALUES) {
 
13305
                ndr->flags |= LIBNDR_PRINT_SET_VALUES;
 
13306
        }
 
13307
        if (flags & NDR_IN) {
 
13308
                ndr_print_struct(ndr, "in", "netr_LogonGetTrustRid");
 
13309
                ndr->depth++;
 
13310
                ndr_print_ptr(ndr, "server_name", r->in.server_name);
 
13311
                ndr->depth++;
 
13312
                if (r->in.server_name) {
 
13313
                        ndr_print_string(ndr, "server_name", r->in.server_name);
 
13314
                }
 
13315
                ndr->depth--;
 
13316
                ndr_print_ptr(ndr, "domain_name", r->in.domain_name);
 
13317
                ndr->depth++;
 
13318
                if (r->in.domain_name) {
 
13319
                        ndr_print_string(ndr, "domain_name", r->in.domain_name);
 
13320
                }
 
13321
                ndr->depth--;
 
13322
                ndr->depth--;
 
13323
        }
 
13324
        if (flags & NDR_OUT) {
 
13325
                ndr_print_struct(ndr, "out", "netr_LogonGetTrustRid");
 
13326
                ndr->depth++;
 
13327
                ndr_print_ptr(ndr, "rid", r->out.rid);
 
13328
                ndr->depth++;
 
13329
                ndr_print_uint32(ndr, "rid", *r->out.rid);
 
13330
                ndr->depth--;
 
13331
                ndr_print_WERROR(ndr, "result", r->out.result);
 
13332
                ndr->depth--;
 
13333
        }
 
13334
        ndr->depth--;
 
13335
}
 
13336
 
 
13337
static enum ndr_err_code ndr_push_netr_NETRLOGONCOMPUTESERVERDIGEST(struct ndr_push *ndr, int flags, const struct netr_NETRLOGONCOMPUTESERVERDIGEST *r)
 
13338
{
 
13339
        if (flags & NDR_IN) {
 
13340
        }
 
13341
        if (flags & NDR_OUT) {
 
13342
                NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result));
 
13343
        }
 
13344
        return NDR_ERR_SUCCESS;
 
13345
}
 
13346
 
 
13347
static enum ndr_err_code ndr_pull_netr_NETRLOGONCOMPUTESERVERDIGEST(struct ndr_pull *ndr, int flags, struct netr_NETRLOGONCOMPUTESERVERDIGEST *r)
 
13348
{
 
13349
        if (flags & NDR_IN) {
 
13350
        }
 
13351
        if (flags & NDR_OUT) {
 
13352
                NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result));
 
13353
        }
 
13354
        return NDR_ERR_SUCCESS;
 
13355
}
 
13356
 
 
13357
_PUBLIC_ void ndr_print_netr_NETRLOGONCOMPUTESERVERDIGEST(struct ndr_print *ndr, const char *name, int flags, const struct netr_NETRLOGONCOMPUTESERVERDIGEST *r)
 
13358
{
 
13359
        ndr_print_struct(ndr, name, "netr_NETRLOGONCOMPUTESERVERDIGEST");
 
13360
        ndr->depth++;
 
13361
        if (flags & NDR_SET_VALUES) {
 
13362
                ndr->flags |= LIBNDR_PRINT_SET_VALUES;
 
13363
        }
 
13364
        if (flags & NDR_IN) {
 
13365
                ndr_print_struct(ndr, "in", "netr_NETRLOGONCOMPUTESERVERDIGEST");
 
13366
                ndr->depth++;
 
13367
                ndr->depth--;
 
13368
        }
 
13369
        if (flags & NDR_OUT) {
 
13370
                ndr_print_struct(ndr, "out", "netr_NETRLOGONCOMPUTESERVERDIGEST");
 
13371
                ndr->depth++;
 
13372
                ndr_print_WERROR(ndr, "result", r->out.result);
 
13373
                ndr->depth--;
 
13374
        }
 
13375
        ndr->depth--;
 
13376
}
 
13377
 
 
13378
static enum ndr_err_code ndr_push_netr_NETRLOGONCOMPUTECLIENTDIGEST(struct ndr_push *ndr, int flags, const struct netr_NETRLOGONCOMPUTECLIENTDIGEST *r)
 
13379
{
 
13380
        if (flags & NDR_IN) {
 
13381
        }
 
13382
        if (flags & NDR_OUT) {
 
13383
                NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result));
 
13384
        }
 
13385
        return NDR_ERR_SUCCESS;
 
13386
}
 
13387
 
 
13388
static enum ndr_err_code ndr_pull_netr_NETRLOGONCOMPUTECLIENTDIGEST(struct ndr_pull *ndr, int flags, struct netr_NETRLOGONCOMPUTECLIENTDIGEST *r)
 
13389
{
 
13390
        if (flags & NDR_IN) {
 
13391
        }
 
13392
        if (flags & NDR_OUT) {
 
13393
                NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result));
 
13394
        }
 
13395
        return NDR_ERR_SUCCESS;
 
13396
}
 
13397
 
 
13398
_PUBLIC_ void ndr_print_netr_NETRLOGONCOMPUTECLIENTDIGEST(struct ndr_print *ndr, const char *name, int flags, const struct netr_NETRLOGONCOMPUTECLIENTDIGEST *r)
 
13399
{
 
13400
        ndr_print_struct(ndr, name, "netr_NETRLOGONCOMPUTECLIENTDIGEST");
 
13401
        ndr->depth++;
 
13402
        if (flags & NDR_SET_VALUES) {
 
13403
                ndr->flags |= LIBNDR_PRINT_SET_VALUES;
 
13404
        }
 
13405
        if (flags & NDR_IN) {
 
13406
                ndr_print_struct(ndr, "in", "netr_NETRLOGONCOMPUTECLIENTDIGEST");
 
13407
                ndr->depth++;
 
13408
                ndr->depth--;
 
13409
        }
 
13410
        if (flags & NDR_OUT) {
 
13411
                ndr_print_struct(ndr, "out", "netr_NETRLOGONCOMPUTECLIENTDIGEST");
 
13412
                ndr->depth++;
 
13413
                ndr_print_WERROR(ndr, "result", r->out.result);
 
13414
                ndr->depth--;
 
13415
        }
 
13416
        ndr->depth--;
 
13417
}
 
13418
 
 
13419
_PUBLIC_ enum ndr_err_code ndr_push_netr_ServerAuthenticate3(struct ndr_push *ndr, int flags, const struct netr_ServerAuthenticate3 *r)
 
13420
{
 
13421
        if (flags & NDR_IN) {
 
13422
                NDR_CHECK(ndr_push_unique_ptr(ndr, r->in.server_name));
 
13423
                if (r->in.server_name) {
 
13424
                        NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->in.server_name, CH_UTF16)));
 
13425
                        NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, 0));
 
13426
                        NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->in.server_name, CH_UTF16)));
 
13427
                        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));
 
13428
                }
 
13429
                if (r->in.account_name == NULL) {
 
13430
                        return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
 
13431
                }
 
13432
                NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->in.account_name, CH_UTF16)));
 
13433
                NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, 0));
 
13434
                NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->in.account_name, CH_UTF16)));
 
13435
                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));
 
13436
                NDR_CHECK(ndr_push_netr_SchannelType(ndr, NDR_SCALARS, r->in.secure_channel_type));
 
13437
                if (r->in.computer_name == NULL) {
 
13438
                        return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
 
13439
                }
 
13440
                NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->in.computer_name, CH_UTF16)));
 
13441
                NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, 0));
 
13442
                NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->in.computer_name, CH_UTF16)));
 
13443
                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));
 
13444
                if (r->in.credentials == NULL) {
 
13445
                        return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
 
13446
                }
 
13447
                NDR_CHECK(ndr_push_netr_Credential(ndr, NDR_SCALARS, r->in.credentials));
 
13448
                if (r->in.negotiate_flags == NULL) {
 
13449
                        return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
 
13450
                }
 
13451
                NDR_CHECK(ndr_push_netr_NegotiateFlags(ndr, NDR_SCALARS, *r->in.negotiate_flags));
 
13452
        }
 
13453
        if (flags & NDR_OUT) {
 
13454
                if (r->out.return_credentials == NULL) {
 
13455
                        return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
 
13456
                }
 
13457
                NDR_CHECK(ndr_push_netr_Credential(ndr, NDR_SCALARS, r->out.return_credentials));
 
13458
                if (r->out.negotiate_flags == NULL) {
 
13459
                        return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
 
13460
                }
 
13461
                NDR_CHECK(ndr_push_netr_NegotiateFlags(ndr, NDR_SCALARS, *r->out.negotiate_flags));
 
13462
                if (r->out.rid == NULL) {
 
13463
                        return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
 
13464
                }
 
13465
                NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, *r->out.rid));
 
13466
                NDR_CHECK(ndr_push_NTSTATUS(ndr, NDR_SCALARS, r->out.result));
 
13467
        }
 
13468
        return NDR_ERR_SUCCESS;
 
13469
}
 
13470
 
 
13471
_PUBLIC_ enum ndr_err_code ndr_pull_netr_ServerAuthenticate3(struct ndr_pull *ndr, int flags, struct netr_ServerAuthenticate3 *r)
 
13472
{
 
13473
        uint32_t _ptr_server_name;
 
13474
        TALLOC_CTX *_mem_save_server_name_0;
 
13475
        TALLOC_CTX *_mem_save_credentials_0;
 
13476
        TALLOC_CTX *_mem_save_return_credentials_0;
 
13477
        TALLOC_CTX *_mem_save_negotiate_flags_0;
 
13478
        TALLOC_CTX *_mem_save_rid_0;
 
13479
        if (flags & NDR_IN) {
 
13480
                ZERO_STRUCT(r->out);
 
13481
 
 
13482
                NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_server_name));
 
13483
                if (_ptr_server_name) {
 
13484
                        NDR_PULL_ALLOC(ndr, r->in.server_name);
 
13485
                } else {
 
13486
                        r->in.server_name = NULL;
 
13487
                }
 
13488
                if (r->in.server_name) {
 
13489
                        _mem_save_server_name_0 = NDR_PULL_GET_MEM_CTX(ndr);
 
13490
                        NDR_PULL_SET_MEM_CTX(ndr, r->in.server_name, 0);
 
13491
                        NDR_CHECK(ndr_pull_array_size(ndr, &r->in.server_name));
 
13492
                        NDR_CHECK(ndr_pull_array_length(ndr, &r->in.server_name));
 
13493
                        if (ndr_get_array_length(ndr, &r->in.server_name) > ndr_get_array_size(ndr, &r->in.server_name)) {
 
13494
                                return 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));
 
13495
                        }
 
13496
                        NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->in.server_name), sizeof(uint16_t)));
 
13497
                        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));
 
13498
                        NDR_PULL_SET_MEM_CTX(ndr, _mem_save_server_name_0, 0);
 
13499
                }
 
13500
                NDR_CHECK(ndr_pull_array_size(ndr, &r->in.account_name));
 
13501
                NDR_CHECK(ndr_pull_array_length(ndr, &r->in.account_name));
 
13502
                if (ndr_get_array_length(ndr, &r->in.account_name) > ndr_get_array_size(ndr, &r->in.account_name)) {
 
13503
                        return 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));
 
13504
                }
 
13505
                NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->in.account_name), sizeof(uint16_t)));
 
13506
                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));
 
13507
                NDR_CHECK(ndr_pull_netr_SchannelType(ndr, NDR_SCALARS, &r->in.secure_channel_type));
 
13508
                NDR_CHECK(ndr_pull_array_size(ndr, &r->in.computer_name));
 
13509
                NDR_CHECK(ndr_pull_array_length(ndr, &r->in.computer_name));
 
13510
                if (ndr_get_array_length(ndr, &r->in.computer_name) > ndr_get_array_size(ndr, &r->in.computer_name)) {
 
13511
                        return 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));
 
13512
                }
 
13513
                NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->in.computer_name), sizeof(uint16_t)));
 
13514
                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));
 
13515
                if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
 
13516
                        NDR_PULL_ALLOC(ndr, r->in.credentials);
 
13517
                }
 
13518
                _mem_save_credentials_0 = NDR_PULL_GET_MEM_CTX(ndr);
 
13519
                NDR_PULL_SET_MEM_CTX(ndr, r->in.credentials, LIBNDR_FLAG_REF_ALLOC);
 
13520
                NDR_CHECK(ndr_pull_netr_Credential(ndr, NDR_SCALARS, r->in.credentials));
 
13521
                NDR_PULL_SET_MEM_CTX(ndr, _mem_save_credentials_0, LIBNDR_FLAG_REF_ALLOC);
 
13522
                if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
 
13523
                        NDR_PULL_ALLOC(ndr, r->in.negotiate_flags);
 
13524
                }
 
13525
                _mem_save_negotiate_flags_0 = NDR_PULL_GET_MEM_CTX(ndr);
 
13526
                NDR_PULL_SET_MEM_CTX(ndr, r->in.negotiate_flags, LIBNDR_FLAG_REF_ALLOC);
 
13527
                NDR_CHECK(ndr_pull_netr_NegotiateFlags(ndr, NDR_SCALARS, r->in.negotiate_flags));
 
13528
                NDR_PULL_SET_MEM_CTX(ndr, _mem_save_negotiate_flags_0, LIBNDR_FLAG_REF_ALLOC);
 
13529
                NDR_PULL_ALLOC(ndr, r->out.return_credentials);
 
13530
                ZERO_STRUCTP(r->out.return_credentials);
 
13531
                NDR_PULL_ALLOC(ndr, r->out.negotiate_flags);
 
13532
                *r->out.negotiate_flags = *r->in.negotiate_flags;
 
13533
                NDR_PULL_ALLOC(ndr, r->out.rid);
 
13534
                ZERO_STRUCTP(r->out.rid);
 
13535
        }
 
13536
        if (flags & NDR_OUT) {
 
13537
                if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
 
13538
                        NDR_PULL_ALLOC(ndr, r->out.return_credentials);
 
13539
                }
 
13540
                _mem_save_return_credentials_0 = NDR_PULL_GET_MEM_CTX(ndr);
 
13541
                NDR_PULL_SET_MEM_CTX(ndr, r->out.return_credentials, LIBNDR_FLAG_REF_ALLOC);
 
13542
                NDR_CHECK(ndr_pull_netr_Credential(ndr, NDR_SCALARS, r->out.return_credentials));
 
13543
                NDR_PULL_SET_MEM_CTX(ndr, _mem_save_return_credentials_0, LIBNDR_FLAG_REF_ALLOC);
 
13544
                if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
 
13545
                        NDR_PULL_ALLOC(ndr, r->out.negotiate_flags);
 
13546
                }
 
13547
                _mem_save_negotiate_flags_0 = NDR_PULL_GET_MEM_CTX(ndr);
 
13548
                NDR_PULL_SET_MEM_CTX(ndr, r->out.negotiate_flags, LIBNDR_FLAG_REF_ALLOC);
 
13549
                NDR_CHECK(ndr_pull_netr_NegotiateFlags(ndr, NDR_SCALARS, r->out.negotiate_flags));
 
13550
                NDR_PULL_SET_MEM_CTX(ndr, _mem_save_negotiate_flags_0, LIBNDR_FLAG_REF_ALLOC);
 
13551
                if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
 
13552
                        NDR_PULL_ALLOC(ndr, r->out.rid);
 
13553
                }
 
13554
                _mem_save_rid_0 = NDR_PULL_GET_MEM_CTX(ndr);
 
13555
                NDR_PULL_SET_MEM_CTX(ndr, r->out.rid, LIBNDR_FLAG_REF_ALLOC);
 
13556
                NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, r->out.rid));
 
13557
                NDR_PULL_SET_MEM_CTX(ndr, _mem_save_rid_0, LIBNDR_FLAG_REF_ALLOC);
 
13558
                NDR_CHECK(ndr_pull_NTSTATUS(ndr, NDR_SCALARS, &r->out.result));
 
13559
        }
 
13560
        return NDR_ERR_SUCCESS;
 
13561
}
 
13562
 
 
13563
_PUBLIC_ void ndr_print_netr_ServerAuthenticate3(struct ndr_print *ndr, const char *name, int flags, const struct netr_ServerAuthenticate3 *r)
 
13564
{
 
13565
        ndr_print_struct(ndr, name, "netr_ServerAuthenticate3");
 
13566
        ndr->depth++;
 
13567
        if (flags & NDR_SET_VALUES) {
 
13568
                ndr->flags |= LIBNDR_PRINT_SET_VALUES;
 
13569
        }
 
13570
        if (flags & NDR_IN) {
 
13571
                ndr_print_struct(ndr, "in", "netr_ServerAuthenticate3");
 
13572
                ndr->depth++;
 
13573
                ndr_print_ptr(ndr, "server_name", r->in.server_name);
 
13574
                ndr->depth++;
 
13575
                if (r->in.server_name) {
 
13576
                        ndr_print_string(ndr, "server_name", r->in.server_name);
 
13577
                }
 
13578
                ndr->depth--;
 
13579
                ndr_print_ptr(ndr, "account_name", r->in.account_name);
 
13580
                ndr->depth++;
 
13581
                ndr_print_string(ndr, "account_name", r->in.account_name);
 
13582
                ndr->depth--;
 
13583
                ndr_print_netr_SchannelType(ndr, "secure_channel_type", r->in.secure_channel_type);
 
13584
                ndr_print_ptr(ndr, "computer_name", r->in.computer_name);
 
13585
                ndr->depth++;
 
13586
                ndr_print_string(ndr, "computer_name", r->in.computer_name);
 
13587
                ndr->depth--;
 
13588
                ndr_print_ptr(ndr, "credentials", r->in.credentials);
 
13589
                ndr->depth++;
 
13590
                ndr_print_netr_Credential(ndr, "credentials", r->in.credentials);
 
13591
                ndr->depth--;
 
13592
                ndr_print_ptr(ndr, "negotiate_flags", r->in.negotiate_flags);
 
13593
                ndr->depth++;
 
13594
                ndr_print_netr_NegotiateFlags(ndr, "negotiate_flags", *r->in.negotiate_flags);
 
13595
                ndr->depth--;
 
13596
                ndr->depth--;
 
13597
        }
 
13598
        if (flags & NDR_OUT) {
 
13599
                ndr_print_struct(ndr, "out", "netr_ServerAuthenticate3");
 
13600
                ndr->depth++;
 
13601
                ndr_print_ptr(ndr, "return_credentials", r->out.return_credentials);
 
13602
                ndr->depth++;
 
13603
                ndr_print_netr_Credential(ndr, "return_credentials", r->out.return_credentials);
 
13604
                ndr->depth--;
 
13605
                ndr_print_ptr(ndr, "negotiate_flags", r->out.negotiate_flags);
 
13606
                ndr->depth++;
 
13607
                ndr_print_netr_NegotiateFlags(ndr, "negotiate_flags", *r->out.negotiate_flags);
 
13608
                ndr->depth--;
 
13609
                ndr_print_ptr(ndr, "rid", r->out.rid);
 
13610
                ndr->depth++;
 
13611
                ndr_print_uint32(ndr, "rid", *r->out.rid);
 
13612
                ndr->depth--;
 
13613
                ndr_print_NTSTATUS(ndr, "result", r->out.result);
 
13614
                ndr->depth--;
 
13615
        }
 
13616
        ndr->depth--;
 
13617
}
 
13618
 
 
13619
static enum ndr_err_code ndr_push_netr_DsRGetDCNameEx(struct ndr_push *ndr, int flags, const struct netr_DsRGetDCNameEx *r)
 
13620
{
 
13621
        if (flags & NDR_IN) {
 
13622
                NDR_CHECK(ndr_push_unique_ptr(ndr, r->in.server_unc));
 
13623
                if (r->in.server_unc) {
 
13624
                        NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->in.server_unc, CH_UTF16)));
 
13625
                        NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, 0));
 
13626
                        NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->in.server_unc, CH_UTF16)));
 
13627
                        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));
 
13628
                }
 
13629
                NDR_CHECK(ndr_push_unique_ptr(ndr, r->in.domain_name));
 
13630
                if (r->in.domain_name) {
 
13631
                        NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->in.domain_name, CH_UTF16)));
 
13632
                        NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, 0));
 
13633
                        NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->in.domain_name, CH_UTF16)));
 
13634
                        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));
 
13635
                }
 
13636
                NDR_CHECK(ndr_push_unique_ptr(ndr, r->in.domain_guid));
 
13637
                if (r->in.domain_guid) {
 
13638
                        NDR_CHECK(ndr_push_GUID(ndr, NDR_SCALARS, r->in.domain_guid));
 
13639
                }
 
13640
                NDR_CHECK(ndr_push_unique_ptr(ndr, r->in.site_name));
 
13641
                if (r->in.site_name) {
 
13642
                        NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->in.site_name, CH_UTF16)));
 
13643
                        NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, 0));
 
13644
                        NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->in.site_name, CH_UTF16)));
 
13645
                        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));
 
13646
                }
 
13647
                NDR_CHECK(ndr_push_netr_DsRGetDCName_flags(ndr, NDR_SCALARS, r->in.flags));
 
13648
        }
 
13649
        if (flags & NDR_OUT) {
 
13650
                if (r->out.info == NULL) {
 
13651
                        return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
 
13652
                }
 
13653
                NDR_CHECK(ndr_push_unique_ptr(ndr, *r->out.info));
 
13654
                if (*r->out.info) {
 
13655
                        NDR_CHECK(ndr_push_netr_DsRGetDCNameInfo(ndr, NDR_SCALARS|NDR_BUFFERS, *r->out.info));
 
13656
                }
 
13657
                NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result));
 
13658
        }
 
13659
        return NDR_ERR_SUCCESS;
 
13660
}
 
13661
 
 
13662
static enum ndr_err_code ndr_pull_netr_DsRGetDCNameEx(struct ndr_pull *ndr, int flags, struct netr_DsRGetDCNameEx *r)
 
13663
{
 
13664
        uint32_t _ptr_server_unc;
 
13665
        uint32_t _ptr_domain_name;
 
13666
        uint32_t _ptr_domain_guid;
 
13667
        uint32_t _ptr_site_name;
 
13668
        uint32_t _ptr_info;
 
13669
        TALLOC_CTX *_mem_save_server_unc_0;
 
13670
        TALLOC_CTX *_mem_save_domain_name_0;
 
13671
        TALLOC_CTX *_mem_save_domain_guid_0;
 
13672
        TALLOC_CTX *_mem_save_site_name_0;
 
13673
        TALLOC_CTX *_mem_save_info_0;
 
13674
        TALLOC_CTX *_mem_save_info_1;
 
13675
        if (flags & NDR_IN) {
 
13676
                ZERO_STRUCT(r->out);
 
13677
 
 
13678
                NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_server_unc));
 
13679
                if (_ptr_server_unc) {
 
13680
                        NDR_PULL_ALLOC(ndr, r->in.server_unc);
 
13681
                } else {
 
13682
                        r->in.server_unc = NULL;
 
13683
                }
 
13684
                if (r->in.server_unc) {
 
13685
                        _mem_save_server_unc_0 = NDR_PULL_GET_MEM_CTX(ndr);
 
13686
                        NDR_PULL_SET_MEM_CTX(ndr, r->in.server_unc, 0);
 
13687
                        NDR_CHECK(ndr_pull_array_size(ndr, &r->in.server_unc));
 
13688
                        NDR_CHECK(ndr_pull_array_length(ndr, &r->in.server_unc));
 
13689
                        if (ndr_get_array_length(ndr, &r->in.server_unc) > ndr_get_array_size(ndr, &r->in.server_unc)) {
 
13690
                                return 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));
 
13691
                        }
 
13692
                        NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->in.server_unc), sizeof(uint16_t)));
 
13693
                        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));
 
13694
                        NDR_PULL_SET_MEM_CTX(ndr, _mem_save_server_unc_0, 0);
 
13695
                }
 
13696
                NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_domain_name));
 
13697
                if (_ptr_domain_name) {
 
13698
                        NDR_PULL_ALLOC(ndr, r->in.domain_name);
 
13699
                } else {
 
13700
                        r->in.domain_name = NULL;
 
13701
                }
 
13702
                if (r->in.domain_name) {
 
13703
                        _mem_save_domain_name_0 = NDR_PULL_GET_MEM_CTX(ndr);
 
13704
                        NDR_PULL_SET_MEM_CTX(ndr, r->in.domain_name, 0);
 
13705
                        NDR_CHECK(ndr_pull_array_size(ndr, &r->in.domain_name));
 
13706
                        NDR_CHECK(ndr_pull_array_length(ndr, &r->in.domain_name));
 
13707
                        if (ndr_get_array_length(ndr, &r->in.domain_name) > ndr_get_array_size(ndr, &r->in.domain_name)) {
 
13708
                                return 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));
 
13709
                        }
 
13710
                        NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->in.domain_name), sizeof(uint16_t)));
 
13711
                        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));
 
13712
                        NDR_PULL_SET_MEM_CTX(ndr, _mem_save_domain_name_0, 0);
 
13713
                }
 
13714
                NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_domain_guid));
 
13715
                if (_ptr_domain_guid) {
 
13716
                        NDR_PULL_ALLOC(ndr, r->in.domain_guid);
 
13717
                } else {
 
13718
                        r->in.domain_guid = NULL;
 
13719
                }
 
13720
                if (r->in.domain_guid) {
 
13721
                        _mem_save_domain_guid_0 = NDR_PULL_GET_MEM_CTX(ndr);
 
13722
                        NDR_PULL_SET_MEM_CTX(ndr, r->in.domain_guid, 0);
 
13723
                        NDR_CHECK(ndr_pull_GUID(ndr, NDR_SCALARS, r->in.domain_guid));
 
13724
                        NDR_PULL_SET_MEM_CTX(ndr, _mem_save_domain_guid_0, 0);
 
13725
                }
 
13726
                NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_site_name));
 
13727
                if (_ptr_site_name) {
 
13728
                        NDR_PULL_ALLOC(ndr, r->in.site_name);
 
13729
                } else {
 
13730
                        r->in.site_name = NULL;
 
13731
                }
 
13732
                if (r->in.site_name) {
 
13733
                        _mem_save_site_name_0 = NDR_PULL_GET_MEM_CTX(ndr);
 
13734
                        NDR_PULL_SET_MEM_CTX(ndr, r->in.site_name, 0);
 
13735
                        NDR_CHECK(ndr_pull_array_size(ndr, &r->in.site_name));
 
13736
                        NDR_CHECK(ndr_pull_array_length(ndr, &r->in.site_name));
 
13737
                        if (ndr_get_array_length(ndr, &r->in.site_name) > ndr_get_array_size(ndr, &r->in.site_name)) {
 
13738
                                return 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));
 
13739
                        }
 
13740
                        NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->in.site_name), sizeof(uint16_t)));
 
13741
                        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));
 
13742
                        NDR_PULL_SET_MEM_CTX(ndr, _mem_save_site_name_0, 0);
 
13743
                }
 
13744
                NDR_CHECK(ndr_pull_netr_DsRGetDCName_flags(ndr, NDR_SCALARS, &r->in.flags));
 
13745
                NDR_PULL_ALLOC(ndr, r->out.info);
 
13746
                ZERO_STRUCTP(r->out.info);
 
13747
        }
 
13748
        if (flags & NDR_OUT) {
 
13749
                if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
 
13750
                        NDR_PULL_ALLOC(ndr, r->out.info);
 
13751
                }
 
13752
                _mem_save_info_0 = NDR_PULL_GET_MEM_CTX(ndr);
 
13753
                NDR_PULL_SET_MEM_CTX(ndr, r->out.info, LIBNDR_FLAG_REF_ALLOC);
 
13754
                NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_info));
 
13755
                if (_ptr_info) {
 
13756
                        NDR_PULL_ALLOC(ndr, *r->out.info);
 
13757
                } else {
 
13758
                        *r->out.info = NULL;
 
13759
                }
 
13760
                if (*r->out.info) {
 
13761
                        _mem_save_info_1 = NDR_PULL_GET_MEM_CTX(ndr);
 
13762
                        NDR_PULL_SET_MEM_CTX(ndr, *r->out.info, 0);
 
13763
                        NDR_CHECK(ndr_pull_netr_DsRGetDCNameInfo(ndr, NDR_SCALARS|NDR_BUFFERS, *r->out.info));
 
13764
                        NDR_PULL_SET_MEM_CTX(ndr, _mem_save_info_1, 0);
 
13765
                }
 
13766
                NDR_PULL_SET_MEM_CTX(ndr, _mem_save_info_0, LIBNDR_FLAG_REF_ALLOC);
 
13767
                NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result));
 
13768
        }
 
13769
        return NDR_ERR_SUCCESS;
 
13770
}
 
13771
 
 
13772
_PUBLIC_ void ndr_print_netr_DsRGetDCNameEx(struct ndr_print *ndr, const char *name, int flags, const struct netr_DsRGetDCNameEx *r)
 
13773
{
 
13774
        ndr_print_struct(ndr, name, "netr_DsRGetDCNameEx");
 
13775
        ndr->depth++;
 
13776
        if (flags & NDR_SET_VALUES) {
 
13777
                ndr->flags |= LIBNDR_PRINT_SET_VALUES;
 
13778
        }
 
13779
        if (flags & NDR_IN) {
 
13780
                ndr_print_struct(ndr, "in", "netr_DsRGetDCNameEx");
 
13781
                ndr->depth++;
 
13782
                ndr_print_ptr(ndr, "server_unc", r->in.server_unc);
 
13783
                ndr->depth++;
 
13784
                if (r->in.server_unc) {
 
13785
                        ndr_print_string(ndr, "server_unc", r->in.server_unc);
 
13786
                }
 
13787
                ndr->depth--;
 
13788
                ndr_print_ptr(ndr, "domain_name", r->in.domain_name);
 
13789
                ndr->depth++;
 
13790
                if (r->in.domain_name) {
 
13791
                        ndr_print_string(ndr, "domain_name", r->in.domain_name);
 
13792
                }
 
13793
                ndr->depth--;
 
13794
                ndr_print_ptr(ndr, "domain_guid", r->in.domain_guid);
 
13795
                ndr->depth++;
 
13796
                if (r->in.domain_guid) {
 
13797
                        ndr_print_GUID(ndr, "domain_guid", r->in.domain_guid);
 
13798
                }
 
13799
                ndr->depth--;
 
13800
                ndr_print_ptr(ndr, "site_name", r->in.site_name);
 
13801
                ndr->depth++;
 
13802
                if (r->in.site_name) {
 
13803
                        ndr_print_string(ndr, "site_name", r->in.site_name);
 
13804
                }
 
13805
                ndr->depth--;
 
13806
                ndr_print_netr_DsRGetDCName_flags(ndr, "flags", r->in.flags);
 
13807
                ndr->depth--;
 
13808
        }
 
13809
        if (flags & NDR_OUT) {
 
13810
                ndr_print_struct(ndr, "out", "netr_DsRGetDCNameEx");
 
13811
                ndr->depth++;
 
13812
                ndr_print_ptr(ndr, "info", r->out.info);
 
13813
                ndr->depth++;
 
13814
                ndr_print_ptr(ndr, "info", *r->out.info);
 
13815
                ndr->depth++;
 
13816
                if (*r->out.info) {
 
13817
                        ndr_print_netr_DsRGetDCNameInfo(ndr, "info", *r->out.info);
 
13818
                }
 
13819
                ndr->depth--;
 
13820
                ndr->depth--;
 
13821
                ndr_print_WERROR(ndr, "result", r->out.result);
 
13822
                ndr->depth--;
 
13823
        }
 
13824
        ndr->depth--;
 
13825
}
 
13826
 
 
13827
static enum ndr_err_code ndr_push_netr_DsRGetSiteName(struct ndr_push *ndr, int flags, const struct netr_DsRGetSiteName *r)
 
13828
{
 
13829
        if (flags & NDR_IN) {
 
13830
                NDR_CHECK(ndr_push_unique_ptr(ndr, r->in.computer_name));
 
13831
                if (r->in.computer_name) {
 
13832
                        NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->in.computer_name, CH_UTF16)));
 
13833
                        NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, 0));
 
13834
                        NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->in.computer_name, CH_UTF16)));
 
13835
                        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));
 
13836
                }
 
13837
        }
 
13838
        if (flags & NDR_OUT) {
 
13839
                if (r->out.site == NULL) {
 
13840
                        return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
 
13841
                }
 
13842
                NDR_CHECK(ndr_push_unique_ptr(ndr, *r->out.site));
 
13843
                if (*r->out.site) {
 
13844
                        NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(*r->out.site, CH_UTF16)));
 
13845
                        NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, 0));
 
13846
                        NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(*r->out.site, CH_UTF16)));
 
13847
                        NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, *r->out.site, ndr_charset_length(*r->out.site, CH_UTF16), sizeof(uint16_t), CH_UTF16));
 
13848
                }
 
13849
                NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result));
 
13850
        }
 
13851
        return NDR_ERR_SUCCESS;
 
13852
}
 
13853
 
 
13854
static enum ndr_err_code ndr_pull_netr_DsRGetSiteName(struct ndr_pull *ndr, int flags, struct netr_DsRGetSiteName *r)
 
13855
{
 
13856
        uint32_t _ptr_computer_name;
 
13857
        uint32_t _ptr_site;
 
13858
        TALLOC_CTX *_mem_save_computer_name_0;
 
13859
        TALLOC_CTX *_mem_save_site_0;
 
13860
        TALLOC_CTX *_mem_save_site_1;
 
13861
        if (flags & NDR_IN) {
 
13862
                ZERO_STRUCT(r->out);
 
13863
 
 
13864
                NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_computer_name));
 
13865
                if (_ptr_computer_name) {
 
13866
                        NDR_PULL_ALLOC(ndr, r->in.computer_name);
 
13867
                } else {
 
13868
                        r->in.computer_name = NULL;
 
13869
                }
 
13870
                if (r->in.computer_name) {
 
13871
                        _mem_save_computer_name_0 = NDR_PULL_GET_MEM_CTX(ndr);
 
13872
                        NDR_PULL_SET_MEM_CTX(ndr, r->in.computer_name, 0);
 
13873
                        NDR_CHECK(ndr_pull_array_size(ndr, &r->in.computer_name));
 
13874
                        NDR_CHECK(ndr_pull_array_length(ndr, &r->in.computer_name));
 
13875
                        if (ndr_get_array_length(ndr, &r->in.computer_name) > ndr_get_array_size(ndr, &r->in.computer_name)) {
 
13876
                                return 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));
 
13877
                        }
 
13878
                        NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->in.computer_name), sizeof(uint16_t)));
 
13879
                        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));
 
13880
                        NDR_PULL_SET_MEM_CTX(ndr, _mem_save_computer_name_0, 0);
 
13881
                }
 
13882
                NDR_PULL_ALLOC(ndr, r->out.site);
 
13883
                ZERO_STRUCTP(r->out.site);
 
13884
        }
 
13885
        if (flags & NDR_OUT) {
 
13886
                if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
 
13887
                        NDR_PULL_ALLOC(ndr, r->out.site);
 
13888
                }
 
13889
                _mem_save_site_0 = NDR_PULL_GET_MEM_CTX(ndr);
 
13890
                NDR_PULL_SET_MEM_CTX(ndr, r->out.site, LIBNDR_FLAG_REF_ALLOC);
 
13891
                NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_site));
 
13892
                if (_ptr_site) {
 
13893
                        NDR_PULL_ALLOC(ndr, *r->out.site);
 
13894
                } else {
 
13895
                        *r->out.site = NULL;
 
13896
                }
 
13897
                if (*r->out.site) {
 
13898
                        _mem_save_site_1 = NDR_PULL_GET_MEM_CTX(ndr);
 
13899
                        NDR_PULL_SET_MEM_CTX(ndr, *r->out.site, 0);
 
13900
                        NDR_CHECK(ndr_pull_array_size(ndr, r->out.site));
 
13901
                        NDR_CHECK(ndr_pull_array_length(ndr, r->out.site));
 
13902
                        if (ndr_get_array_length(ndr, r->out.site) > ndr_get_array_size(ndr, r->out.site)) {
 
13903
                                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));
 
13904
                        }
 
13905
                        NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, r->out.site), sizeof(uint16_t)));
 
13906
                        NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, r->out.site, ndr_get_array_length(ndr, r->out.site), sizeof(uint16_t), CH_UTF16));
 
13907
                        NDR_PULL_SET_MEM_CTX(ndr, _mem_save_site_1, 0);
 
13908
                }
 
13909
                NDR_PULL_SET_MEM_CTX(ndr, _mem_save_site_0, LIBNDR_FLAG_REF_ALLOC);
 
13910
                NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result));
 
13911
        }
 
13912
        return NDR_ERR_SUCCESS;
 
13913
}
 
13914
 
 
13915
_PUBLIC_ void ndr_print_netr_DsRGetSiteName(struct ndr_print *ndr, const char *name, int flags, const struct netr_DsRGetSiteName *r)
 
13916
{
 
13917
        ndr_print_struct(ndr, name, "netr_DsRGetSiteName");
 
13918
        ndr->depth++;
 
13919
        if (flags & NDR_SET_VALUES) {
 
13920
                ndr->flags |= LIBNDR_PRINT_SET_VALUES;
 
13921
        }
 
13922
        if (flags & NDR_IN) {
 
13923
                ndr_print_struct(ndr, "in", "netr_DsRGetSiteName");
 
13924
                ndr->depth++;
 
13925
                ndr_print_ptr(ndr, "computer_name", r->in.computer_name);
 
13926
                ndr->depth++;
 
13927
                if (r->in.computer_name) {
 
13928
                        ndr_print_string(ndr, "computer_name", r->in.computer_name);
 
13929
                }
 
13930
                ndr->depth--;
 
13931
                ndr->depth--;
 
13932
        }
 
13933
        if (flags & NDR_OUT) {
 
13934
                ndr_print_struct(ndr, "out", "netr_DsRGetSiteName");
 
13935
                ndr->depth++;
 
13936
                ndr_print_ptr(ndr, "site", r->out.site);
 
13937
                ndr->depth++;
 
13938
                ndr_print_ptr(ndr, "site", *r->out.site);
 
13939
                ndr->depth++;
 
13940
                if (*r->out.site) {
 
13941
                        ndr_print_string(ndr, "site", *r->out.site);
 
13942
                }
 
13943
                ndr->depth--;
 
13944
                ndr->depth--;
 
13945
                ndr_print_WERROR(ndr, "result", r->out.result);
 
13946
                ndr->depth--;
 
13947
        }
 
13948
        ndr->depth--;
 
13949
}
 
13950
 
 
13951
static enum ndr_err_code ndr_push_netr_LogonGetDomainInfo(struct ndr_push *ndr, int flags, const struct netr_LogonGetDomainInfo *r)
 
13952
{
 
13953
        if (flags & NDR_IN) {
 
13954
                if (r->in.server_name == NULL) {
 
13955
                        return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
 
13956
                }
 
13957
                NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->in.server_name, CH_UTF16)));
 
13958
                NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, 0));
 
13959
                NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->in.server_name, CH_UTF16)));
 
13960
                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));
 
13961
                NDR_CHECK(ndr_push_unique_ptr(ndr, r->in.computer_name));
 
13962
                if (r->in.computer_name) {
 
13963
                        NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->in.computer_name, CH_UTF16)));
 
13964
                        NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, 0));
 
13965
                        NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->in.computer_name, CH_UTF16)));
 
13966
                        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));
 
13967
                }
 
13968
                if (r->in.credential == NULL) {
 
13969
                        return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
 
13970
                }
 
13971
                NDR_CHECK(ndr_push_netr_Authenticator(ndr, NDR_SCALARS, r->in.credential));
 
13972
                if (r->in.return_authenticator == NULL) {
 
13973
                        return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
 
13974
                }
 
13975
                NDR_CHECK(ndr_push_netr_Authenticator(ndr, NDR_SCALARS, r->in.return_authenticator));
 
13976
                NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->in.level));
 
13977
                if (r->in.query == NULL) {
 
13978
                        return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
 
13979
                }
 
13980
                NDR_CHECK(ndr_push_set_switch_value(ndr, r->in.query, r->in.level));
 
13981
                NDR_CHECK(ndr_push_netr_WorkstationInfo(ndr, NDR_SCALARS|NDR_BUFFERS, r->in.query));
 
13982
        }
 
13983
        if (flags & NDR_OUT) {
 
13984
                if (r->out.return_authenticator == NULL) {
 
13985
                        return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
 
13986
                }
 
13987
                NDR_CHECK(ndr_push_netr_Authenticator(ndr, NDR_SCALARS, r->out.return_authenticator));
 
13988
                if (r->out.info == NULL) {
 
13989
                        return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
 
13990
                }
 
13991
                NDR_CHECK(ndr_push_set_switch_value(ndr, r->out.info, r->in.level));
 
13992
                NDR_CHECK(ndr_push_netr_DomainInfo(ndr, NDR_SCALARS|NDR_BUFFERS, r->out.info));
 
13993
                NDR_CHECK(ndr_push_NTSTATUS(ndr, NDR_SCALARS, r->out.result));
 
13994
        }
 
13995
        return NDR_ERR_SUCCESS;
 
13996
}
 
13997
 
 
13998
static enum ndr_err_code ndr_pull_netr_LogonGetDomainInfo(struct ndr_pull *ndr, int flags, struct netr_LogonGetDomainInfo *r)
 
13999
{
 
14000
        uint32_t _ptr_computer_name;
 
14001
        TALLOC_CTX *_mem_save_computer_name_0;
 
14002
        TALLOC_CTX *_mem_save_credential_0;
 
14003
        TALLOC_CTX *_mem_save_return_authenticator_0;
 
14004
        TALLOC_CTX *_mem_save_query_0;
 
14005
        TALLOC_CTX *_mem_save_info_0;
 
14006
        if (flags & NDR_IN) {
 
14007
                ZERO_STRUCT(r->out);
 
14008
 
 
14009
                NDR_CHECK(ndr_pull_array_size(ndr, &r->in.server_name));
 
14010
                NDR_CHECK(ndr_pull_array_length(ndr, &r->in.server_name));
 
14011
                if (ndr_get_array_length(ndr, &r->in.server_name) > ndr_get_array_size(ndr, &r->in.server_name)) {
 
14012
                        return 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));
 
14013
                }
 
14014
                NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->in.server_name), sizeof(uint16_t)));
 
14015
                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));
 
14016
                NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_computer_name));
 
14017
                if (_ptr_computer_name) {
 
14018
                        NDR_PULL_ALLOC(ndr, r->in.computer_name);
 
14019
                } else {
 
14020
                        r->in.computer_name = NULL;
 
14021
                }
 
14022
                if (r->in.computer_name) {
 
14023
                        _mem_save_computer_name_0 = NDR_PULL_GET_MEM_CTX(ndr);
 
14024
                        NDR_PULL_SET_MEM_CTX(ndr, r->in.computer_name, 0);
 
14025
                        NDR_CHECK(ndr_pull_array_size(ndr, &r->in.computer_name));
 
14026
                        NDR_CHECK(ndr_pull_array_length(ndr, &r->in.computer_name));
 
14027
                        if (ndr_get_array_length(ndr, &r->in.computer_name) > ndr_get_array_size(ndr, &r->in.computer_name)) {
 
14028
                                return 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));
 
14029
                        }
 
14030
                        NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->in.computer_name), sizeof(uint16_t)));
 
14031
                        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));
 
14032
                        NDR_PULL_SET_MEM_CTX(ndr, _mem_save_computer_name_0, 0);
 
14033
                }
 
14034
                if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
 
14035
                        NDR_PULL_ALLOC(ndr, r->in.credential);
 
14036
                }
 
14037
                _mem_save_credential_0 = NDR_PULL_GET_MEM_CTX(ndr);
 
14038
                NDR_PULL_SET_MEM_CTX(ndr, r->in.credential, LIBNDR_FLAG_REF_ALLOC);
 
14039
                NDR_CHECK(ndr_pull_netr_Authenticator(ndr, NDR_SCALARS, r->in.credential));
 
14040
                NDR_PULL_SET_MEM_CTX(ndr, _mem_save_credential_0, LIBNDR_FLAG_REF_ALLOC);
 
14041
                if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
 
14042
                        NDR_PULL_ALLOC(ndr, r->in.return_authenticator);
 
14043
                }
 
14044
                _mem_save_return_authenticator_0 = NDR_PULL_GET_MEM_CTX(ndr);
 
14045
                NDR_PULL_SET_MEM_CTX(ndr, r->in.return_authenticator, LIBNDR_FLAG_REF_ALLOC);
 
14046
                NDR_CHECK(ndr_pull_netr_Authenticator(ndr, NDR_SCALARS, r->in.return_authenticator));
 
14047
                NDR_PULL_SET_MEM_CTX(ndr, _mem_save_return_authenticator_0, LIBNDR_FLAG_REF_ALLOC);
 
14048
                NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->in.level));
 
14049
                if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
 
14050
                        NDR_PULL_ALLOC(ndr, r->in.query);
 
14051
                }
 
14052
                _mem_save_query_0 = NDR_PULL_GET_MEM_CTX(ndr);
 
14053
                NDR_PULL_SET_MEM_CTX(ndr, r->in.query, LIBNDR_FLAG_REF_ALLOC);
 
14054
                NDR_CHECK(ndr_pull_set_switch_value(ndr, r->in.query, r->in.level));
 
14055
                NDR_CHECK(ndr_pull_netr_WorkstationInfo(ndr, NDR_SCALARS|NDR_BUFFERS, r->in.query));
 
14056
                NDR_PULL_SET_MEM_CTX(ndr, _mem_save_query_0, LIBNDR_FLAG_REF_ALLOC);
 
14057
                NDR_PULL_ALLOC(ndr, r->out.return_authenticator);
 
14058
                *r->out.return_authenticator = *r->in.return_authenticator;
 
14059
                NDR_PULL_ALLOC(ndr, r->out.info);
 
14060
                ZERO_STRUCTP(r->out.info);
 
14061
        }
 
14062
        if (flags & NDR_OUT) {
 
14063
                if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
 
14064
                        NDR_PULL_ALLOC(ndr, r->out.return_authenticator);
 
14065
                }
 
14066
                _mem_save_return_authenticator_0 = NDR_PULL_GET_MEM_CTX(ndr);
 
14067
                NDR_PULL_SET_MEM_CTX(ndr, r->out.return_authenticator, LIBNDR_FLAG_REF_ALLOC);
 
14068
                NDR_CHECK(ndr_pull_netr_Authenticator(ndr, NDR_SCALARS, r->out.return_authenticator));
 
14069
                NDR_PULL_SET_MEM_CTX(ndr, _mem_save_return_authenticator_0, LIBNDR_FLAG_REF_ALLOC);
 
14070
                if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
 
14071
                        NDR_PULL_ALLOC(ndr, r->out.info);
 
14072
                }
 
14073
                _mem_save_info_0 = NDR_PULL_GET_MEM_CTX(ndr);
 
14074
                NDR_PULL_SET_MEM_CTX(ndr, r->out.info, LIBNDR_FLAG_REF_ALLOC);
 
14075
                NDR_CHECK(ndr_pull_set_switch_value(ndr, r->out.info, r->in.level));
 
14076
                NDR_CHECK(ndr_pull_netr_DomainInfo(ndr, NDR_SCALARS|NDR_BUFFERS, r->out.info));
 
14077
                NDR_PULL_SET_MEM_CTX(ndr, _mem_save_info_0, LIBNDR_FLAG_REF_ALLOC);
 
14078
                NDR_CHECK(ndr_pull_NTSTATUS(ndr, NDR_SCALARS, &r->out.result));
 
14079
        }
 
14080
        return NDR_ERR_SUCCESS;
 
14081
}
 
14082
 
 
14083
_PUBLIC_ void ndr_print_netr_LogonGetDomainInfo(struct ndr_print *ndr, const char *name, int flags, const struct netr_LogonGetDomainInfo *r)
 
14084
{
 
14085
        ndr_print_struct(ndr, name, "netr_LogonGetDomainInfo");
 
14086
        ndr->depth++;
 
14087
        if (flags & NDR_SET_VALUES) {
 
14088
                ndr->flags |= LIBNDR_PRINT_SET_VALUES;
 
14089
        }
 
14090
        if (flags & NDR_IN) {
 
14091
                ndr_print_struct(ndr, "in", "netr_LogonGetDomainInfo");
 
14092
                ndr->depth++;
 
14093
                ndr_print_ptr(ndr, "server_name", r->in.server_name);
 
14094
                ndr->depth++;
 
14095
                ndr_print_string(ndr, "server_name", r->in.server_name);
 
14096
                ndr->depth--;
 
14097
                ndr_print_ptr(ndr, "computer_name", r->in.computer_name);
 
14098
                ndr->depth++;
 
14099
                if (r->in.computer_name) {
 
14100
                        ndr_print_string(ndr, "computer_name", r->in.computer_name);
 
14101
                }
 
14102
                ndr->depth--;
 
14103
                ndr_print_ptr(ndr, "credential", r->in.credential);
 
14104
                ndr->depth++;
 
14105
                ndr_print_netr_Authenticator(ndr, "credential", r->in.credential);
 
14106
                ndr->depth--;
 
14107
                ndr_print_ptr(ndr, "return_authenticator", r->in.return_authenticator);
 
14108
                ndr->depth++;
 
14109
                ndr_print_netr_Authenticator(ndr, "return_authenticator", r->in.return_authenticator);
 
14110
                ndr->depth--;
 
14111
                ndr_print_uint32(ndr, "level", r->in.level);
 
14112
                ndr_print_ptr(ndr, "query", r->in.query);
 
14113
                ndr->depth++;
 
14114
                ndr_print_set_switch_value(ndr, r->in.query, r->in.level);
 
14115
                ndr_print_netr_WorkstationInfo(ndr, "query", r->in.query);
 
14116
                ndr->depth--;
 
14117
                ndr->depth--;
 
14118
        }
 
14119
        if (flags & NDR_OUT) {
 
14120
                ndr_print_struct(ndr, "out", "netr_LogonGetDomainInfo");
 
14121
                ndr->depth++;
 
14122
                ndr_print_ptr(ndr, "return_authenticator", r->out.return_authenticator);
 
14123
                ndr->depth++;
 
14124
                ndr_print_netr_Authenticator(ndr, "return_authenticator", r->out.return_authenticator);
 
14125
                ndr->depth--;
 
14126
                ndr_print_ptr(ndr, "info", r->out.info);
 
14127
                ndr->depth++;
 
14128
                ndr_print_set_switch_value(ndr, r->out.info, r->in.level);
 
14129
                ndr_print_netr_DomainInfo(ndr, "info", r->out.info);
 
14130
                ndr->depth--;
 
14131
                ndr_print_NTSTATUS(ndr, "result", r->out.result);
 
14132
                ndr->depth--;
 
14133
        }
 
14134
        ndr->depth--;
 
14135
}
 
14136
 
 
14137
static enum ndr_err_code ndr_push_netr_ServerPasswordSet2(struct ndr_push *ndr, int flags, const struct netr_ServerPasswordSet2 *r)
 
14138
{
 
14139
        if (flags & NDR_IN) {
 
14140
                NDR_CHECK(ndr_push_unique_ptr(ndr, r->in.server_name));
 
14141
                if (r->in.server_name) {
 
14142
                        NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->in.server_name, CH_UTF16)));
 
14143
                        NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, 0));
 
14144
                        NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->in.server_name, CH_UTF16)));
 
14145
                        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));
 
14146
                }
 
14147
                if (r->in.account_name == NULL) {
 
14148
                        return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
 
14149
                }
 
14150
                NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->in.account_name, CH_UTF16)));
 
14151
                NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, 0));
 
14152
                NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->in.account_name, CH_UTF16)));
 
14153
                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));
 
14154
                NDR_CHECK(ndr_push_netr_SchannelType(ndr, NDR_SCALARS, r->in.secure_channel_type));
 
14155
                if (r->in.computer_name == NULL) {
 
14156
                        return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
 
14157
                }
 
14158
                NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->in.computer_name, CH_UTF16)));
 
14159
                NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, 0));
 
14160
                NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->in.computer_name, CH_UTF16)));
 
14161
                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));
 
14162
                if (r->in.credential == NULL) {
 
14163
                        return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
 
14164
                }
 
14165
                NDR_CHECK(ndr_push_netr_Authenticator(ndr, NDR_SCALARS, r->in.credential));
 
14166
                if (r->in.new_password == NULL) {
 
14167
                        return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
 
14168
                }
 
14169
                NDR_CHECK(ndr_push_netr_CryptPassword(ndr, NDR_SCALARS, r->in.new_password));
 
14170
        }
 
14171
        if (flags & NDR_OUT) {
 
14172
                if (r->out.return_authenticator == NULL) {
 
14173
                        return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
 
14174
                }
 
14175
                NDR_CHECK(ndr_push_netr_Authenticator(ndr, NDR_SCALARS, r->out.return_authenticator));
 
14176
                NDR_CHECK(ndr_push_NTSTATUS(ndr, NDR_SCALARS, r->out.result));
 
14177
        }
 
14178
        return NDR_ERR_SUCCESS;
 
14179
}
 
14180
 
 
14181
static enum ndr_err_code ndr_pull_netr_ServerPasswordSet2(struct ndr_pull *ndr, int flags, struct netr_ServerPasswordSet2 *r)
 
14182
{
 
14183
        uint32_t _ptr_server_name;
 
14184
        TALLOC_CTX *_mem_save_server_name_0;
 
14185
        TALLOC_CTX *_mem_save_credential_0;
 
14186
        TALLOC_CTX *_mem_save_return_authenticator_0;
 
14187
        TALLOC_CTX *_mem_save_new_password_0;
 
14188
        if (flags & NDR_IN) {
 
14189
                ZERO_STRUCT(r->out);
 
14190
 
 
14191
                NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_server_name));
 
14192
                if (_ptr_server_name) {
 
14193
                        NDR_PULL_ALLOC(ndr, r->in.server_name);
 
14194
                } else {
 
14195
                        r->in.server_name = NULL;
 
14196
                }
 
14197
                if (r->in.server_name) {
 
14198
                        _mem_save_server_name_0 = NDR_PULL_GET_MEM_CTX(ndr);
 
14199
                        NDR_PULL_SET_MEM_CTX(ndr, r->in.server_name, 0);
 
14200
                        NDR_CHECK(ndr_pull_array_size(ndr, &r->in.server_name));
 
14201
                        NDR_CHECK(ndr_pull_array_length(ndr, &r->in.server_name));
 
14202
                        if (ndr_get_array_length(ndr, &r->in.server_name) > ndr_get_array_size(ndr, &r->in.server_name)) {
 
14203
                                return 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));
 
14204
                        }
 
14205
                        NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->in.server_name), sizeof(uint16_t)));
 
14206
                        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));
 
14207
                        NDR_PULL_SET_MEM_CTX(ndr, _mem_save_server_name_0, 0);
 
14208
                }
 
14209
                NDR_CHECK(ndr_pull_array_size(ndr, &r->in.account_name));
 
14210
                NDR_CHECK(ndr_pull_array_length(ndr, &r->in.account_name));
 
14211
                if (ndr_get_array_length(ndr, &r->in.account_name) > ndr_get_array_size(ndr, &r->in.account_name)) {
 
14212
                        return 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));
 
14213
                }
 
14214
                NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->in.account_name), sizeof(uint16_t)));
 
14215
                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));
 
14216
                NDR_CHECK(ndr_pull_netr_SchannelType(ndr, NDR_SCALARS, &r->in.secure_channel_type));
 
14217
                NDR_CHECK(ndr_pull_array_size(ndr, &r->in.computer_name));
 
14218
                NDR_CHECK(ndr_pull_array_length(ndr, &r->in.computer_name));
 
14219
                if (ndr_get_array_length(ndr, &r->in.computer_name) > ndr_get_array_size(ndr, &r->in.computer_name)) {
 
14220
                        return 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));
 
14221
                }
 
14222
                NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->in.computer_name), sizeof(uint16_t)));
 
14223
                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));
 
14224
                if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
 
14225
                        NDR_PULL_ALLOC(ndr, r->in.credential);
 
14226
                }
 
14227
                _mem_save_credential_0 = NDR_PULL_GET_MEM_CTX(ndr);
 
14228
                NDR_PULL_SET_MEM_CTX(ndr, r->in.credential, LIBNDR_FLAG_REF_ALLOC);
 
14229
                NDR_CHECK(ndr_pull_netr_Authenticator(ndr, NDR_SCALARS, r->in.credential));
 
14230
                NDR_PULL_SET_MEM_CTX(ndr, _mem_save_credential_0, LIBNDR_FLAG_REF_ALLOC);
 
14231
                if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
 
14232
                        NDR_PULL_ALLOC(ndr, r->in.new_password);
 
14233
                }
 
14234
                _mem_save_new_password_0 = NDR_PULL_GET_MEM_CTX(ndr);
 
14235
                NDR_PULL_SET_MEM_CTX(ndr, r->in.new_password, LIBNDR_FLAG_REF_ALLOC);
 
14236
                NDR_CHECK(ndr_pull_netr_CryptPassword(ndr, NDR_SCALARS, r->in.new_password));
 
14237
                NDR_PULL_SET_MEM_CTX(ndr, _mem_save_new_password_0, LIBNDR_FLAG_REF_ALLOC);
 
14238
                NDR_PULL_ALLOC(ndr, r->out.return_authenticator);
 
14239
                ZERO_STRUCTP(r->out.return_authenticator);
 
14240
        }
 
14241
        if (flags & NDR_OUT) {
 
14242
                if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
 
14243
                        NDR_PULL_ALLOC(ndr, r->out.return_authenticator);
 
14244
                }
 
14245
                _mem_save_return_authenticator_0 = NDR_PULL_GET_MEM_CTX(ndr);
 
14246
                NDR_PULL_SET_MEM_CTX(ndr, r->out.return_authenticator, LIBNDR_FLAG_REF_ALLOC);
 
14247
                NDR_CHECK(ndr_pull_netr_Authenticator(ndr, NDR_SCALARS, r->out.return_authenticator));
 
14248
                NDR_PULL_SET_MEM_CTX(ndr, _mem_save_return_authenticator_0, LIBNDR_FLAG_REF_ALLOC);
 
14249
                NDR_CHECK(ndr_pull_NTSTATUS(ndr, NDR_SCALARS, &r->out.result));
 
14250
        }
 
14251
        return NDR_ERR_SUCCESS;
 
14252
}
 
14253
 
 
14254
_PUBLIC_ void ndr_print_netr_ServerPasswordSet2(struct ndr_print *ndr, const char *name, int flags, const struct netr_ServerPasswordSet2 *r)
 
14255
{
 
14256
        ndr_print_struct(ndr, name, "netr_ServerPasswordSet2");
 
14257
        ndr->depth++;
 
14258
        if (flags & NDR_SET_VALUES) {
 
14259
                ndr->flags |= LIBNDR_PRINT_SET_VALUES;
 
14260
        }
 
14261
        if (flags & NDR_IN) {
 
14262
                ndr_print_struct(ndr, "in", "netr_ServerPasswordSet2");
 
14263
                ndr->depth++;
 
14264
                ndr_print_ptr(ndr, "server_name", r->in.server_name);
 
14265
                ndr->depth++;
 
14266
                if (r->in.server_name) {
 
14267
                        ndr_print_string(ndr, "server_name", r->in.server_name);
 
14268
                }
 
14269
                ndr->depth--;
 
14270
                ndr_print_ptr(ndr, "account_name", r->in.account_name);
 
14271
                ndr->depth++;
 
14272
                ndr_print_string(ndr, "account_name", r->in.account_name);
 
14273
                ndr->depth--;
 
14274
                ndr_print_netr_SchannelType(ndr, "secure_channel_type", r->in.secure_channel_type);
 
14275
                ndr_print_ptr(ndr, "computer_name", r->in.computer_name);
 
14276
                ndr->depth++;
 
14277
                ndr_print_string(ndr, "computer_name", r->in.computer_name);
 
14278
                ndr->depth--;
 
14279
                ndr_print_ptr(ndr, "credential", r->in.credential);
 
14280
                ndr->depth++;
 
14281
                ndr_print_netr_Authenticator(ndr, "credential", r->in.credential);
 
14282
                ndr->depth--;
 
14283
                ndr_print_ptr(ndr, "new_password", r->in.new_password);
 
14284
                ndr->depth++;
 
14285
                ndr_print_netr_CryptPassword(ndr, "new_password", r->in.new_password);
 
14286
                ndr->depth--;
 
14287
                ndr->depth--;
 
14288
        }
 
14289
        if (flags & NDR_OUT) {
 
14290
                ndr_print_struct(ndr, "out", "netr_ServerPasswordSet2");
 
14291
                ndr->depth++;
 
14292
                ndr_print_ptr(ndr, "return_authenticator", r->out.return_authenticator);
 
14293
                ndr->depth++;
 
14294
                ndr_print_netr_Authenticator(ndr, "return_authenticator", r->out.return_authenticator);
 
14295
                ndr->depth--;
 
14296
                ndr_print_NTSTATUS(ndr, "result", r->out.result);
 
14297
                ndr->depth--;
 
14298
        }
 
14299
        ndr->depth--;
 
14300
}
 
14301
 
 
14302
static enum ndr_err_code ndr_push_netr_ServerPasswordGet(struct ndr_push *ndr, int flags, const struct netr_ServerPasswordGet *r)
 
14303
{
 
14304
        if (flags & NDR_IN) {
 
14305
                NDR_CHECK(ndr_push_unique_ptr(ndr, r->in.server_name));
 
14306
                if (r->in.server_name) {
 
14307
                        NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->in.server_name, CH_UTF16)));
 
14308
                        NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, 0));
 
14309
                        NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->in.server_name, CH_UTF16)));
 
14310
                        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));
 
14311
                }
 
14312
                if (r->in.account_name == NULL) {
 
14313
                        return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
 
14314
                }
 
14315
                NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->in.account_name, CH_UTF16)));
 
14316
                NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, 0));
 
14317
                NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->in.account_name, CH_UTF16)));
 
14318
                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));
 
14319
                NDR_CHECK(ndr_push_netr_SchannelType(ndr, NDR_SCALARS, r->in.secure_channel_type));
 
14320
                if (r->in.computer_name == NULL) {
 
14321
                        return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
 
14322
                }
 
14323
                NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->in.computer_name, CH_UTF16)));
 
14324
                NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, 0));
 
14325
                NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->in.computer_name, CH_UTF16)));
 
14326
                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));
 
14327
                if (r->in.credential == NULL) {
 
14328
                        return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
 
14329
                }
 
14330
                NDR_CHECK(ndr_push_netr_Authenticator(ndr, NDR_SCALARS, r->in.credential));
 
14331
        }
 
14332
        if (flags & NDR_OUT) {
 
14333
                if (r->out.return_authenticator == NULL) {
 
14334
                        return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
 
14335
                }
 
14336
                NDR_CHECK(ndr_push_netr_Authenticator(ndr, NDR_SCALARS, r->out.return_authenticator));
 
14337
                if (r->out.password == NULL) {
 
14338
                        return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
 
14339
                }
 
14340
                NDR_CHECK(ndr_push_samr_Password(ndr, NDR_SCALARS, r->out.password));
 
14341
                NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result));
 
14342
        }
 
14343
        return NDR_ERR_SUCCESS;
 
14344
}
 
14345
 
 
14346
static enum ndr_err_code ndr_pull_netr_ServerPasswordGet(struct ndr_pull *ndr, int flags, struct netr_ServerPasswordGet *r)
 
14347
{
 
14348
        uint32_t _ptr_server_name;
 
14349
        TALLOC_CTX *_mem_save_server_name_0;
 
14350
        TALLOC_CTX *_mem_save_credential_0;
 
14351
        TALLOC_CTX *_mem_save_return_authenticator_0;
 
14352
        TALLOC_CTX *_mem_save_password_0;
 
14353
        if (flags & NDR_IN) {
 
14354
                ZERO_STRUCT(r->out);
 
14355
 
 
14356
                NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_server_name));
 
14357
                if (_ptr_server_name) {
 
14358
                        NDR_PULL_ALLOC(ndr, r->in.server_name);
 
14359
                } else {
 
14360
                        r->in.server_name = NULL;
 
14361
                }
 
14362
                if (r->in.server_name) {
 
14363
                        _mem_save_server_name_0 = NDR_PULL_GET_MEM_CTX(ndr);
 
14364
                        NDR_PULL_SET_MEM_CTX(ndr, r->in.server_name, 0);
 
14365
                        NDR_CHECK(ndr_pull_array_size(ndr, &r->in.server_name));
 
14366
                        NDR_CHECK(ndr_pull_array_length(ndr, &r->in.server_name));
 
14367
                        if (ndr_get_array_length(ndr, &r->in.server_name) > ndr_get_array_size(ndr, &r->in.server_name)) {
 
14368
                                return 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));
 
14369
                        }
 
14370
                        NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->in.server_name), sizeof(uint16_t)));
 
14371
                        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));
 
14372
                        NDR_PULL_SET_MEM_CTX(ndr, _mem_save_server_name_0, 0);
 
14373
                }
 
14374
                NDR_CHECK(ndr_pull_array_size(ndr, &r->in.account_name));
 
14375
                NDR_CHECK(ndr_pull_array_length(ndr, &r->in.account_name));
 
14376
                if (ndr_get_array_length(ndr, &r->in.account_name) > ndr_get_array_size(ndr, &r->in.account_name)) {
 
14377
                        return 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));
 
14378
                }
 
14379
                NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->in.account_name), sizeof(uint16_t)));
 
14380
                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));
 
14381
                NDR_CHECK(ndr_pull_netr_SchannelType(ndr, NDR_SCALARS, &r->in.secure_channel_type));
 
14382
                NDR_CHECK(ndr_pull_array_size(ndr, &r->in.computer_name));
 
14383
                NDR_CHECK(ndr_pull_array_length(ndr, &r->in.computer_name));
 
14384
                if (ndr_get_array_length(ndr, &r->in.computer_name) > ndr_get_array_size(ndr, &r->in.computer_name)) {
 
14385
                        return 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));
 
14386
                }
 
14387
                NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->in.computer_name), sizeof(uint16_t)));
 
14388
                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));
 
14389
                if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
 
14390
                        NDR_PULL_ALLOC(ndr, r->in.credential);
 
14391
                }
 
14392
                _mem_save_credential_0 = NDR_PULL_GET_MEM_CTX(ndr);
 
14393
                NDR_PULL_SET_MEM_CTX(ndr, r->in.credential, LIBNDR_FLAG_REF_ALLOC);
 
14394
                NDR_CHECK(ndr_pull_netr_Authenticator(ndr, NDR_SCALARS, r->in.credential));
 
14395
                NDR_PULL_SET_MEM_CTX(ndr, _mem_save_credential_0, LIBNDR_FLAG_REF_ALLOC);
 
14396
                NDR_PULL_ALLOC(ndr, r->out.return_authenticator);
 
14397
                ZERO_STRUCTP(r->out.return_authenticator);
 
14398
                NDR_PULL_ALLOC(ndr, r->out.password);
 
14399
                ZERO_STRUCTP(r->out.password);
 
14400
        }
 
14401
        if (flags & NDR_OUT) {
 
14402
                if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
 
14403
                        NDR_PULL_ALLOC(ndr, r->out.return_authenticator);
 
14404
                }
 
14405
                _mem_save_return_authenticator_0 = NDR_PULL_GET_MEM_CTX(ndr);
 
14406
                NDR_PULL_SET_MEM_CTX(ndr, r->out.return_authenticator, LIBNDR_FLAG_REF_ALLOC);
 
14407
                NDR_CHECK(ndr_pull_netr_Authenticator(ndr, NDR_SCALARS, r->out.return_authenticator));
 
14408
                NDR_PULL_SET_MEM_CTX(ndr, _mem_save_return_authenticator_0, LIBNDR_FLAG_REF_ALLOC);
 
14409
                if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
 
14410
                        NDR_PULL_ALLOC(ndr, r->out.password);
 
14411
                }
 
14412
                _mem_save_password_0 = NDR_PULL_GET_MEM_CTX(ndr);
 
14413
                NDR_PULL_SET_MEM_CTX(ndr, r->out.password, LIBNDR_FLAG_REF_ALLOC);
 
14414
                NDR_CHECK(ndr_pull_samr_Password(ndr, NDR_SCALARS, r->out.password));
 
14415
                NDR_PULL_SET_MEM_CTX(ndr, _mem_save_password_0, LIBNDR_FLAG_REF_ALLOC);
 
14416
                NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result));
 
14417
        }
 
14418
        return NDR_ERR_SUCCESS;
 
14419
}
 
14420
 
 
14421
_PUBLIC_ void ndr_print_netr_ServerPasswordGet(struct ndr_print *ndr, const char *name, int flags, const struct netr_ServerPasswordGet *r)
 
14422
{
 
14423
        ndr_print_struct(ndr, name, "netr_ServerPasswordGet");
 
14424
        ndr->depth++;
 
14425
        if (flags & NDR_SET_VALUES) {
 
14426
                ndr->flags |= LIBNDR_PRINT_SET_VALUES;
 
14427
        }
 
14428
        if (flags & NDR_IN) {
 
14429
                ndr_print_struct(ndr, "in", "netr_ServerPasswordGet");
 
14430
                ndr->depth++;
 
14431
                ndr_print_ptr(ndr, "server_name", r->in.server_name);
 
14432
                ndr->depth++;
 
14433
                if (r->in.server_name) {
 
14434
                        ndr_print_string(ndr, "server_name", r->in.server_name);
 
14435
                }
 
14436
                ndr->depth--;
 
14437
                ndr_print_ptr(ndr, "account_name", r->in.account_name);
 
14438
                ndr->depth++;
 
14439
                ndr_print_string(ndr, "account_name", r->in.account_name);
 
14440
                ndr->depth--;
 
14441
                ndr_print_netr_SchannelType(ndr, "secure_channel_type", r->in.secure_channel_type);
 
14442
                ndr_print_ptr(ndr, "computer_name", r->in.computer_name);
 
14443
                ndr->depth++;
 
14444
                ndr_print_string(ndr, "computer_name", r->in.computer_name);
 
14445
                ndr->depth--;
 
14446
                ndr_print_ptr(ndr, "credential", r->in.credential);
 
14447
                ndr->depth++;
 
14448
                ndr_print_netr_Authenticator(ndr, "credential", r->in.credential);
 
14449
                ndr->depth--;
 
14450
                ndr->depth--;
 
14451
        }
 
14452
        if (flags & NDR_OUT) {
 
14453
                ndr_print_struct(ndr, "out", "netr_ServerPasswordGet");
 
14454
                ndr->depth++;
 
14455
                ndr_print_ptr(ndr, "return_authenticator", r->out.return_authenticator);
 
14456
                ndr->depth++;
 
14457
                ndr_print_netr_Authenticator(ndr, "return_authenticator", r->out.return_authenticator);
 
14458
                ndr->depth--;
 
14459
                ndr_print_ptr(ndr, "password", r->out.password);
 
14460
                ndr->depth++;
 
14461
                ndr_print_samr_Password(ndr, "password", r->out.password);
 
14462
                ndr->depth--;
 
14463
                ndr_print_WERROR(ndr, "result", r->out.result);
 
14464
                ndr->depth--;
 
14465
        }
 
14466
        ndr->depth--;
 
14467
}
 
14468
 
 
14469
static enum ndr_err_code ndr_push_netr_NETRLOGONSENDTOSAM(struct ndr_push *ndr, int flags, const struct netr_NETRLOGONSENDTOSAM *r)
 
14470
{
 
14471
        if (flags & NDR_IN) {
 
14472
        }
 
14473
        if (flags & NDR_OUT) {
 
14474
                NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result));
 
14475
        }
 
14476
        return NDR_ERR_SUCCESS;
 
14477
}
 
14478
 
 
14479
static enum ndr_err_code ndr_pull_netr_NETRLOGONSENDTOSAM(struct ndr_pull *ndr, int flags, struct netr_NETRLOGONSENDTOSAM *r)
 
14480
{
 
14481
        if (flags & NDR_IN) {
 
14482
        }
 
14483
        if (flags & NDR_OUT) {
 
14484
                NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result));
 
14485
        }
 
14486
        return NDR_ERR_SUCCESS;
 
14487
}
 
14488
 
 
14489
_PUBLIC_ void ndr_print_netr_NETRLOGONSENDTOSAM(struct ndr_print *ndr, const char *name, int flags, const struct netr_NETRLOGONSENDTOSAM *r)
 
14490
{
 
14491
        ndr_print_struct(ndr, name, "netr_NETRLOGONSENDTOSAM");
 
14492
        ndr->depth++;
 
14493
        if (flags & NDR_SET_VALUES) {
 
14494
                ndr->flags |= LIBNDR_PRINT_SET_VALUES;
 
14495
        }
 
14496
        if (flags & NDR_IN) {
 
14497
                ndr_print_struct(ndr, "in", "netr_NETRLOGONSENDTOSAM");
 
14498
                ndr->depth++;
 
14499
                ndr->depth--;
 
14500
        }
 
14501
        if (flags & NDR_OUT) {
 
14502
                ndr_print_struct(ndr, "out", "netr_NETRLOGONSENDTOSAM");
 
14503
                ndr->depth++;
 
14504
                ndr_print_WERROR(ndr, "result", r->out.result);
 
14505
                ndr->depth--;
 
14506
        }
 
14507
        ndr->depth--;
 
14508
}
 
14509
 
 
14510
static enum ndr_err_code ndr_push_netr_DsRAddressToSitenamesW(struct ndr_push *ndr, int flags, const struct netr_DsRAddressToSitenamesW *r)
 
14511
{
 
14512
        uint32_t cntr_addresses_1;
 
14513
        if (flags & NDR_IN) {
 
14514
                NDR_CHECK(ndr_push_unique_ptr(ndr, r->in.server_name));
 
14515
                if (r->in.server_name) {
 
14516
                        NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->in.server_name, CH_UTF16)));
 
14517
                        NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, 0));
 
14518
                        NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->in.server_name, CH_UTF16)));
 
14519
                        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));
 
14520
                }
 
14521
                NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->in.count));
 
14522
                if (r->in.addresses == NULL) {
 
14523
                        return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
 
14524
                }
 
14525
                NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, r->in.count));
 
14526
                for (cntr_addresses_1 = 0; cntr_addresses_1 < r->in.count; cntr_addresses_1++) {
 
14527
                        NDR_CHECK(ndr_push_netr_DsRAddress(ndr, NDR_SCALARS, &r->in.addresses[cntr_addresses_1]));
 
14528
                }
 
14529
                for (cntr_addresses_1 = 0; cntr_addresses_1 < r->in.count; cntr_addresses_1++) {
 
14530
                        NDR_CHECK(ndr_push_netr_DsRAddress(ndr, NDR_BUFFERS, &r->in.addresses[cntr_addresses_1]));
 
14531
                }
 
14532
        }
 
14533
        if (flags & NDR_OUT) {
 
14534
                if (r->out.ctr == NULL) {
 
14535
                        return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
 
14536
                }
 
14537
                NDR_CHECK(ndr_push_unique_ptr(ndr, *r->out.ctr));
 
14538
                if (*r->out.ctr) {
 
14539
                        NDR_CHECK(ndr_push_netr_DsRAddressToSitenamesWCtr(ndr, NDR_SCALARS|NDR_BUFFERS, *r->out.ctr));
 
14540
                }
 
14541
                NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result));
 
14542
        }
 
14543
        return NDR_ERR_SUCCESS;
 
14544
}
 
14545
 
 
14546
static enum ndr_err_code ndr_pull_netr_DsRAddressToSitenamesW(struct ndr_pull *ndr, int flags, struct netr_DsRAddressToSitenamesW *r)
 
14547
{
 
14548
        uint32_t _ptr_server_name;
 
14549
        uint32_t cntr_addresses_1;
 
14550
        uint32_t _ptr_ctr;
 
14551
        TALLOC_CTX *_mem_save_server_name_0;
 
14552
        TALLOC_CTX *_mem_save_addresses_1;
 
14553
        TALLOC_CTX *_mem_save_ctr_0;
 
14554
        TALLOC_CTX *_mem_save_ctr_1;
 
14555
        if (flags & NDR_IN) {
 
14556
                ZERO_STRUCT(r->out);
 
14557
 
 
14558
                NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_server_name));
 
14559
                if (_ptr_server_name) {
 
14560
                        NDR_PULL_ALLOC(ndr, r->in.server_name);
 
14561
                } else {
 
14562
                        r->in.server_name = NULL;
 
14563
                }
 
14564
                if (r->in.server_name) {
 
14565
                        _mem_save_server_name_0 = NDR_PULL_GET_MEM_CTX(ndr);
 
14566
                        NDR_PULL_SET_MEM_CTX(ndr, r->in.server_name, 0);
 
14567
                        NDR_CHECK(ndr_pull_array_size(ndr, &r->in.server_name));
 
14568
                        NDR_CHECK(ndr_pull_array_length(ndr, &r->in.server_name));
 
14569
                        if (ndr_get_array_length(ndr, &r->in.server_name) > ndr_get_array_size(ndr, &r->in.server_name)) {
 
14570
                                return 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));
 
14571
                        }
 
14572
                        NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->in.server_name), sizeof(uint16_t)));
 
14573
                        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));
 
14574
                        NDR_PULL_SET_MEM_CTX(ndr, _mem_save_server_name_0, 0);
 
14575
                }
 
14576
                NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->in.count));
 
14577
                if (r->in.count > 32000) {
 
14578
                        return ndr_pull_error(ndr, NDR_ERR_RANGE, "value out of range");
 
14579
                }
 
14580
                NDR_CHECK(ndr_pull_array_size(ndr, &r->in.addresses));
 
14581
                if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
 
14582
                        NDR_PULL_ALLOC_N(ndr, r->in.addresses, ndr_get_array_size(ndr, &r->in.addresses));
 
14583
                }
 
14584
                _mem_save_addresses_1 = NDR_PULL_GET_MEM_CTX(ndr);
 
14585
                NDR_PULL_SET_MEM_CTX(ndr, r->in.addresses, 0);
 
14586
                for (cntr_addresses_1 = 0; cntr_addresses_1 < r->in.count; cntr_addresses_1++) {
 
14587
                        NDR_CHECK(ndr_pull_netr_DsRAddress(ndr, NDR_SCALARS, &r->in.addresses[cntr_addresses_1]));
 
14588
                }
 
14589
                for (cntr_addresses_1 = 0; cntr_addresses_1 < r->in.count; cntr_addresses_1++) {
 
14590
                        NDR_CHECK(ndr_pull_netr_DsRAddress(ndr, NDR_BUFFERS, &r->in.addresses[cntr_addresses_1]));
 
14591
                }
 
14592
                NDR_PULL_SET_MEM_CTX(ndr, _mem_save_addresses_1, 0);
 
14593
                NDR_PULL_ALLOC(ndr, r->out.ctr);
 
14594
                ZERO_STRUCTP(r->out.ctr);
 
14595
                if (r->in.addresses) {
 
14596
                        NDR_CHECK(ndr_check_array_size(ndr, (void*)&r->in.addresses, r->in.count));
 
14597
                }
 
14598
        }
 
14599
        if (flags & NDR_OUT) {
 
14600
                if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
 
14601
                        NDR_PULL_ALLOC(ndr, r->out.ctr);
 
14602
                }
 
14603
                _mem_save_ctr_0 = NDR_PULL_GET_MEM_CTX(ndr);
 
14604
                NDR_PULL_SET_MEM_CTX(ndr, r->out.ctr, LIBNDR_FLAG_REF_ALLOC);
 
14605
                NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_ctr));
 
14606
                if (_ptr_ctr) {
 
14607
                        NDR_PULL_ALLOC(ndr, *r->out.ctr);
 
14608
                } else {
 
14609
                        *r->out.ctr = NULL;
 
14610
                }
 
14611
                if (*r->out.ctr) {
 
14612
                        _mem_save_ctr_1 = NDR_PULL_GET_MEM_CTX(ndr);
 
14613
                        NDR_PULL_SET_MEM_CTX(ndr, *r->out.ctr, 0);
 
14614
                        NDR_CHECK(ndr_pull_netr_DsRAddressToSitenamesWCtr(ndr, NDR_SCALARS|NDR_BUFFERS, *r->out.ctr));
 
14615
                        NDR_PULL_SET_MEM_CTX(ndr, _mem_save_ctr_1, 0);
 
14616
                }
 
14617
                NDR_PULL_SET_MEM_CTX(ndr, _mem_save_ctr_0, LIBNDR_FLAG_REF_ALLOC);
 
14618
                NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result));
 
14619
        }
 
14620
        return NDR_ERR_SUCCESS;
 
14621
}
 
14622
 
 
14623
_PUBLIC_ void ndr_print_netr_DsRAddressToSitenamesW(struct ndr_print *ndr, const char *name, int flags, const struct netr_DsRAddressToSitenamesW *r)
 
14624
{
 
14625
        uint32_t cntr_addresses_1;
 
14626
        ndr_print_struct(ndr, name, "netr_DsRAddressToSitenamesW");
 
14627
        ndr->depth++;
 
14628
        if (flags & NDR_SET_VALUES) {
 
14629
                ndr->flags |= LIBNDR_PRINT_SET_VALUES;
 
14630
        }
 
14631
        if (flags & NDR_IN) {
 
14632
                ndr_print_struct(ndr, "in", "netr_DsRAddressToSitenamesW");
 
14633
                ndr->depth++;
 
14634
                ndr_print_ptr(ndr, "server_name", r->in.server_name);
 
14635
                ndr->depth++;
 
14636
                if (r->in.server_name) {
 
14637
                        ndr_print_string(ndr, "server_name", r->in.server_name);
 
14638
                }
 
14639
                ndr->depth--;
 
14640
                ndr_print_uint32(ndr, "count", r->in.count);
 
14641
                ndr_print_ptr(ndr, "addresses", r->in.addresses);
 
14642
                ndr->depth++;
 
14643
                ndr->print(ndr, "%s: ARRAY(%d)", "addresses", (int)r->in.count);
 
14644
                ndr->depth++;
 
14645
                for (cntr_addresses_1=0;cntr_addresses_1<r->in.count;cntr_addresses_1++) {
 
14646
                        char *idx_1=NULL;
 
14647
                        if (asprintf(&idx_1, "[%d]", cntr_addresses_1) != -1) {
 
14648
                                ndr_print_netr_DsRAddress(ndr, "addresses", &r->in.addresses[cntr_addresses_1]);
 
14649
                                free(idx_1);
 
14650
                        }
 
14651
                }
 
14652
                ndr->depth--;
 
14653
                ndr->depth--;
 
14654
                ndr->depth--;
 
14655
        }
 
14656
        if (flags & NDR_OUT) {
 
14657
                ndr_print_struct(ndr, "out", "netr_DsRAddressToSitenamesW");
 
14658
                ndr->depth++;
 
14659
                ndr_print_ptr(ndr, "ctr", r->out.ctr);
 
14660
                ndr->depth++;
 
14661
                ndr_print_ptr(ndr, "ctr", *r->out.ctr);
 
14662
                ndr->depth++;
 
14663
                if (*r->out.ctr) {
 
14664
                        ndr_print_netr_DsRAddressToSitenamesWCtr(ndr, "ctr", *r->out.ctr);
 
14665
                }
 
14666
                ndr->depth--;
 
14667
                ndr->depth--;
 
14668
                ndr_print_WERROR(ndr, "result", r->out.result);
 
14669
                ndr->depth--;
 
14670
        }
 
14671
        ndr->depth--;
 
14672
}
 
14673
 
 
14674
static enum ndr_err_code ndr_push_netr_DsRGetDCNameEx2(struct ndr_push *ndr, int flags, const struct netr_DsRGetDCNameEx2 *r)
 
14675
{
 
14676
        if (flags & NDR_IN) {
 
14677
                NDR_CHECK(ndr_push_unique_ptr(ndr, r->in.server_unc));
 
14678
                if (r->in.server_unc) {
 
14679
                        NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->in.server_unc, CH_UTF16)));
 
14680
                        NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, 0));
 
14681
                        NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->in.server_unc, CH_UTF16)));
 
14682
                        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));
 
14683
                }
 
14684
                NDR_CHECK(ndr_push_unique_ptr(ndr, r->in.client_account));
 
14685
                if (r->in.client_account) {
 
14686
                        NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->in.client_account, CH_UTF16)));
 
14687
                        NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, 0));
 
14688
                        NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->in.client_account, CH_UTF16)));
 
14689
                        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));
 
14690
                }
 
14691
                NDR_CHECK(ndr_push_samr_AcctFlags(ndr, NDR_SCALARS, r->in.mask));
 
14692
                NDR_CHECK(ndr_push_unique_ptr(ndr, r->in.domain_name));
 
14693
                if (r->in.domain_name) {
 
14694
                        NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->in.domain_name, CH_UTF16)));
 
14695
                        NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, 0));
 
14696
                        NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->in.domain_name, CH_UTF16)));
 
14697
                        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));
 
14698
                }
 
14699
                NDR_CHECK(ndr_push_unique_ptr(ndr, r->in.domain_guid));
 
14700
                if (r->in.domain_guid) {
 
14701
                        NDR_CHECK(ndr_push_GUID(ndr, NDR_SCALARS, r->in.domain_guid));
 
14702
                }
 
14703
                NDR_CHECK(ndr_push_unique_ptr(ndr, r->in.site_name));
 
14704
                if (r->in.site_name) {
 
14705
                        NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->in.site_name, CH_UTF16)));
 
14706
                        NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, 0));
 
14707
                        NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->in.site_name, CH_UTF16)));
 
14708
                        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));
 
14709
                }
 
14710
                NDR_CHECK(ndr_push_netr_DsRGetDCName_flags(ndr, NDR_SCALARS, r->in.flags));
 
14711
        }
 
14712
        if (flags & NDR_OUT) {
 
14713
                if (r->out.info == NULL) {
 
14714
                        return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
 
14715
                }
 
14716
                NDR_CHECK(ndr_push_unique_ptr(ndr, *r->out.info));
 
14717
                if (*r->out.info) {
 
14718
                        NDR_CHECK(ndr_push_netr_DsRGetDCNameInfo(ndr, NDR_SCALARS|NDR_BUFFERS, *r->out.info));
 
14719
                }
 
14720
                NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result));
 
14721
        }
 
14722
        return NDR_ERR_SUCCESS;
 
14723
}
 
14724
 
 
14725
static enum ndr_err_code ndr_pull_netr_DsRGetDCNameEx2(struct ndr_pull *ndr, int flags, struct netr_DsRGetDCNameEx2 *r)
 
14726
{
 
14727
        uint32_t _ptr_server_unc;
 
14728
        uint32_t _ptr_client_account;
 
14729
        uint32_t _ptr_domain_name;
 
14730
        uint32_t _ptr_domain_guid;
 
14731
        uint32_t _ptr_site_name;
 
14732
        uint32_t _ptr_info;
 
14733
        TALLOC_CTX *_mem_save_server_unc_0;
 
14734
        TALLOC_CTX *_mem_save_client_account_0;
 
14735
        TALLOC_CTX *_mem_save_domain_name_0;
 
14736
        TALLOC_CTX *_mem_save_domain_guid_0;
 
14737
        TALLOC_CTX *_mem_save_site_name_0;
 
14738
        TALLOC_CTX *_mem_save_info_0;
 
14739
        TALLOC_CTX *_mem_save_info_1;
 
14740
        if (flags & NDR_IN) {
 
14741
                ZERO_STRUCT(r->out);
 
14742
 
 
14743
                NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_server_unc));
 
14744
                if (_ptr_server_unc) {
 
14745
                        NDR_PULL_ALLOC(ndr, r->in.server_unc);
 
14746
                } else {
 
14747
                        r->in.server_unc = NULL;
 
14748
                }
 
14749
                if (r->in.server_unc) {
 
14750
                        _mem_save_server_unc_0 = NDR_PULL_GET_MEM_CTX(ndr);
 
14751
                        NDR_PULL_SET_MEM_CTX(ndr, r->in.server_unc, 0);
 
14752
                        NDR_CHECK(ndr_pull_array_size(ndr, &r->in.server_unc));
 
14753
                        NDR_CHECK(ndr_pull_array_length(ndr, &r->in.server_unc));
 
14754
                        if (ndr_get_array_length(ndr, &r->in.server_unc) > ndr_get_array_size(ndr, &r->in.server_unc)) {
 
14755
                                return 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));
 
14756
                        }
 
14757
                        NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->in.server_unc), sizeof(uint16_t)));
 
14758
                        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));
 
14759
                        NDR_PULL_SET_MEM_CTX(ndr, _mem_save_server_unc_0, 0);
 
14760
                }
 
14761
                NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_client_account));
 
14762
                if (_ptr_client_account) {
 
14763
                        NDR_PULL_ALLOC(ndr, r->in.client_account);
 
14764
                } else {
 
14765
                        r->in.client_account = NULL;
 
14766
                }
 
14767
                if (r->in.client_account) {
 
14768
                        _mem_save_client_account_0 = NDR_PULL_GET_MEM_CTX(ndr);
 
14769
                        NDR_PULL_SET_MEM_CTX(ndr, r->in.client_account, 0);
 
14770
                        NDR_CHECK(ndr_pull_array_size(ndr, &r->in.client_account));
 
14771
                        NDR_CHECK(ndr_pull_array_length(ndr, &r->in.client_account));
 
14772
                        if (ndr_get_array_length(ndr, &r->in.client_account) > ndr_get_array_size(ndr, &r->in.client_account)) {
 
14773
                                return 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));
 
14774
                        }
 
14775
                        NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->in.client_account), sizeof(uint16_t)));
 
14776
                        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));
 
14777
                        NDR_PULL_SET_MEM_CTX(ndr, _mem_save_client_account_0, 0);
 
14778
                }
 
14779
                NDR_CHECK(ndr_pull_samr_AcctFlags(ndr, NDR_SCALARS, &r->in.mask));
 
14780
                NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_domain_name));
 
14781
                if (_ptr_domain_name) {
 
14782
                        NDR_PULL_ALLOC(ndr, r->in.domain_name);
 
14783
                } else {
 
14784
                        r->in.domain_name = NULL;
 
14785
                }
 
14786
                if (r->in.domain_name) {
 
14787
                        _mem_save_domain_name_0 = NDR_PULL_GET_MEM_CTX(ndr);
 
14788
                        NDR_PULL_SET_MEM_CTX(ndr, r->in.domain_name, 0);
 
14789
                        NDR_CHECK(ndr_pull_array_size(ndr, &r->in.domain_name));
 
14790
                        NDR_CHECK(ndr_pull_array_length(ndr, &r->in.domain_name));
 
14791
                        if (ndr_get_array_length(ndr, &r->in.domain_name) > ndr_get_array_size(ndr, &r->in.domain_name)) {
 
14792
                                return 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));
 
14793
                        }
 
14794
                        NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->in.domain_name), sizeof(uint16_t)));
 
14795
                        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));
 
14796
                        NDR_PULL_SET_MEM_CTX(ndr, _mem_save_domain_name_0, 0);
 
14797
                }
 
14798
                NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_domain_guid));
 
14799
                if (_ptr_domain_guid) {
 
14800
                        NDR_PULL_ALLOC(ndr, r->in.domain_guid);
 
14801
                } else {
 
14802
                        r->in.domain_guid = NULL;
 
14803
                }
 
14804
                if (r->in.domain_guid) {
 
14805
                        _mem_save_domain_guid_0 = NDR_PULL_GET_MEM_CTX(ndr);
 
14806
                        NDR_PULL_SET_MEM_CTX(ndr, r->in.domain_guid, 0);
 
14807
                        NDR_CHECK(ndr_pull_GUID(ndr, NDR_SCALARS, r->in.domain_guid));
 
14808
                        NDR_PULL_SET_MEM_CTX(ndr, _mem_save_domain_guid_0, 0);
 
14809
                }
 
14810
                NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_site_name));
 
14811
                if (_ptr_site_name) {
 
14812
                        NDR_PULL_ALLOC(ndr, r->in.site_name);
 
14813
                } else {
 
14814
                        r->in.site_name = NULL;
 
14815
                }
 
14816
                if (r->in.site_name) {
 
14817
                        _mem_save_site_name_0 = NDR_PULL_GET_MEM_CTX(ndr);
 
14818
                        NDR_PULL_SET_MEM_CTX(ndr, r->in.site_name, 0);
 
14819
                        NDR_CHECK(ndr_pull_array_size(ndr, &r->in.site_name));
 
14820
                        NDR_CHECK(ndr_pull_array_length(ndr, &r->in.site_name));
 
14821
                        if (ndr_get_array_length(ndr, &r->in.site_name) > ndr_get_array_size(ndr, &r->in.site_name)) {
 
14822
                                return 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));
 
14823
                        }
 
14824
                        NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->in.site_name), sizeof(uint16_t)));
 
14825
                        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));
 
14826
                        NDR_PULL_SET_MEM_CTX(ndr, _mem_save_site_name_0, 0);
 
14827
                }
 
14828
                NDR_CHECK(ndr_pull_netr_DsRGetDCName_flags(ndr, NDR_SCALARS, &r->in.flags));
 
14829
                NDR_PULL_ALLOC(ndr, r->out.info);
 
14830
                ZERO_STRUCTP(r->out.info);
 
14831
        }
 
14832
        if (flags & NDR_OUT) {
 
14833
                if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
 
14834
                        NDR_PULL_ALLOC(ndr, r->out.info);
 
14835
                }
 
14836
                _mem_save_info_0 = NDR_PULL_GET_MEM_CTX(ndr);
 
14837
                NDR_PULL_SET_MEM_CTX(ndr, r->out.info, LIBNDR_FLAG_REF_ALLOC);
 
14838
                NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_info));
 
14839
                if (_ptr_info) {
 
14840
                        NDR_PULL_ALLOC(ndr, *r->out.info);
 
14841
                } else {
 
14842
                        *r->out.info = NULL;
 
14843
                }
 
14844
                if (*r->out.info) {
 
14845
                        _mem_save_info_1 = NDR_PULL_GET_MEM_CTX(ndr);
 
14846
                        NDR_PULL_SET_MEM_CTX(ndr, *r->out.info, 0);
 
14847
                        NDR_CHECK(ndr_pull_netr_DsRGetDCNameInfo(ndr, NDR_SCALARS|NDR_BUFFERS, *r->out.info));
 
14848
                        NDR_PULL_SET_MEM_CTX(ndr, _mem_save_info_1, 0);
 
14849
                }
 
14850
                NDR_PULL_SET_MEM_CTX(ndr, _mem_save_info_0, LIBNDR_FLAG_REF_ALLOC);
 
14851
                NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result));
 
14852
        }
 
14853
        return NDR_ERR_SUCCESS;
 
14854
}
 
14855
 
 
14856
_PUBLIC_ void ndr_print_netr_DsRGetDCNameEx2(struct ndr_print *ndr, const char *name, int flags, const struct netr_DsRGetDCNameEx2 *r)
 
14857
{
 
14858
        ndr_print_struct(ndr, name, "netr_DsRGetDCNameEx2");
 
14859
        ndr->depth++;
 
14860
        if (flags & NDR_SET_VALUES) {
 
14861
                ndr->flags |= LIBNDR_PRINT_SET_VALUES;
 
14862
        }
 
14863
        if (flags & NDR_IN) {
 
14864
                ndr_print_struct(ndr, "in", "netr_DsRGetDCNameEx2");
 
14865
                ndr->depth++;
 
14866
                ndr_print_ptr(ndr, "server_unc", r->in.server_unc);
 
14867
                ndr->depth++;
 
14868
                if (r->in.server_unc) {
 
14869
                        ndr_print_string(ndr, "server_unc", r->in.server_unc);
 
14870
                }
 
14871
                ndr->depth--;
 
14872
                ndr_print_ptr(ndr, "client_account", r->in.client_account);
 
14873
                ndr->depth++;
 
14874
                if (r->in.client_account) {
 
14875
                        ndr_print_string(ndr, "client_account", r->in.client_account);
 
14876
                }
 
14877
                ndr->depth--;
 
14878
                ndr_print_samr_AcctFlags(ndr, "mask", r->in.mask);
 
14879
                ndr_print_ptr(ndr, "domain_name", r->in.domain_name);
 
14880
                ndr->depth++;
 
14881
                if (r->in.domain_name) {
 
14882
                        ndr_print_string(ndr, "domain_name", r->in.domain_name);
 
14883
                }
 
14884
                ndr->depth--;
 
14885
                ndr_print_ptr(ndr, "domain_guid", r->in.domain_guid);
 
14886
                ndr->depth++;
 
14887
                if (r->in.domain_guid) {
 
14888
                        ndr_print_GUID(ndr, "domain_guid", r->in.domain_guid);
 
14889
                }
 
14890
                ndr->depth--;
 
14891
                ndr_print_ptr(ndr, "site_name", r->in.site_name);
 
14892
                ndr->depth++;
 
14893
                if (r->in.site_name) {
 
14894
                        ndr_print_string(ndr, "site_name", r->in.site_name);
 
14895
                }
 
14896
                ndr->depth--;
 
14897
                ndr_print_netr_DsRGetDCName_flags(ndr, "flags", r->in.flags);
 
14898
                ndr->depth--;
 
14899
        }
 
14900
        if (flags & NDR_OUT) {
 
14901
                ndr_print_struct(ndr, "out", "netr_DsRGetDCNameEx2");
 
14902
                ndr->depth++;
 
14903
                ndr_print_ptr(ndr, "info", r->out.info);
 
14904
                ndr->depth++;
 
14905
                ndr_print_ptr(ndr, "info", *r->out.info);
 
14906
                ndr->depth++;
 
14907
                if (*r->out.info) {
 
14908
                        ndr_print_netr_DsRGetDCNameInfo(ndr, "info", *r->out.info);
 
14909
                }
 
14910
                ndr->depth--;
 
14911
                ndr->depth--;
 
14912
                ndr_print_WERROR(ndr, "result", r->out.result);
 
14913
                ndr->depth--;
 
14914
        }
 
14915
        ndr->depth--;
 
14916
}
 
14917
 
 
14918
static enum ndr_err_code ndr_push_netr_NETRLOGONGETTIMESERVICEPARENTDOMAIN(struct ndr_push *ndr, int flags, const struct netr_NETRLOGONGETTIMESERVICEPARENTDOMAIN *r)
 
14919
{
 
14920
        if (flags & NDR_IN) {
 
14921
        }
 
14922
        if (flags & NDR_OUT) {
 
14923
                NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result));
 
14924
        }
 
14925
        return NDR_ERR_SUCCESS;
 
14926
}
 
14927
 
 
14928
static enum ndr_err_code ndr_pull_netr_NETRLOGONGETTIMESERVICEPARENTDOMAIN(struct ndr_pull *ndr, int flags, struct netr_NETRLOGONGETTIMESERVICEPARENTDOMAIN *r)
 
14929
{
 
14930
        if (flags & NDR_IN) {
 
14931
        }
 
14932
        if (flags & NDR_OUT) {
 
14933
                NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result));
 
14934
        }
 
14935
        return NDR_ERR_SUCCESS;
 
14936
}
 
14937
 
 
14938
_PUBLIC_ void ndr_print_netr_NETRLOGONGETTIMESERVICEPARENTDOMAIN(struct ndr_print *ndr, const char *name, int flags, const struct netr_NETRLOGONGETTIMESERVICEPARENTDOMAIN *r)
 
14939
{
 
14940
        ndr_print_struct(ndr, name, "netr_NETRLOGONGETTIMESERVICEPARENTDOMAIN");
 
14941
        ndr->depth++;
 
14942
        if (flags & NDR_SET_VALUES) {
 
14943
                ndr->flags |= LIBNDR_PRINT_SET_VALUES;
 
14944
        }
 
14945
        if (flags & NDR_IN) {
 
14946
                ndr_print_struct(ndr, "in", "netr_NETRLOGONGETTIMESERVICEPARENTDOMAIN");
 
14947
                ndr->depth++;
 
14948
                ndr->depth--;
 
14949
        }
 
14950
        if (flags & NDR_OUT) {
 
14951
                ndr_print_struct(ndr, "out", "netr_NETRLOGONGETTIMESERVICEPARENTDOMAIN");
 
14952
                ndr->depth++;
 
14953
                ndr_print_WERROR(ndr, "result", r->out.result);
 
14954
                ndr->depth--;
 
14955
        }
 
14956
        ndr->depth--;
 
14957
}
 
14958
 
 
14959
static enum ndr_err_code ndr_push_netr_NetrEnumerateTrustedDomainsEx(struct ndr_push *ndr, int flags, const struct netr_NetrEnumerateTrustedDomainsEx *r)
 
14960
{
 
14961
        if (flags & NDR_IN) {
 
14962
                NDR_CHECK(ndr_push_unique_ptr(ndr, r->in.server_name));
 
14963
                if (r->in.server_name) {
 
14964
                        NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->in.server_name, CH_UTF16)));
 
14965
                        NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, 0));
 
14966
                        NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->in.server_name, CH_UTF16)));
 
14967
                        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));
 
14968
                }
 
14969
        }
 
14970
        if (flags & NDR_OUT) {
 
14971
                if (r->out.dom_trust_list == NULL) {
 
14972
                        return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
 
14973
                }
 
14974
                NDR_CHECK(ndr_push_netr_DomainTrustList(ndr, NDR_SCALARS|NDR_BUFFERS, r->out.dom_trust_list));
 
14975
                NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result));
 
14976
        }
 
14977
        return NDR_ERR_SUCCESS;
 
14978
}
 
14979
 
 
14980
static enum ndr_err_code ndr_pull_netr_NetrEnumerateTrustedDomainsEx(struct ndr_pull *ndr, int flags, struct netr_NetrEnumerateTrustedDomainsEx *r)
 
14981
{
 
14982
        uint32_t _ptr_server_name;
 
14983
        TALLOC_CTX *_mem_save_server_name_0;
 
14984
        TALLOC_CTX *_mem_save_dom_trust_list_0;
 
14985
        if (flags & NDR_IN) {
 
14986
                ZERO_STRUCT(r->out);
 
14987
 
 
14988
                NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_server_name));
 
14989
                if (_ptr_server_name) {
 
14990
                        NDR_PULL_ALLOC(ndr, r->in.server_name);
 
14991
                } else {
 
14992
                        r->in.server_name = NULL;
 
14993
                }
 
14994
                if (r->in.server_name) {
 
14995
                        _mem_save_server_name_0 = NDR_PULL_GET_MEM_CTX(ndr);
 
14996
                        NDR_PULL_SET_MEM_CTX(ndr, r->in.server_name, 0);
 
14997
                        NDR_CHECK(ndr_pull_array_size(ndr, &r->in.server_name));
 
14998
                        NDR_CHECK(ndr_pull_array_length(ndr, &r->in.server_name));
 
14999
                        if (ndr_get_array_length(ndr, &r->in.server_name) > ndr_get_array_size(ndr, &r->in.server_name)) {
 
15000
                                return 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));
 
15001
                        }
 
15002
                        NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->in.server_name), sizeof(uint16_t)));
 
15003
                        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));
 
15004
                        NDR_PULL_SET_MEM_CTX(ndr, _mem_save_server_name_0, 0);
 
15005
                }
 
15006
                NDR_PULL_ALLOC(ndr, r->out.dom_trust_list);
 
15007
                ZERO_STRUCTP(r->out.dom_trust_list);
 
15008
        }
 
15009
        if (flags & NDR_OUT) {
 
15010
                if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
 
15011
                        NDR_PULL_ALLOC(ndr, r->out.dom_trust_list);
 
15012
                }
 
15013
                _mem_save_dom_trust_list_0 = NDR_PULL_GET_MEM_CTX(ndr);
 
15014
                NDR_PULL_SET_MEM_CTX(ndr, r->out.dom_trust_list, LIBNDR_FLAG_REF_ALLOC);
 
15015
                NDR_CHECK(ndr_pull_netr_DomainTrustList(ndr, NDR_SCALARS|NDR_BUFFERS, r->out.dom_trust_list));
 
15016
                NDR_PULL_SET_MEM_CTX(ndr, _mem_save_dom_trust_list_0, LIBNDR_FLAG_REF_ALLOC);
 
15017
                NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result));
 
15018
        }
 
15019
        return NDR_ERR_SUCCESS;
 
15020
}
 
15021
 
 
15022
_PUBLIC_ void ndr_print_netr_NetrEnumerateTrustedDomainsEx(struct ndr_print *ndr, const char *name, int flags, const struct netr_NetrEnumerateTrustedDomainsEx *r)
 
15023
{
 
15024
        ndr_print_struct(ndr, name, "netr_NetrEnumerateTrustedDomainsEx");
 
15025
        ndr->depth++;
 
15026
        if (flags & NDR_SET_VALUES) {
 
15027
                ndr->flags |= LIBNDR_PRINT_SET_VALUES;
 
15028
        }
 
15029
        if (flags & NDR_IN) {
 
15030
                ndr_print_struct(ndr, "in", "netr_NetrEnumerateTrustedDomainsEx");
 
15031
                ndr->depth++;
 
15032
                ndr_print_ptr(ndr, "server_name", r->in.server_name);
 
15033
                ndr->depth++;
 
15034
                if (r->in.server_name) {
 
15035
                        ndr_print_string(ndr, "server_name", r->in.server_name);
 
15036
                }
 
15037
                ndr->depth--;
 
15038
                ndr->depth--;
 
15039
        }
 
15040
        if (flags & NDR_OUT) {
 
15041
                ndr_print_struct(ndr, "out", "netr_NetrEnumerateTrustedDomainsEx");
 
15042
                ndr->depth++;
 
15043
                ndr_print_ptr(ndr, "dom_trust_list", r->out.dom_trust_list);
 
15044
                ndr->depth++;
 
15045
                ndr_print_netr_DomainTrustList(ndr, "dom_trust_list", r->out.dom_trust_list);
 
15046
                ndr->depth--;
 
15047
                ndr_print_WERROR(ndr, "result", r->out.result);
 
15048
                ndr->depth--;
 
15049
        }
 
15050
        ndr->depth--;
 
15051
}
 
15052
 
 
15053
static enum ndr_err_code ndr_push_netr_DsRAddressToSitenamesExW(struct ndr_push *ndr, int flags, const struct netr_DsRAddressToSitenamesExW *r)
 
15054
{
 
15055
        uint32_t cntr_addresses_1;
 
15056
        if (flags & NDR_IN) {
 
15057
                NDR_CHECK(ndr_push_unique_ptr(ndr, r->in.server_name));
 
15058
                if (r->in.server_name) {
 
15059
                        NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->in.server_name, CH_UTF16)));
 
15060
                        NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, 0));
 
15061
                        NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->in.server_name, CH_UTF16)));
 
15062
                        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));
 
15063
                }
 
15064
                NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->in.count));
 
15065
                if (r->in.addresses == NULL) {
 
15066
                        return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
 
15067
                }
 
15068
                NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, r->in.count));
 
15069
                for (cntr_addresses_1 = 0; cntr_addresses_1 < r->in.count; cntr_addresses_1++) {
 
15070
                        NDR_CHECK(ndr_push_netr_DsRAddress(ndr, NDR_SCALARS, &r->in.addresses[cntr_addresses_1]));
 
15071
                }
 
15072
                for (cntr_addresses_1 = 0; cntr_addresses_1 < r->in.count; cntr_addresses_1++) {
 
15073
                        NDR_CHECK(ndr_push_netr_DsRAddress(ndr, NDR_BUFFERS, &r->in.addresses[cntr_addresses_1]));
 
15074
                }
 
15075
        }
 
15076
        if (flags & NDR_OUT) {
 
15077
                if (r->out.ctr == NULL) {
 
15078
                        return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
 
15079
                }
 
15080
                NDR_CHECK(ndr_push_unique_ptr(ndr, *r->out.ctr));
 
15081
                if (*r->out.ctr) {
 
15082
                        NDR_CHECK(ndr_push_netr_DsRAddressToSitenamesExWCtr(ndr, NDR_SCALARS|NDR_BUFFERS, *r->out.ctr));
 
15083
                }
 
15084
                NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result));
 
15085
        }
 
15086
        return NDR_ERR_SUCCESS;
 
15087
}
 
15088
 
 
15089
static enum ndr_err_code ndr_pull_netr_DsRAddressToSitenamesExW(struct ndr_pull *ndr, int flags, struct netr_DsRAddressToSitenamesExW *r)
 
15090
{
 
15091
        uint32_t _ptr_server_name;
 
15092
        uint32_t cntr_addresses_1;
 
15093
        uint32_t _ptr_ctr;
 
15094
        TALLOC_CTX *_mem_save_server_name_0;
 
15095
        TALLOC_CTX *_mem_save_addresses_1;
 
15096
        TALLOC_CTX *_mem_save_ctr_0;
 
15097
        TALLOC_CTX *_mem_save_ctr_1;
 
15098
        if (flags & NDR_IN) {
 
15099
                ZERO_STRUCT(r->out);
 
15100
 
 
15101
                NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_server_name));
 
15102
                if (_ptr_server_name) {
 
15103
                        NDR_PULL_ALLOC(ndr, r->in.server_name);
 
15104
                } else {
 
15105
                        r->in.server_name = NULL;
 
15106
                }
 
15107
                if (r->in.server_name) {
 
15108
                        _mem_save_server_name_0 = NDR_PULL_GET_MEM_CTX(ndr);
 
15109
                        NDR_PULL_SET_MEM_CTX(ndr, r->in.server_name, 0);
 
15110
                        NDR_CHECK(ndr_pull_array_size(ndr, &r->in.server_name));
 
15111
                        NDR_CHECK(ndr_pull_array_length(ndr, &r->in.server_name));
 
15112
                        if (ndr_get_array_length(ndr, &r->in.server_name) > ndr_get_array_size(ndr, &r->in.server_name)) {
 
15113
                                return 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));
 
15114
                        }
 
15115
                        NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->in.server_name), sizeof(uint16_t)));
 
15116
                        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));
 
15117
                        NDR_PULL_SET_MEM_CTX(ndr, _mem_save_server_name_0, 0);
 
15118
                }
 
15119
                NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->in.count));
 
15120
                if (r->in.count > 32000) {
 
15121
                        return ndr_pull_error(ndr, NDR_ERR_RANGE, "value out of range");
 
15122
                }
 
15123
                NDR_CHECK(ndr_pull_array_size(ndr, &r->in.addresses));
 
15124
                if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
 
15125
                        NDR_PULL_ALLOC_N(ndr, r->in.addresses, ndr_get_array_size(ndr, &r->in.addresses));
 
15126
                }
 
15127
                _mem_save_addresses_1 = NDR_PULL_GET_MEM_CTX(ndr);
 
15128
                NDR_PULL_SET_MEM_CTX(ndr, r->in.addresses, 0);
 
15129
                for (cntr_addresses_1 = 0; cntr_addresses_1 < r->in.count; cntr_addresses_1++) {
 
15130
                        NDR_CHECK(ndr_pull_netr_DsRAddress(ndr, NDR_SCALARS, &r->in.addresses[cntr_addresses_1]));
 
15131
                }
 
15132
                for (cntr_addresses_1 = 0; cntr_addresses_1 < r->in.count; cntr_addresses_1++) {
 
15133
                        NDR_CHECK(ndr_pull_netr_DsRAddress(ndr, NDR_BUFFERS, &r->in.addresses[cntr_addresses_1]));
 
15134
                }
 
15135
                NDR_PULL_SET_MEM_CTX(ndr, _mem_save_addresses_1, 0);
 
15136
                NDR_PULL_ALLOC(ndr, r->out.ctr);
 
15137
                ZERO_STRUCTP(r->out.ctr);
 
15138
                if (r->in.addresses) {
 
15139
                        NDR_CHECK(ndr_check_array_size(ndr, (void*)&r->in.addresses, r->in.count));
 
15140
                }
 
15141
        }
 
15142
        if (flags & NDR_OUT) {
 
15143
                if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
 
15144
                        NDR_PULL_ALLOC(ndr, r->out.ctr);
 
15145
                }
 
15146
                _mem_save_ctr_0 = NDR_PULL_GET_MEM_CTX(ndr);
 
15147
                NDR_PULL_SET_MEM_CTX(ndr, r->out.ctr, LIBNDR_FLAG_REF_ALLOC);
 
15148
                NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_ctr));
 
15149
                if (_ptr_ctr) {
 
15150
                        NDR_PULL_ALLOC(ndr, *r->out.ctr);
 
15151
                } else {
 
15152
                        *r->out.ctr = NULL;
 
15153
                }
 
15154
                if (*r->out.ctr) {
 
15155
                        _mem_save_ctr_1 = NDR_PULL_GET_MEM_CTX(ndr);
 
15156
                        NDR_PULL_SET_MEM_CTX(ndr, *r->out.ctr, 0);
 
15157
                        NDR_CHECK(ndr_pull_netr_DsRAddressToSitenamesExWCtr(ndr, NDR_SCALARS|NDR_BUFFERS, *r->out.ctr));
 
15158
                        NDR_PULL_SET_MEM_CTX(ndr, _mem_save_ctr_1, 0);
 
15159
                }
 
15160
                NDR_PULL_SET_MEM_CTX(ndr, _mem_save_ctr_0, LIBNDR_FLAG_REF_ALLOC);
 
15161
                NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result));
 
15162
        }
 
15163
        return NDR_ERR_SUCCESS;
 
15164
}
 
15165
 
 
15166
_PUBLIC_ void ndr_print_netr_DsRAddressToSitenamesExW(struct ndr_print *ndr, const char *name, int flags, const struct netr_DsRAddressToSitenamesExW *r)
 
15167
{
 
15168
        uint32_t cntr_addresses_1;
 
15169
        ndr_print_struct(ndr, name, "netr_DsRAddressToSitenamesExW");
 
15170
        ndr->depth++;
 
15171
        if (flags & NDR_SET_VALUES) {
 
15172
                ndr->flags |= LIBNDR_PRINT_SET_VALUES;
 
15173
        }
 
15174
        if (flags & NDR_IN) {
 
15175
                ndr_print_struct(ndr, "in", "netr_DsRAddressToSitenamesExW");
 
15176
                ndr->depth++;
 
15177
                ndr_print_ptr(ndr, "server_name", r->in.server_name);
 
15178
                ndr->depth++;
 
15179
                if (r->in.server_name) {
 
15180
                        ndr_print_string(ndr, "server_name", r->in.server_name);
 
15181
                }
 
15182
                ndr->depth--;
 
15183
                ndr_print_uint32(ndr, "count", r->in.count);
 
15184
                ndr_print_ptr(ndr, "addresses", r->in.addresses);
 
15185
                ndr->depth++;
 
15186
                ndr->print(ndr, "%s: ARRAY(%d)", "addresses", (int)r->in.count);
 
15187
                ndr->depth++;
 
15188
                for (cntr_addresses_1=0;cntr_addresses_1<r->in.count;cntr_addresses_1++) {
 
15189
                        char *idx_1=NULL;
 
15190
                        if (asprintf(&idx_1, "[%d]", cntr_addresses_1) != -1) {
 
15191
                                ndr_print_netr_DsRAddress(ndr, "addresses", &r->in.addresses[cntr_addresses_1]);
 
15192
                                free(idx_1);
 
15193
                        }
 
15194
                }
 
15195
                ndr->depth--;
 
15196
                ndr->depth--;
 
15197
                ndr->depth--;
 
15198
        }
 
15199
        if (flags & NDR_OUT) {
 
15200
                ndr_print_struct(ndr, "out", "netr_DsRAddressToSitenamesExW");
 
15201
                ndr->depth++;
 
15202
                ndr_print_ptr(ndr, "ctr", r->out.ctr);
 
15203
                ndr->depth++;
 
15204
                ndr_print_ptr(ndr, "ctr", *r->out.ctr);
 
15205
                ndr->depth++;
 
15206
                if (*r->out.ctr) {
 
15207
                        ndr_print_netr_DsRAddressToSitenamesExWCtr(ndr, "ctr", *r->out.ctr);
 
15208
                }
 
15209
                ndr->depth--;
 
15210
                ndr->depth--;
 
15211
                ndr_print_WERROR(ndr, "result", r->out.result);
 
15212
                ndr->depth--;
 
15213
        }
 
15214
        ndr->depth--;
 
15215
}
 
15216
 
 
15217
static enum ndr_err_code ndr_push_netr_DsrGetDcSiteCoverageW(struct ndr_push *ndr, int flags, const struct netr_DsrGetDcSiteCoverageW *r)
 
15218
{
 
15219
        if (flags & NDR_IN) {
 
15220
                NDR_CHECK(ndr_push_unique_ptr(ndr, r->in.server_name));
 
15221
                if (r->in.server_name) {
 
15222
                        NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->in.server_name, CH_UTF16)));
 
15223
                        NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, 0));
 
15224
                        NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->in.server_name, CH_UTF16)));
 
15225
                        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));
 
15226
                }
 
15227
        }
 
15228
        if (flags & NDR_OUT) {
 
15229
                if (r->out.ctr == NULL) {
 
15230
                        return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
 
15231
                }
 
15232
                NDR_CHECK(ndr_push_unique_ptr(ndr, *r->out.ctr));
 
15233
                if (*r->out.ctr) {
 
15234
                        NDR_CHECK(ndr_push_DcSitesCtr(ndr, NDR_SCALARS|NDR_BUFFERS, *r->out.ctr));
 
15235
                }
 
15236
                NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result));
 
15237
        }
 
15238
        return NDR_ERR_SUCCESS;
 
15239
}
 
15240
 
 
15241
static enum ndr_err_code ndr_pull_netr_DsrGetDcSiteCoverageW(struct ndr_pull *ndr, int flags, struct netr_DsrGetDcSiteCoverageW *r)
 
15242
{
 
15243
        uint32_t _ptr_server_name;
 
15244
        uint32_t _ptr_ctr;
 
15245
        TALLOC_CTX *_mem_save_server_name_0;
 
15246
        TALLOC_CTX *_mem_save_ctr_0;
 
15247
        TALLOC_CTX *_mem_save_ctr_1;
 
15248
        if (flags & NDR_IN) {
 
15249
                ZERO_STRUCT(r->out);
 
15250
 
 
15251
                NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_server_name));
 
15252
                if (_ptr_server_name) {
 
15253
                        NDR_PULL_ALLOC(ndr, r->in.server_name);
 
15254
                } else {
 
15255
                        r->in.server_name = NULL;
 
15256
                }
 
15257
                if (r->in.server_name) {
 
15258
                        _mem_save_server_name_0 = NDR_PULL_GET_MEM_CTX(ndr);
 
15259
                        NDR_PULL_SET_MEM_CTX(ndr, r->in.server_name, 0);
 
15260
                        NDR_CHECK(ndr_pull_array_size(ndr, &r->in.server_name));
 
15261
                        NDR_CHECK(ndr_pull_array_length(ndr, &r->in.server_name));
 
15262
                        if (ndr_get_array_length(ndr, &r->in.server_name) > ndr_get_array_size(ndr, &r->in.server_name)) {
 
15263
                                return 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));
 
15264
                        }
 
15265
                        NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->in.server_name), sizeof(uint16_t)));
 
15266
                        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));
 
15267
                        NDR_PULL_SET_MEM_CTX(ndr, _mem_save_server_name_0, 0);
 
15268
                }
 
15269
                NDR_PULL_ALLOC(ndr, r->out.ctr);
 
15270
                ZERO_STRUCTP(r->out.ctr);
 
15271
        }
 
15272
        if (flags & NDR_OUT) {
 
15273
                if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
 
15274
                        NDR_PULL_ALLOC(ndr, r->out.ctr);
 
15275
                }
 
15276
                _mem_save_ctr_0 = NDR_PULL_GET_MEM_CTX(ndr);
 
15277
                NDR_PULL_SET_MEM_CTX(ndr, r->out.ctr, LIBNDR_FLAG_REF_ALLOC);
 
15278
                NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_ctr));
 
15279
                if (_ptr_ctr) {
 
15280
                        NDR_PULL_ALLOC(ndr, *r->out.ctr);
 
15281
                } else {
 
15282
                        *r->out.ctr = NULL;
 
15283
                }
 
15284
                if (*r->out.ctr) {
 
15285
                        _mem_save_ctr_1 = NDR_PULL_GET_MEM_CTX(ndr);
 
15286
                        NDR_PULL_SET_MEM_CTX(ndr, *r->out.ctr, 0);
 
15287
                        NDR_CHECK(ndr_pull_DcSitesCtr(ndr, NDR_SCALARS|NDR_BUFFERS, *r->out.ctr));
 
15288
                        NDR_PULL_SET_MEM_CTX(ndr, _mem_save_ctr_1, 0);
 
15289
                }
 
15290
                NDR_PULL_SET_MEM_CTX(ndr, _mem_save_ctr_0, LIBNDR_FLAG_REF_ALLOC);
 
15291
                NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result));
 
15292
        }
 
15293
        return NDR_ERR_SUCCESS;
 
15294
}
 
15295
 
 
15296
_PUBLIC_ void ndr_print_netr_DsrGetDcSiteCoverageW(struct ndr_print *ndr, const char *name, int flags, const struct netr_DsrGetDcSiteCoverageW *r)
 
15297
{
 
15298
        ndr_print_struct(ndr, name, "netr_DsrGetDcSiteCoverageW");
 
15299
        ndr->depth++;
 
15300
        if (flags & NDR_SET_VALUES) {
 
15301
                ndr->flags |= LIBNDR_PRINT_SET_VALUES;
 
15302
        }
 
15303
        if (flags & NDR_IN) {
 
15304
                ndr_print_struct(ndr, "in", "netr_DsrGetDcSiteCoverageW");
 
15305
                ndr->depth++;
 
15306
                ndr_print_ptr(ndr, "server_name", r->in.server_name);
 
15307
                ndr->depth++;
 
15308
                if (r->in.server_name) {
 
15309
                        ndr_print_string(ndr, "server_name", r->in.server_name);
 
15310
                }
 
15311
                ndr->depth--;
 
15312
                ndr->depth--;
 
15313
        }
 
15314
        if (flags & NDR_OUT) {
 
15315
                ndr_print_struct(ndr, "out", "netr_DsrGetDcSiteCoverageW");
 
15316
                ndr->depth++;
 
15317
                ndr_print_ptr(ndr, "ctr", r->out.ctr);
 
15318
                ndr->depth++;
 
15319
                ndr_print_ptr(ndr, "ctr", *r->out.ctr);
 
15320
                ndr->depth++;
 
15321
                if (*r->out.ctr) {
 
15322
                        ndr_print_DcSitesCtr(ndr, "ctr", *r->out.ctr);
 
15323
                }
 
15324
                ndr->depth--;
 
15325
                ndr->depth--;
 
15326
                ndr_print_WERROR(ndr, "result", r->out.result);
 
15327
                ndr->depth--;
 
15328
        }
 
15329
        ndr->depth--;
 
15330
}
 
15331
 
 
15332
static enum ndr_err_code ndr_push_netr_LogonSamLogonEx(struct ndr_push *ndr, int flags, const struct netr_LogonSamLogonEx *r)
 
15333
{
 
15334
        if (flags & NDR_IN) {
 
15335
                NDR_CHECK(ndr_push_unique_ptr(ndr, r->in.server_name));
 
15336
                if (r->in.server_name) {
 
15337
                        NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->in.server_name, CH_UTF16)));
 
15338
                        NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, 0));
 
15339
                        NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->in.server_name, CH_UTF16)));
 
15340
                        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));
 
15341
                }
 
15342
                NDR_CHECK(ndr_push_unique_ptr(ndr, r->in.computer_name));
 
15343
                if (r->in.computer_name) {
 
15344
                        NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->in.computer_name, CH_UTF16)));
 
15345
                        NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, 0));
 
15346
                        NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->in.computer_name, CH_UTF16)));
 
15347
                        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));
 
15348
                }
 
15349
                NDR_CHECK(ndr_push_netr_LogonInfoClass(ndr, NDR_SCALARS, r->in.logon_level));
 
15350
                if (r->in.logon == NULL) {
 
15351
                        return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
 
15352
                }
 
15353
                NDR_CHECK(ndr_push_set_switch_value(ndr, r->in.logon, r->in.logon_level));
 
15354
                NDR_CHECK(ndr_push_netr_LogonLevel(ndr, NDR_SCALARS|NDR_BUFFERS, r->in.logon));
 
15355
                NDR_CHECK(ndr_push_uint16(ndr, NDR_SCALARS, r->in.validation_level));
 
15356
                if (r->in.flags == NULL) {
 
15357
                        return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
 
15358
                }
 
15359
                NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, *r->in.flags));
 
15360
        }
 
15361
        if (flags & NDR_OUT) {
 
15362
                if (r->out.validation == NULL) {
 
15363
                        return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
 
15364
                }
 
15365
                NDR_CHECK(ndr_push_set_switch_value(ndr, r->out.validation, r->in.validation_level));
 
15366
                NDR_CHECK(ndr_push_netr_Validation(ndr, NDR_SCALARS|NDR_BUFFERS, r->out.validation));
 
15367
                if (r->out.authoritative == NULL) {
 
15368
                        return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
 
15369
                }
 
15370
                NDR_CHECK(ndr_push_uint8(ndr, NDR_SCALARS, *r->out.authoritative));
 
15371
                if (r->out.flags == NULL) {
 
15372
                        return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
 
15373
                }
 
15374
                NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, *r->out.flags));
 
15375
                NDR_CHECK(ndr_push_NTSTATUS(ndr, NDR_SCALARS, r->out.result));
 
15376
        }
 
15377
        return NDR_ERR_SUCCESS;
 
15378
}
 
15379
 
 
15380
static enum ndr_err_code ndr_pull_netr_LogonSamLogonEx(struct ndr_pull *ndr, int flags, struct netr_LogonSamLogonEx *r)
 
15381
{
 
15382
        uint32_t _ptr_server_name;
 
15383
        uint32_t _ptr_computer_name;
 
15384
        TALLOC_CTX *_mem_save_server_name_0;
 
15385
        TALLOC_CTX *_mem_save_computer_name_0;
 
15386
        TALLOC_CTX *_mem_save_logon_0;
 
15387
        TALLOC_CTX *_mem_save_validation_0;
 
15388
        TALLOC_CTX *_mem_save_authoritative_0;
 
15389
        TALLOC_CTX *_mem_save_flags_0;
 
15390
        if (flags & NDR_IN) {
 
15391
                ZERO_STRUCT(r->out);
 
15392
 
 
15393
                NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_server_name));
 
15394
                if (_ptr_server_name) {
 
15395
                        NDR_PULL_ALLOC(ndr, r->in.server_name);
 
15396
                } else {
 
15397
                        r->in.server_name = NULL;
 
15398
                }
 
15399
                if (r->in.server_name) {
 
15400
                        _mem_save_server_name_0 = NDR_PULL_GET_MEM_CTX(ndr);
 
15401
                        NDR_PULL_SET_MEM_CTX(ndr, r->in.server_name, 0);
 
15402
                        NDR_CHECK(ndr_pull_array_size(ndr, &r->in.server_name));
 
15403
                        NDR_CHECK(ndr_pull_array_length(ndr, &r->in.server_name));
 
15404
                        if (ndr_get_array_length(ndr, &r->in.server_name) > ndr_get_array_size(ndr, &r->in.server_name)) {
 
15405
                                return 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));
 
15406
                        }
 
15407
                        NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->in.server_name), sizeof(uint16_t)));
 
15408
                        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));
 
15409
                        NDR_PULL_SET_MEM_CTX(ndr, _mem_save_server_name_0, 0);
 
15410
                }
 
15411
                NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_computer_name));
 
15412
                if (_ptr_computer_name) {
 
15413
                        NDR_PULL_ALLOC(ndr, r->in.computer_name);
 
15414
                } else {
 
15415
                        r->in.computer_name = NULL;
 
15416
                }
 
15417
                if (r->in.computer_name) {
 
15418
                        _mem_save_computer_name_0 = NDR_PULL_GET_MEM_CTX(ndr);
 
15419
                        NDR_PULL_SET_MEM_CTX(ndr, r->in.computer_name, 0);
 
15420
                        NDR_CHECK(ndr_pull_array_size(ndr, &r->in.computer_name));
 
15421
                        NDR_CHECK(ndr_pull_array_length(ndr, &r->in.computer_name));
 
15422
                        if (ndr_get_array_length(ndr, &r->in.computer_name) > ndr_get_array_size(ndr, &r->in.computer_name)) {
 
15423
                                return 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));
 
15424
                        }
 
15425
                        NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->in.computer_name), sizeof(uint16_t)));
 
15426
                        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));
 
15427
                        NDR_PULL_SET_MEM_CTX(ndr, _mem_save_computer_name_0, 0);
 
15428
                }
 
15429
                NDR_CHECK(ndr_pull_netr_LogonInfoClass(ndr, NDR_SCALARS, &r->in.logon_level));
 
15430
                if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
 
15431
                        NDR_PULL_ALLOC(ndr, r->in.logon);
 
15432
                }
 
15433
                _mem_save_logon_0 = NDR_PULL_GET_MEM_CTX(ndr);
 
15434
                NDR_PULL_SET_MEM_CTX(ndr, r->in.logon, LIBNDR_FLAG_REF_ALLOC);
 
15435
                NDR_CHECK(ndr_pull_set_switch_value(ndr, r->in.logon, r->in.logon_level));
 
15436
                NDR_CHECK(ndr_pull_netr_LogonLevel(ndr, NDR_SCALARS|NDR_BUFFERS, r->in.logon));
 
15437
                NDR_PULL_SET_MEM_CTX(ndr, _mem_save_logon_0, LIBNDR_FLAG_REF_ALLOC);
 
15438
                NDR_CHECK(ndr_pull_uint16(ndr, NDR_SCALARS, &r->in.validation_level));
 
15439
                if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
 
15440
                        NDR_PULL_ALLOC(ndr, r->in.flags);
 
15441
                }
 
15442
                _mem_save_flags_0 = NDR_PULL_GET_MEM_CTX(ndr);
 
15443
                NDR_PULL_SET_MEM_CTX(ndr, r->in.flags, LIBNDR_FLAG_REF_ALLOC);
 
15444
                NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, r->in.flags));
 
15445
                NDR_PULL_SET_MEM_CTX(ndr, _mem_save_flags_0, LIBNDR_FLAG_REF_ALLOC);
 
15446
                NDR_PULL_ALLOC(ndr, r->out.validation);
 
15447
                ZERO_STRUCTP(r->out.validation);
 
15448
                NDR_PULL_ALLOC(ndr, r->out.authoritative);
 
15449
                ZERO_STRUCTP(r->out.authoritative);
 
15450
                NDR_PULL_ALLOC(ndr, r->out.flags);
 
15451
                *r->out.flags = *r->in.flags;
 
15452
        }
 
15453
        if (flags & NDR_OUT) {
 
15454
                if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
 
15455
                        NDR_PULL_ALLOC(ndr, r->out.validation);
 
15456
                }
 
15457
                _mem_save_validation_0 = NDR_PULL_GET_MEM_CTX(ndr);
 
15458
                NDR_PULL_SET_MEM_CTX(ndr, r->out.validation, LIBNDR_FLAG_REF_ALLOC);
 
15459
                NDR_CHECK(ndr_pull_set_switch_value(ndr, r->out.validation, r->in.validation_level));
 
15460
                NDR_CHECK(ndr_pull_netr_Validation(ndr, NDR_SCALARS|NDR_BUFFERS, r->out.validation));
 
15461
                NDR_PULL_SET_MEM_CTX(ndr, _mem_save_validation_0, LIBNDR_FLAG_REF_ALLOC);
 
15462
                if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
 
15463
                        NDR_PULL_ALLOC(ndr, r->out.authoritative);
 
15464
                }
 
15465
                _mem_save_authoritative_0 = NDR_PULL_GET_MEM_CTX(ndr);
 
15466
                NDR_PULL_SET_MEM_CTX(ndr, r->out.authoritative, LIBNDR_FLAG_REF_ALLOC);
 
15467
                NDR_CHECK(ndr_pull_uint8(ndr, NDR_SCALARS, r->out.authoritative));
 
15468
                NDR_PULL_SET_MEM_CTX(ndr, _mem_save_authoritative_0, LIBNDR_FLAG_REF_ALLOC);
 
15469
                if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
 
15470
                        NDR_PULL_ALLOC(ndr, r->out.flags);
 
15471
                }
 
15472
                _mem_save_flags_0 = NDR_PULL_GET_MEM_CTX(ndr);
 
15473
                NDR_PULL_SET_MEM_CTX(ndr, r->out.flags, LIBNDR_FLAG_REF_ALLOC);
 
15474
                NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, r->out.flags));
 
15475
                NDR_PULL_SET_MEM_CTX(ndr, _mem_save_flags_0, LIBNDR_FLAG_REF_ALLOC);
 
15476
                NDR_CHECK(ndr_pull_NTSTATUS(ndr, NDR_SCALARS, &r->out.result));
 
15477
        }
 
15478
        return NDR_ERR_SUCCESS;
 
15479
}
 
15480
 
 
15481
_PUBLIC_ void ndr_print_netr_LogonSamLogonEx(struct ndr_print *ndr, const char *name, int flags, const struct netr_LogonSamLogonEx *r)
 
15482
{
 
15483
        ndr_print_struct(ndr, name, "netr_LogonSamLogonEx");
 
15484
        ndr->depth++;
 
15485
        if (flags & NDR_SET_VALUES) {
 
15486
                ndr->flags |= LIBNDR_PRINT_SET_VALUES;
 
15487
        }
 
15488
        if (flags & NDR_IN) {
 
15489
                ndr_print_struct(ndr, "in", "netr_LogonSamLogonEx");
 
15490
                ndr->depth++;
 
15491
                ndr_print_ptr(ndr, "server_name", r->in.server_name);
 
15492
                ndr->depth++;
 
15493
                if (r->in.server_name) {
 
15494
                        ndr_print_string(ndr, "server_name", r->in.server_name);
 
15495
                }
 
15496
                ndr->depth--;
 
15497
                ndr_print_ptr(ndr, "computer_name", r->in.computer_name);
 
15498
                ndr->depth++;
 
15499
                if (r->in.computer_name) {
 
15500
                        ndr_print_string(ndr, "computer_name", r->in.computer_name);
 
15501
                }
 
15502
                ndr->depth--;
 
15503
                ndr_print_netr_LogonInfoClass(ndr, "logon_level", r->in.logon_level);
 
15504
                ndr_print_ptr(ndr, "logon", r->in.logon);
 
15505
                ndr->depth++;
 
15506
                ndr_print_set_switch_value(ndr, r->in.logon, r->in.logon_level);
 
15507
                ndr_print_netr_LogonLevel(ndr, "logon", r->in.logon);
 
15508
                ndr->depth--;
 
15509
                ndr_print_uint16(ndr, "validation_level", r->in.validation_level);
 
15510
                ndr_print_ptr(ndr, "flags", r->in.flags);
 
15511
                ndr->depth++;
 
15512
                ndr_print_uint32(ndr, "flags", *r->in.flags);
 
15513
                ndr->depth--;
 
15514
                ndr->depth--;
 
15515
        }
 
15516
        if (flags & NDR_OUT) {
 
15517
                ndr_print_struct(ndr, "out", "netr_LogonSamLogonEx");
 
15518
                ndr->depth++;
 
15519
                ndr_print_ptr(ndr, "validation", r->out.validation);
 
15520
                ndr->depth++;
 
15521
                ndr_print_set_switch_value(ndr, r->out.validation, r->in.validation_level);
 
15522
                ndr_print_netr_Validation(ndr, "validation", r->out.validation);
 
15523
                ndr->depth--;
 
15524
                ndr_print_ptr(ndr, "authoritative", r->out.authoritative);
 
15525
                ndr->depth++;
 
15526
                ndr_print_uint8(ndr, "authoritative", *r->out.authoritative);
 
15527
                ndr->depth--;
 
15528
                ndr_print_ptr(ndr, "flags", r->out.flags);
 
15529
                ndr->depth++;
 
15530
                ndr_print_uint32(ndr, "flags", *r->out.flags);
 
15531
                ndr->depth--;
 
15532
                ndr_print_NTSTATUS(ndr, "result", r->out.result);
 
15533
                ndr->depth--;
 
15534
        }
 
15535
        ndr->depth--;
 
15536
}
 
15537
 
 
15538
static enum ndr_err_code ndr_push_netr_DsrEnumerateDomainTrusts(struct ndr_push *ndr, int flags, const struct netr_DsrEnumerateDomainTrusts *r)
 
15539
{
 
15540
        if (flags & NDR_IN) {
 
15541
                NDR_CHECK(ndr_push_unique_ptr(ndr, r->in.server_name));
 
15542
                if (r->in.server_name) {
 
15543
                        NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->in.server_name, CH_UTF16)));
 
15544
                        NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, 0));
 
15545
                        NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->in.server_name, CH_UTF16)));
 
15546
                        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));
 
15547
                }
 
15548
                NDR_CHECK(ndr_push_netr_TrustFlags(ndr, NDR_SCALARS, r->in.trust_flags));
 
15549
        }
 
15550
        if (flags & NDR_OUT) {
 
15551
                if (r->out.trusts == NULL) {
 
15552
                        return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
 
15553
                }
 
15554
                NDR_CHECK(ndr_push_netr_DomainTrustList(ndr, NDR_SCALARS|NDR_BUFFERS, r->out.trusts));
 
15555
                NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result));
 
15556
        }
 
15557
        return NDR_ERR_SUCCESS;
 
15558
}
 
15559
 
 
15560
static enum ndr_err_code ndr_pull_netr_DsrEnumerateDomainTrusts(struct ndr_pull *ndr, int flags, struct netr_DsrEnumerateDomainTrusts *r)
 
15561
{
 
15562
        uint32_t _ptr_server_name;
 
15563
        TALLOC_CTX *_mem_save_server_name_0;
 
15564
        TALLOC_CTX *_mem_save_trusts_0;
 
15565
        if (flags & NDR_IN) {
 
15566
                ZERO_STRUCT(r->out);
 
15567
 
 
15568
                NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_server_name));
 
15569
                if (_ptr_server_name) {
 
15570
                        NDR_PULL_ALLOC(ndr, r->in.server_name);
 
15571
                } else {
 
15572
                        r->in.server_name = NULL;
 
15573
                }
 
15574
                if (r->in.server_name) {
 
15575
                        _mem_save_server_name_0 = NDR_PULL_GET_MEM_CTX(ndr);
 
15576
                        NDR_PULL_SET_MEM_CTX(ndr, r->in.server_name, 0);
 
15577
                        NDR_CHECK(ndr_pull_array_size(ndr, &r->in.server_name));
 
15578
                        NDR_CHECK(ndr_pull_array_length(ndr, &r->in.server_name));
 
15579
                        if (ndr_get_array_length(ndr, &r->in.server_name) > ndr_get_array_size(ndr, &r->in.server_name)) {
 
15580
                                return 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));
 
15581
                        }
 
15582
                        NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->in.server_name), sizeof(uint16_t)));
 
15583
                        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));
 
15584
                        NDR_PULL_SET_MEM_CTX(ndr, _mem_save_server_name_0, 0);
 
15585
                }
 
15586
                NDR_CHECK(ndr_pull_netr_TrustFlags(ndr, NDR_SCALARS, &r->in.trust_flags));
 
15587
                NDR_PULL_ALLOC(ndr, r->out.trusts);
 
15588
                ZERO_STRUCTP(r->out.trusts);
 
15589
        }
 
15590
        if (flags & NDR_OUT) {
 
15591
                if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
 
15592
                        NDR_PULL_ALLOC(ndr, r->out.trusts);
 
15593
                }
 
15594
                _mem_save_trusts_0 = NDR_PULL_GET_MEM_CTX(ndr);
 
15595
                NDR_PULL_SET_MEM_CTX(ndr, r->out.trusts, LIBNDR_FLAG_REF_ALLOC);
 
15596
                NDR_CHECK(ndr_pull_netr_DomainTrustList(ndr, NDR_SCALARS|NDR_BUFFERS, r->out.trusts));
 
15597
                NDR_PULL_SET_MEM_CTX(ndr, _mem_save_trusts_0, LIBNDR_FLAG_REF_ALLOC);
 
15598
                NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result));
 
15599
        }
 
15600
        return NDR_ERR_SUCCESS;
 
15601
}
 
15602
 
 
15603
_PUBLIC_ void ndr_print_netr_DsrEnumerateDomainTrusts(struct ndr_print *ndr, const char *name, int flags, const struct netr_DsrEnumerateDomainTrusts *r)
 
15604
{
 
15605
        ndr_print_struct(ndr, name, "netr_DsrEnumerateDomainTrusts");
 
15606
        ndr->depth++;
 
15607
        if (flags & NDR_SET_VALUES) {
 
15608
                ndr->flags |= LIBNDR_PRINT_SET_VALUES;
 
15609
        }
 
15610
        if (flags & NDR_IN) {
 
15611
                ndr_print_struct(ndr, "in", "netr_DsrEnumerateDomainTrusts");
 
15612
                ndr->depth++;
 
15613
                ndr_print_ptr(ndr, "server_name", r->in.server_name);
 
15614
                ndr->depth++;
 
15615
                if (r->in.server_name) {
 
15616
                        ndr_print_string(ndr, "server_name", r->in.server_name);
 
15617
                }
 
15618
                ndr->depth--;
 
15619
                ndr_print_netr_TrustFlags(ndr, "trust_flags", r->in.trust_flags);
 
15620
                ndr->depth--;
 
15621
        }
 
15622
        if (flags & NDR_OUT) {
 
15623
                ndr_print_struct(ndr, "out", "netr_DsrEnumerateDomainTrusts");
 
15624
                ndr->depth++;
 
15625
                ndr_print_ptr(ndr, "trusts", r->out.trusts);
 
15626
                ndr->depth++;
 
15627
                ndr_print_netr_DomainTrustList(ndr, "trusts", r->out.trusts);
 
15628
                ndr->depth--;
 
15629
                ndr_print_WERROR(ndr, "result", r->out.result);
 
15630
                ndr->depth--;
 
15631
        }
 
15632
        ndr->depth--;
 
15633
}
 
15634
 
 
15635
static enum ndr_err_code ndr_push_netr_DsrDeregisterDNSHostRecords(struct ndr_push *ndr, int flags, const struct netr_DsrDeregisterDNSHostRecords *r)
 
15636
{
 
15637
        if (flags & NDR_IN) {
 
15638
                NDR_CHECK(ndr_push_unique_ptr(ndr, r->in.server_name));
 
15639
                if (r->in.server_name) {
 
15640
                        NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->in.server_name, CH_UTF16)));
 
15641
                        NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, 0));
 
15642
                        NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->in.server_name, CH_UTF16)));
 
15643
                        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));
 
15644
                }
 
15645
                NDR_CHECK(ndr_push_unique_ptr(ndr, r->in.domain));
 
15646
                if (r->in.domain) {
 
15647
                        NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->in.domain, CH_UTF16)));
 
15648
                        NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, 0));
 
15649
                        NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->in.domain, CH_UTF16)));
 
15650
                        NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->in.domain, ndr_charset_length(r->in.domain, CH_UTF16), sizeof(uint16_t), CH_UTF16));
 
15651
                }
 
15652
                NDR_CHECK(ndr_push_unique_ptr(ndr, r->in.domain_guid));
 
15653
                if (r->in.domain_guid) {
 
15654
                        NDR_CHECK(ndr_push_GUID(ndr, NDR_SCALARS, r->in.domain_guid));
 
15655
                }
 
15656
                NDR_CHECK(ndr_push_unique_ptr(ndr, r->in.dsa_guid));
 
15657
                if (r->in.dsa_guid) {
 
15658
                        NDR_CHECK(ndr_push_GUID(ndr, NDR_SCALARS, r->in.dsa_guid));
 
15659
                }
 
15660
                if (r->in.dns_host == NULL) {
 
15661
                        return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
 
15662
                }
 
15663
                NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->in.dns_host, CH_UTF16)));
 
15664
                NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, 0));
 
15665
                NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->in.dns_host, CH_UTF16)));
 
15666
                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));
 
15667
        }
 
15668
        if (flags & NDR_OUT) {
 
15669
                NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result));
 
15670
        }
 
15671
        return NDR_ERR_SUCCESS;
 
15672
}
 
15673
 
 
15674
static enum ndr_err_code ndr_pull_netr_DsrDeregisterDNSHostRecords(struct ndr_pull *ndr, int flags, struct netr_DsrDeregisterDNSHostRecords *r)
 
15675
{
 
15676
        uint32_t _ptr_server_name;
 
15677
        uint32_t _ptr_domain;
 
15678
        uint32_t _ptr_domain_guid;
 
15679
        uint32_t _ptr_dsa_guid;
 
15680
        TALLOC_CTX *_mem_save_server_name_0;
 
15681
        TALLOC_CTX *_mem_save_domain_0;
 
15682
        TALLOC_CTX *_mem_save_domain_guid_0;
 
15683
        TALLOC_CTX *_mem_save_dsa_guid_0;
 
15684
        if (flags & NDR_IN) {
 
15685
                NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_server_name));
 
15686
                if (_ptr_server_name) {
 
15687
                        NDR_PULL_ALLOC(ndr, r->in.server_name);
 
15688
                } else {
 
15689
                        r->in.server_name = NULL;
 
15690
                }
 
15691
                if (r->in.server_name) {
 
15692
                        _mem_save_server_name_0 = NDR_PULL_GET_MEM_CTX(ndr);
 
15693
                        NDR_PULL_SET_MEM_CTX(ndr, r->in.server_name, 0);
 
15694
                        NDR_CHECK(ndr_pull_array_size(ndr, &r->in.server_name));
 
15695
                        NDR_CHECK(ndr_pull_array_length(ndr, &r->in.server_name));
 
15696
                        if (ndr_get_array_length(ndr, &r->in.server_name) > ndr_get_array_size(ndr, &r->in.server_name)) {
 
15697
                                return 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));
 
15698
                        }
 
15699
                        NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->in.server_name), sizeof(uint16_t)));
 
15700
                        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));
 
15701
                        NDR_PULL_SET_MEM_CTX(ndr, _mem_save_server_name_0, 0);
 
15702
                }
 
15703
                NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_domain));
 
15704
                if (_ptr_domain) {
 
15705
                        NDR_PULL_ALLOC(ndr, r->in.domain);
 
15706
                } else {
 
15707
                        r->in.domain = NULL;
 
15708
                }
 
15709
                if (r->in.domain) {
 
15710
                        _mem_save_domain_0 = NDR_PULL_GET_MEM_CTX(ndr);
 
15711
                        NDR_PULL_SET_MEM_CTX(ndr, r->in.domain, 0);
 
15712
                        NDR_CHECK(ndr_pull_array_size(ndr, &r->in.domain));
 
15713
                        NDR_CHECK(ndr_pull_array_length(ndr, &r->in.domain));
 
15714
                        if (ndr_get_array_length(ndr, &r->in.domain) > ndr_get_array_size(ndr, &r->in.domain)) {
 
15715
                                return 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));
 
15716
                        }
 
15717
                        NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->in.domain), sizeof(uint16_t)));
 
15718
                        NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->in.domain, ndr_get_array_length(ndr, &r->in.domain), sizeof(uint16_t), CH_UTF16));
 
15719
                        NDR_PULL_SET_MEM_CTX(ndr, _mem_save_domain_0, 0);
 
15720
                }
 
15721
                NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_domain_guid));
 
15722
                if (_ptr_domain_guid) {
 
15723
                        NDR_PULL_ALLOC(ndr, r->in.domain_guid);
 
15724
                } else {
 
15725
                        r->in.domain_guid = NULL;
 
15726
                }
 
15727
                if (r->in.domain_guid) {
 
15728
                        _mem_save_domain_guid_0 = NDR_PULL_GET_MEM_CTX(ndr);
 
15729
                        NDR_PULL_SET_MEM_CTX(ndr, r->in.domain_guid, 0);
 
15730
                        NDR_CHECK(ndr_pull_GUID(ndr, NDR_SCALARS, r->in.domain_guid));
 
15731
                        NDR_PULL_SET_MEM_CTX(ndr, _mem_save_domain_guid_0, 0);
 
15732
                }
 
15733
                NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_dsa_guid));
 
15734
                if (_ptr_dsa_guid) {
 
15735
                        NDR_PULL_ALLOC(ndr, r->in.dsa_guid);
 
15736
                } else {
 
15737
                        r->in.dsa_guid = NULL;
 
15738
                }
 
15739
                if (r->in.dsa_guid) {
 
15740
                        _mem_save_dsa_guid_0 = NDR_PULL_GET_MEM_CTX(ndr);
 
15741
                        NDR_PULL_SET_MEM_CTX(ndr, r->in.dsa_guid, 0);
 
15742
                        NDR_CHECK(ndr_pull_GUID(ndr, NDR_SCALARS, r->in.dsa_guid));
 
15743
                        NDR_PULL_SET_MEM_CTX(ndr, _mem_save_dsa_guid_0, 0);
 
15744
                }
 
15745
                NDR_CHECK(ndr_pull_array_size(ndr, &r->in.dns_host));
 
15746
                NDR_CHECK(ndr_pull_array_length(ndr, &r->in.dns_host));
 
15747
                if (ndr_get_array_length(ndr, &r->in.dns_host) > ndr_get_array_size(ndr, &r->in.dns_host)) {
 
15748
                        return 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));
 
15749
                }
 
15750
                NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->in.dns_host), sizeof(uint16_t)));
 
15751
                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));
 
15752
        }
 
15753
        if (flags & NDR_OUT) {
 
15754
                NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result));
 
15755
        }
 
15756
        return NDR_ERR_SUCCESS;
 
15757
}
 
15758
 
 
15759
_PUBLIC_ void ndr_print_netr_DsrDeregisterDNSHostRecords(struct ndr_print *ndr, const char *name, int flags, const struct netr_DsrDeregisterDNSHostRecords *r)
 
15760
{
 
15761
        ndr_print_struct(ndr, name, "netr_DsrDeregisterDNSHostRecords");
 
15762
        ndr->depth++;
 
15763
        if (flags & NDR_SET_VALUES) {
 
15764
                ndr->flags |= LIBNDR_PRINT_SET_VALUES;
 
15765
        }
 
15766
        if (flags & NDR_IN) {
 
15767
                ndr_print_struct(ndr, "in", "netr_DsrDeregisterDNSHostRecords");
 
15768
                ndr->depth++;
 
15769
                ndr_print_ptr(ndr, "server_name", r->in.server_name);
 
15770
                ndr->depth++;
 
15771
                if (r->in.server_name) {
 
15772
                        ndr_print_string(ndr, "server_name", r->in.server_name);
 
15773
                }
 
15774
                ndr->depth--;
 
15775
                ndr_print_ptr(ndr, "domain", r->in.domain);
 
15776
                ndr->depth++;
 
15777
                if (r->in.domain) {
 
15778
                        ndr_print_string(ndr, "domain", r->in.domain);
 
15779
                }
 
15780
                ndr->depth--;
 
15781
                ndr_print_ptr(ndr, "domain_guid", r->in.domain_guid);
 
15782
                ndr->depth++;
 
15783
                if (r->in.domain_guid) {
 
15784
                        ndr_print_GUID(ndr, "domain_guid", r->in.domain_guid);
 
15785
                }
 
15786
                ndr->depth--;
 
15787
                ndr_print_ptr(ndr, "dsa_guid", r->in.dsa_guid);
 
15788
                ndr->depth++;
 
15789
                if (r->in.dsa_guid) {
 
15790
                        ndr_print_GUID(ndr, "dsa_guid", r->in.dsa_guid);
 
15791
                }
 
15792
                ndr->depth--;
 
15793
                ndr_print_ptr(ndr, "dns_host", r->in.dns_host);
 
15794
                ndr->depth++;
 
15795
                ndr_print_string(ndr, "dns_host", r->in.dns_host);
 
15796
                ndr->depth--;
 
15797
                ndr->depth--;
 
15798
        }
 
15799
        if (flags & NDR_OUT) {
 
15800
                ndr_print_struct(ndr, "out", "netr_DsrDeregisterDNSHostRecords");
 
15801
                ndr->depth++;
 
15802
                ndr_print_WERROR(ndr, "result", r->out.result);
 
15803
                ndr->depth--;
 
15804
        }
 
15805
        ndr->depth--;
 
15806
}
 
15807
 
 
15808
static enum ndr_err_code ndr_push_netr_ServerTrustPasswordsGet(struct ndr_push *ndr, int flags, const struct netr_ServerTrustPasswordsGet *r)
 
15809
{
 
15810
        if (flags & NDR_IN) {
 
15811
                NDR_CHECK(ndr_push_unique_ptr(ndr, r->in.server_name));
 
15812
                if (r->in.server_name) {
 
15813
                        NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->in.server_name, CH_UTF16)));
 
15814
                        NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, 0));
 
15815
                        NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->in.server_name, CH_UTF16)));
 
15816
                        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));
 
15817
                }
 
15818
                if (r->in.account_name == NULL) {
 
15819
                        return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
 
15820
                }
 
15821
                NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->in.account_name, CH_UTF16)));
 
15822
                NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, 0));
 
15823
                NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->in.account_name, CH_UTF16)));
 
15824
                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));
 
15825
                NDR_CHECK(ndr_push_netr_SchannelType(ndr, NDR_SCALARS, r->in.secure_channel_type));
 
15826
                if (r->in.computer_name == NULL) {
 
15827
                        return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
 
15828
                }
 
15829
                NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->in.computer_name, CH_UTF16)));
 
15830
                NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, 0));
 
15831
                NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->in.computer_name, CH_UTF16)));
 
15832
                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));
 
15833
                if (r->in.credential == NULL) {
 
15834
                        return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
 
15835
                }
 
15836
                NDR_CHECK(ndr_push_netr_Authenticator(ndr, NDR_SCALARS, r->in.credential));
 
15837
        }
 
15838
        if (flags & NDR_OUT) {
 
15839
                if (r->out.return_authenticator == NULL) {
 
15840
                        return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
 
15841
                }
 
15842
                NDR_CHECK(ndr_push_netr_Authenticator(ndr, NDR_SCALARS, r->out.return_authenticator));
 
15843
                if (r->out.password == NULL) {
 
15844
                        return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
 
15845
                }
 
15846
                NDR_CHECK(ndr_push_samr_Password(ndr, NDR_SCALARS, r->out.password));
 
15847
                if (r->out.password2 == NULL) {
 
15848
                        return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
 
15849
                }
 
15850
                NDR_CHECK(ndr_push_samr_Password(ndr, NDR_SCALARS, r->out.password2));
 
15851
                NDR_CHECK(ndr_push_NTSTATUS(ndr, NDR_SCALARS, r->out.result));
 
15852
        }
 
15853
        return NDR_ERR_SUCCESS;
 
15854
}
 
15855
 
 
15856
static enum ndr_err_code ndr_pull_netr_ServerTrustPasswordsGet(struct ndr_pull *ndr, int flags, struct netr_ServerTrustPasswordsGet *r)
 
15857
{
 
15858
        uint32_t _ptr_server_name;
 
15859
        TALLOC_CTX *_mem_save_server_name_0;
 
15860
        TALLOC_CTX *_mem_save_credential_0;
 
15861
        TALLOC_CTX *_mem_save_return_authenticator_0;
 
15862
        TALLOC_CTX *_mem_save_password_0;
 
15863
        TALLOC_CTX *_mem_save_password2_0;
 
15864
        if (flags & NDR_IN) {
 
15865
                ZERO_STRUCT(r->out);
 
15866
 
 
15867
                NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_server_name));
 
15868
                if (_ptr_server_name) {
 
15869
                        NDR_PULL_ALLOC(ndr, r->in.server_name);
 
15870
                } else {
 
15871
                        r->in.server_name = NULL;
 
15872
                }
 
15873
                if (r->in.server_name) {
 
15874
                        _mem_save_server_name_0 = NDR_PULL_GET_MEM_CTX(ndr);
 
15875
                        NDR_PULL_SET_MEM_CTX(ndr, r->in.server_name, 0);
 
15876
                        NDR_CHECK(ndr_pull_array_size(ndr, &r->in.server_name));
 
15877
                        NDR_CHECK(ndr_pull_array_length(ndr, &r->in.server_name));
 
15878
                        if (ndr_get_array_length(ndr, &r->in.server_name) > ndr_get_array_size(ndr, &r->in.server_name)) {
 
15879
                                return 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));
 
15880
                        }
 
15881
                        NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->in.server_name), sizeof(uint16_t)));
 
15882
                        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));
 
15883
                        NDR_PULL_SET_MEM_CTX(ndr, _mem_save_server_name_0, 0);
 
15884
                }
 
15885
                NDR_CHECK(ndr_pull_array_size(ndr, &r->in.account_name));
 
15886
                NDR_CHECK(ndr_pull_array_length(ndr, &r->in.account_name));
 
15887
                if (ndr_get_array_length(ndr, &r->in.account_name) > ndr_get_array_size(ndr, &r->in.account_name)) {
 
15888
                        return 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));
 
15889
                }
 
15890
                NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->in.account_name), sizeof(uint16_t)));
 
15891
                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));
 
15892
                NDR_CHECK(ndr_pull_netr_SchannelType(ndr, NDR_SCALARS, &r->in.secure_channel_type));
 
15893
                NDR_CHECK(ndr_pull_array_size(ndr, &r->in.computer_name));
 
15894
                NDR_CHECK(ndr_pull_array_length(ndr, &r->in.computer_name));
 
15895
                if (ndr_get_array_length(ndr, &r->in.computer_name) > ndr_get_array_size(ndr, &r->in.computer_name)) {
 
15896
                        return 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));
 
15897
                }
 
15898
                NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->in.computer_name), sizeof(uint16_t)));
 
15899
                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));
 
15900
                if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
 
15901
                        NDR_PULL_ALLOC(ndr, r->in.credential);
 
15902
                }
 
15903
                _mem_save_credential_0 = NDR_PULL_GET_MEM_CTX(ndr);
 
15904
                NDR_PULL_SET_MEM_CTX(ndr, r->in.credential, LIBNDR_FLAG_REF_ALLOC);
 
15905
                NDR_CHECK(ndr_pull_netr_Authenticator(ndr, NDR_SCALARS, r->in.credential));
 
15906
                NDR_PULL_SET_MEM_CTX(ndr, _mem_save_credential_0, LIBNDR_FLAG_REF_ALLOC);
 
15907
                NDR_PULL_ALLOC(ndr, r->out.return_authenticator);
 
15908
                ZERO_STRUCTP(r->out.return_authenticator);
 
15909
                NDR_PULL_ALLOC(ndr, r->out.password);
 
15910
                ZERO_STRUCTP(r->out.password);
 
15911
                NDR_PULL_ALLOC(ndr, r->out.password2);
 
15912
                ZERO_STRUCTP(r->out.password2);
 
15913
        }
 
15914
        if (flags & NDR_OUT) {
 
15915
                if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
 
15916
                        NDR_PULL_ALLOC(ndr, r->out.return_authenticator);
 
15917
                }
 
15918
                _mem_save_return_authenticator_0 = NDR_PULL_GET_MEM_CTX(ndr);
 
15919
                NDR_PULL_SET_MEM_CTX(ndr, r->out.return_authenticator, LIBNDR_FLAG_REF_ALLOC);
 
15920
                NDR_CHECK(ndr_pull_netr_Authenticator(ndr, NDR_SCALARS, r->out.return_authenticator));
 
15921
                NDR_PULL_SET_MEM_CTX(ndr, _mem_save_return_authenticator_0, LIBNDR_FLAG_REF_ALLOC);
 
15922
                if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
 
15923
                        NDR_PULL_ALLOC(ndr, r->out.password);
 
15924
                }
 
15925
                _mem_save_password_0 = NDR_PULL_GET_MEM_CTX(ndr);
 
15926
                NDR_PULL_SET_MEM_CTX(ndr, r->out.password, LIBNDR_FLAG_REF_ALLOC);
 
15927
                NDR_CHECK(ndr_pull_samr_Password(ndr, NDR_SCALARS, r->out.password));
 
15928
                NDR_PULL_SET_MEM_CTX(ndr, _mem_save_password_0, LIBNDR_FLAG_REF_ALLOC);
 
15929
                if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
 
15930
                        NDR_PULL_ALLOC(ndr, r->out.password2);
 
15931
                }
 
15932
                _mem_save_password2_0 = NDR_PULL_GET_MEM_CTX(ndr);
 
15933
                NDR_PULL_SET_MEM_CTX(ndr, r->out.password2, LIBNDR_FLAG_REF_ALLOC);
 
15934
                NDR_CHECK(ndr_pull_samr_Password(ndr, NDR_SCALARS, r->out.password2));
 
15935
                NDR_PULL_SET_MEM_CTX(ndr, _mem_save_password2_0, LIBNDR_FLAG_REF_ALLOC);
 
15936
                NDR_CHECK(ndr_pull_NTSTATUS(ndr, NDR_SCALARS, &r->out.result));
 
15937
        }
 
15938
        return NDR_ERR_SUCCESS;
 
15939
}
 
15940
 
 
15941
_PUBLIC_ void ndr_print_netr_ServerTrustPasswordsGet(struct ndr_print *ndr, const char *name, int flags, const struct netr_ServerTrustPasswordsGet *r)
 
15942
{
 
15943
        ndr_print_struct(ndr, name, "netr_ServerTrustPasswordsGet");
 
15944
        ndr->depth++;
 
15945
        if (flags & NDR_SET_VALUES) {
 
15946
                ndr->flags |= LIBNDR_PRINT_SET_VALUES;
 
15947
        }
 
15948
        if (flags & NDR_IN) {
 
15949
                ndr_print_struct(ndr, "in", "netr_ServerTrustPasswordsGet");
 
15950
                ndr->depth++;
 
15951
                ndr_print_ptr(ndr, "server_name", r->in.server_name);
 
15952
                ndr->depth++;
 
15953
                if (r->in.server_name) {
 
15954
                        ndr_print_string(ndr, "server_name", r->in.server_name);
 
15955
                }
 
15956
                ndr->depth--;
 
15957
                ndr_print_ptr(ndr, "account_name", r->in.account_name);
 
15958
                ndr->depth++;
 
15959
                ndr_print_string(ndr, "account_name", r->in.account_name);
 
15960
                ndr->depth--;
 
15961
                ndr_print_netr_SchannelType(ndr, "secure_channel_type", r->in.secure_channel_type);
 
15962
                ndr_print_ptr(ndr, "computer_name", r->in.computer_name);
 
15963
                ndr->depth++;
 
15964
                ndr_print_string(ndr, "computer_name", r->in.computer_name);
 
15965
                ndr->depth--;
 
15966
                ndr_print_ptr(ndr, "credential", r->in.credential);
 
15967
                ndr->depth++;
 
15968
                ndr_print_netr_Authenticator(ndr, "credential", r->in.credential);
 
15969
                ndr->depth--;
 
15970
                ndr->depth--;
 
15971
        }
 
15972
        if (flags & NDR_OUT) {
 
15973
                ndr_print_struct(ndr, "out", "netr_ServerTrustPasswordsGet");
 
15974
                ndr->depth++;
 
15975
                ndr_print_ptr(ndr, "return_authenticator", r->out.return_authenticator);
 
15976
                ndr->depth++;
 
15977
                ndr_print_netr_Authenticator(ndr, "return_authenticator", r->out.return_authenticator);
 
15978
                ndr->depth--;
 
15979
                ndr_print_ptr(ndr, "password", r->out.password);
 
15980
                ndr->depth++;
 
15981
                ndr_print_samr_Password(ndr, "password", r->out.password);
 
15982
                ndr->depth--;
 
15983
                ndr_print_ptr(ndr, "password2", r->out.password2);
 
15984
                ndr->depth++;
 
15985
                ndr_print_samr_Password(ndr, "password2", r->out.password2);
 
15986
                ndr->depth--;
 
15987
                ndr_print_NTSTATUS(ndr, "result", r->out.result);
 
15988
                ndr->depth--;
 
15989
        }
 
15990
        ndr->depth--;
 
15991
}
 
15992
 
 
15993
static enum ndr_err_code ndr_push_netr_DsRGetForestTrustInformation(struct ndr_push *ndr, int flags, const struct netr_DsRGetForestTrustInformation *r)
 
15994
{
 
15995
        if (flags & NDR_IN) {
 
15996
                NDR_CHECK(ndr_push_unique_ptr(ndr, r->in.server_name));
 
15997
                if (r->in.server_name) {
 
15998
                        NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->in.server_name, CH_UTF16)));
 
15999
                        NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, 0));
 
16000
                        NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->in.server_name, CH_UTF16)));
 
16001
                        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));
 
16002
                }
 
16003
                NDR_CHECK(ndr_push_unique_ptr(ndr, r->in.trusted_domain_name));
 
16004
                if (r->in.trusted_domain_name) {
 
16005
                        NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->in.trusted_domain_name, CH_UTF16)));
 
16006
                        NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, 0));
 
16007
                        NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->in.trusted_domain_name, CH_UTF16)));
 
16008
                        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));
 
16009
                }
 
16010
                NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->in.flags));
 
16011
        }
 
16012
        if (flags & NDR_OUT) {
 
16013
                if (r->out.forest_trust_info == NULL) {
 
16014
                        return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
 
16015
                }
 
16016
                NDR_CHECK(ndr_push_unique_ptr(ndr, *r->out.forest_trust_info));
 
16017
                if (*r->out.forest_trust_info) {
 
16018
                        NDR_CHECK(ndr_push_lsa_ForestTrustInformation(ndr, NDR_SCALARS|NDR_BUFFERS, *r->out.forest_trust_info));
 
16019
                }
 
16020
                NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result));
 
16021
        }
 
16022
        return NDR_ERR_SUCCESS;
 
16023
}
 
16024
 
 
16025
static enum ndr_err_code ndr_pull_netr_DsRGetForestTrustInformation(struct ndr_pull *ndr, int flags, struct netr_DsRGetForestTrustInformation *r)
 
16026
{
 
16027
        uint32_t _ptr_server_name;
 
16028
        uint32_t _ptr_trusted_domain_name;
 
16029
        uint32_t _ptr_forest_trust_info;
 
16030
        TALLOC_CTX *_mem_save_server_name_0;
 
16031
        TALLOC_CTX *_mem_save_trusted_domain_name_0;
 
16032
        TALLOC_CTX *_mem_save_forest_trust_info_0;
 
16033
        TALLOC_CTX *_mem_save_forest_trust_info_1;
 
16034
        if (flags & NDR_IN) {
 
16035
                ZERO_STRUCT(r->out);
 
16036
 
 
16037
                NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_server_name));
 
16038
                if (_ptr_server_name) {
 
16039
                        NDR_PULL_ALLOC(ndr, r->in.server_name);
 
16040
                } else {
 
16041
                        r->in.server_name = NULL;
 
16042
                }
 
16043
                if (r->in.server_name) {
 
16044
                        _mem_save_server_name_0 = NDR_PULL_GET_MEM_CTX(ndr);
 
16045
                        NDR_PULL_SET_MEM_CTX(ndr, r->in.server_name, 0);
 
16046
                        NDR_CHECK(ndr_pull_array_size(ndr, &r->in.server_name));
 
16047
                        NDR_CHECK(ndr_pull_array_length(ndr, &r->in.server_name));
 
16048
                        if (ndr_get_array_length(ndr, &r->in.server_name) > ndr_get_array_size(ndr, &r->in.server_name)) {
 
16049
                                return 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));
 
16050
                        }
 
16051
                        NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->in.server_name), sizeof(uint16_t)));
 
16052
                        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));
 
16053
                        NDR_PULL_SET_MEM_CTX(ndr, _mem_save_server_name_0, 0);
 
16054
                }
 
16055
                NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_trusted_domain_name));
 
16056
                if (_ptr_trusted_domain_name) {
 
16057
                        NDR_PULL_ALLOC(ndr, r->in.trusted_domain_name);
 
16058
                } else {
 
16059
                        r->in.trusted_domain_name = NULL;
 
16060
                }
 
16061
                if (r->in.trusted_domain_name) {
 
16062
                        _mem_save_trusted_domain_name_0 = NDR_PULL_GET_MEM_CTX(ndr);
 
16063
                        NDR_PULL_SET_MEM_CTX(ndr, r->in.trusted_domain_name, 0);
 
16064
                        NDR_CHECK(ndr_pull_array_size(ndr, &r->in.trusted_domain_name));
 
16065
                        NDR_CHECK(ndr_pull_array_length(ndr, &r->in.trusted_domain_name));
 
16066
                        if (ndr_get_array_length(ndr, &r->in.trusted_domain_name) > ndr_get_array_size(ndr, &r->in.trusted_domain_name)) {
 
16067
                                return 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));
 
16068
                        }
 
16069
                        NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->in.trusted_domain_name), sizeof(uint16_t)));
 
16070
                        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));
 
16071
                        NDR_PULL_SET_MEM_CTX(ndr, _mem_save_trusted_domain_name_0, 0);
 
16072
                }
 
16073
                NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->in.flags));
 
16074
                NDR_PULL_ALLOC(ndr, r->out.forest_trust_info);
 
16075
                ZERO_STRUCTP(r->out.forest_trust_info);
 
16076
        }
 
16077
        if (flags & NDR_OUT) {
 
16078
                if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
 
16079
                        NDR_PULL_ALLOC(ndr, r->out.forest_trust_info);
 
16080
                }
 
16081
                _mem_save_forest_trust_info_0 = NDR_PULL_GET_MEM_CTX(ndr);
 
16082
                NDR_PULL_SET_MEM_CTX(ndr, r->out.forest_trust_info, LIBNDR_FLAG_REF_ALLOC);
 
16083
                NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_forest_trust_info));
 
16084
                if (_ptr_forest_trust_info) {
 
16085
                        NDR_PULL_ALLOC(ndr, *r->out.forest_trust_info);
 
16086
                } else {
 
16087
                        *r->out.forest_trust_info = NULL;
 
16088
                }
 
16089
                if (*r->out.forest_trust_info) {
 
16090
                        _mem_save_forest_trust_info_1 = NDR_PULL_GET_MEM_CTX(ndr);
 
16091
                        NDR_PULL_SET_MEM_CTX(ndr, *r->out.forest_trust_info, 0);
 
16092
                        NDR_CHECK(ndr_pull_lsa_ForestTrustInformation(ndr, NDR_SCALARS|NDR_BUFFERS, *r->out.forest_trust_info));
 
16093
                        NDR_PULL_SET_MEM_CTX(ndr, _mem_save_forest_trust_info_1, 0);
 
16094
                }
 
16095
                NDR_PULL_SET_MEM_CTX(ndr, _mem_save_forest_trust_info_0, LIBNDR_FLAG_REF_ALLOC);
 
16096
                NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result));
 
16097
        }
 
16098
        return NDR_ERR_SUCCESS;
 
16099
}
 
16100
 
 
16101
_PUBLIC_ void ndr_print_netr_DsRGetForestTrustInformation(struct ndr_print *ndr, const char *name, int flags, const struct netr_DsRGetForestTrustInformation *r)
 
16102
{
 
16103
        ndr_print_struct(ndr, name, "netr_DsRGetForestTrustInformation");
 
16104
        ndr->depth++;
 
16105
        if (flags & NDR_SET_VALUES) {
 
16106
                ndr->flags |= LIBNDR_PRINT_SET_VALUES;
 
16107
        }
 
16108
        if (flags & NDR_IN) {
 
16109
                ndr_print_struct(ndr, "in", "netr_DsRGetForestTrustInformation");
 
16110
                ndr->depth++;
 
16111
                ndr_print_ptr(ndr, "server_name", r->in.server_name);
 
16112
                ndr->depth++;
 
16113
                if (r->in.server_name) {
 
16114
                        ndr_print_string(ndr, "server_name", r->in.server_name);
 
16115
                }
 
16116
                ndr->depth--;
 
16117
                ndr_print_ptr(ndr, "trusted_domain_name", r->in.trusted_domain_name);
 
16118
                ndr->depth++;
 
16119
                if (r->in.trusted_domain_name) {
 
16120
                        ndr_print_string(ndr, "trusted_domain_name", r->in.trusted_domain_name);
 
16121
                }
 
16122
                ndr->depth--;
 
16123
                ndr_print_uint32(ndr, "flags", r->in.flags);
 
16124
                ndr->depth--;
 
16125
        }
 
16126
        if (flags & NDR_OUT) {
 
16127
                ndr_print_struct(ndr, "out", "netr_DsRGetForestTrustInformation");
 
16128
                ndr->depth++;
 
16129
                ndr_print_ptr(ndr, "forest_trust_info", r->out.forest_trust_info);
 
16130
                ndr->depth++;
 
16131
                ndr_print_ptr(ndr, "forest_trust_info", *r->out.forest_trust_info);
 
16132
                ndr->depth++;
 
16133
                if (*r->out.forest_trust_info) {
 
16134
                        ndr_print_lsa_ForestTrustInformation(ndr, "forest_trust_info", *r->out.forest_trust_info);
 
16135
                }
 
16136
                ndr->depth--;
 
16137
                ndr->depth--;
 
16138
                ndr_print_WERROR(ndr, "result", r->out.result);
 
16139
                ndr->depth--;
 
16140
        }
 
16141
        ndr->depth--;
 
16142
}
 
16143
 
 
16144
static enum ndr_err_code ndr_push_netr_GetForestTrustInformation(struct ndr_push *ndr, int flags, const struct netr_GetForestTrustInformation *r)
 
16145
{
 
16146
        if (flags & NDR_IN) {
 
16147
                NDR_CHECK(ndr_push_unique_ptr(ndr, r->in.server_name));
 
16148
                if (r->in.server_name) {
 
16149
                        NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->in.server_name, CH_UTF16)));
 
16150
                        NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, 0));
 
16151
                        NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->in.server_name, CH_UTF16)));
 
16152
                        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));
 
16153
                }
 
16154
                if (r->in.trusted_domain_name == NULL) {
 
16155
                        return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
 
16156
                }
 
16157
                NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->in.trusted_domain_name, CH_UTF16)));
 
16158
                NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, 0));
 
16159
                NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->in.trusted_domain_name, CH_UTF16)));
 
16160
                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));
 
16161
                if (r->in.credential == NULL) {
 
16162
                        return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
 
16163
                }
 
16164
                NDR_CHECK(ndr_push_netr_Authenticator(ndr, NDR_SCALARS, r->in.credential));
 
16165
                NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->in.flags));
 
16166
        }
 
16167
        if (flags & NDR_OUT) {
 
16168
                if (r->out.return_authenticator == NULL) {
 
16169
                        return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
 
16170
                }
 
16171
                NDR_CHECK(ndr_push_netr_Authenticator(ndr, NDR_SCALARS, r->out.return_authenticator));
 
16172
                if (r->out.forest_trust_info == NULL) {
 
16173
                        return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
 
16174
                }
 
16175
                NDR_CHECK(ndr_push_unique_ptr(ndr, *r->out.forest_trust_info));
 
16176
                if (*r->out.forest_trust_info) {
 
16177
                        NDR_CHECK(ndr_push_lsa_ForestTrustInformation(ndr, NDR_SCALARS|NDR_BUFFERS, *r->out.forest_trust_info));
 
16178
                }
 
16179
                NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result));
 
16180
        }
 
16181
        return NDR_ERR_SUCCESS;
 
16182
}
 
16183
 
 
16184
static enum ndr_err_code ndr_pull_netr_GetForestTrustInformation(struct ndr_pull *ndr, int flags, struct netr_GetForestTrustInformation *r)
 
16185
{
 
16186
        uint32_t _ptr_server_name;
 
16187
        uint32_t _ptr_forest_trust_info;
 
16188
        TALLOC_CTX *_mem_save_server_name_0;
 
16189
        TALLOC_CTX *_mem_save_credential_0;
 
16190
        TALLOC_CTX *_mem_save_return_authenticator_0;
 
16191
        TALLOC_CTX *_mem_save_forest_trust_info_0;
 
16192
        TALLOC_CTX *_mem_save_forest_trust_info_1;
 
16193
        if (flags & NDR_IN) {
 
16194
                ZERO_STRUCT(r->out);
 
16195
 
 
16196
                NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_server_name));
 
16197
                if (_ptr_server_name) {
 
16198
                        NDR_PULL_ALLOC(ndr, r->in.server_name);
 
16199
                } else {
 
16200
                        r->in.server_name = NULL;
 
16201
                }
 
16202
                if (r->in.server_name) {
 
16203
                        _mem_save_server_name_0 = NDR_PULL_GET_MEM_CTX(ndr);
 
16204
                        NDR_PULL_SET_MEM_CTX(ndr, r->in.server_name, 0);
 
16205
                        NDR_CHECK(ndr_pull_array_size(ndr, &r->in.server_name));
 
16206
                        NDR_CHECK(ndr_pull_array_length(ndr, &r->in.server_name));
 
16207
                        if (ndr_get_array_length(ndr, &r->in.server_name) > ndr_get_array_size(ndr, &r->in.server_name)) {
 
16208
                                return 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));
 
16209
                        }
 
16210
                        NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->in.server_name), sizeof(uint16_t)));
 
16211
                        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));
 
16212
                        NDR_PULL_SET_MEM_CTX(ndr, _mem_save_server_name_0, 0);
 
16213
                }
 
16214
                NDR_CHECK(ndr_pull_array_size(ndr, &r->in.trusted_domain_name));
 
16215
                NDR_CHECK(ndr_pull_array_length(ndr, &r->in.trusted_domain_name));
 
16216
                if (ndr_get_array_length(ndr, &r->in.trusted_domain_name) > ndr_get_array_size(ndr, &r->in.trusted_domain_name)) {
 
16217
                        return 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));
 
16218
                }
 
16219
                NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->in.trusted_domain_name), sizeof(uint16_t)));
 
16220
                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));
 
16221
                if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
 
16222
                        NDR_PULL_ALLOC(ndr, r->in.credential);
 
16223
                }
 
16224
                _mem_save_credential_0 = NDR_PULL_GET_MEM_CTX(ndr);
 
16225
                NDR_PULL_SET_MEM_CTX(ndr, r->in.credential, LIBNDR_FLAG_REF_ALLOC);
 
16226
                NDR_CHECK(ndr_pull_netr_Authenticator(ndr, NDR_SCALARS, r->in.credential));
 
16227
                NDR_PULL_SET_MEM_CTX(ndr, _mem_save_credential_0, LIBNDR_FLAG_REF_ALLOC);
 
16228
                NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->in.flags));
 
16229
                NDR_PULL_ALLOC(ndr, r->out.return_authenticator);
 
16230
                ZERO_STRUCTP(r->out.return_authenticator);
 
16231
                NDR_PULL_ALLOC(ndr, r->out.forest_trust_info);
 
16232
                ZERO_STRUCTP(r->out.forest_trust_info);
 
16233
        }
 
16234
        if (flags & NDR_OUT) {
 
16235
                if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
 
16236
                        NDR_PULL_ALLOC(ndr, r->out.return_authenticator);
 
16237
                }
 
16238
                _mem_save_return_authenticator_0 = NDR_PULL_GET_MEM_CTX(ndr);
 
16239
                NDR_PULL_SET_MEM_CTX(ndr, r->out.return_authenticator, LIBNDR_FLAG_REF_ALLOC);
 
16240
                NDR_CHECK(ndr_pull_netr_Authenticator(ndr, NDR_SCALARS, r->out.return_authenticator));
 
16241
                NDR_PULL_SET_MEM_CTX(ndr, _mem_save_return_authenticator_0, LIBNDR_FLAG_REF_ALLOC);
 
16242
                if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
 
16243
                        NDR_PULL_ALLOC(ndr, r->out.forest_trust_info);
 
16244
                }
 
16245
                _mem_save_forest_trust_info_0 = NDR_PULL_GET_MEM_CTX(ndr);
 
16246
                NDR_PULL_SET_MEM_CTX(ndr, r->out.forest_trust_info, LIBNDR_FLAG_REF_ALLOC);
 
16247
                NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_forest_trust_info));
 
16248
                if (_ptr_forest_trust_info) {
 
16249
                        NDR_PULL_ALLOC(ndr, *r->out.forest_trust_info);
 
16250
                } else {
 
16251
                        *r->out.forest_trust_info = NULL;
 
16252
                }
 
16253
                if (*r->out.forest_trust_info) {
 
16254
                        _mem_save_forest_trust_info_1 = NDR_PULL_GET_MEM_CTX(ndr);
 
16255
                        NDR_PULL_SET_MEM_CTX(ndr, *r->out.forest_trust_info, 0);
 
16256
                        NDR_CHECK(ndr_pull_lsa_ForestTrustInformation(ndr, NDR_SCALARS|NDR_BUFFERS, *r->out.forest_trust_info));
 
16257
                        NDR_PULL_SET_MEM_CTX(ndr, _mem_save_forest_trust_info_1, 0);
 
16258
                }
 
16259
                NDR_PULL_SET_MEM_CTX(ndr, _mem_save_forest_trust_info_0, LIBNDR_FLAG_REF_ALLOC);
 
16260
                NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result));
 
16261
        }
 
16262
        return NDR_ERR_SUCCESS;
 
16263
}
 
16264
 
 
16265
_PUBLIC_ void ndr_print_netr_GetForestTrustInformation(struct ndr_print *ndr, const char *name, int flags, const struct netr_GetForestTrustInformation *r)
 
16266
{
 
16267
        ndr_print_struct(ndr, name, "netr_GetForestTrustInformation");
 
16268
        ndr->depth++;
 
16269
        if (flags & NDR_SET_VALUES) {
 
16270
                ndr->flags |= LIBNDR_PRINT_SET_VALUES;
 
16271
        }
 
16272
        if (flags & NDR_IN) {
 
16273
                ndr_print_struct(ndr, "in", "netr_GetForestTrustInformation");
 
16274
                ndr->depth++;
 
16275
                ndr_print_ptr(ndr, "server_name", r->in.server_name);
 
16276
                ndr->depth++;
 
16277
                if (r->in.server_name) {
 
16278
                        ndr_print_string(ndr, "server_name", r->in.server_name);
 
16279
                }
 
16280
                ndr->depth--;
 
16281
                ndr_print_ptr(ndr, "trusted_domain_name", r->in.trusted_domain_name);
 
16282
                ndr->depth++;
 
16283
                ndr_print_string(ndr, "trusted_domain_name", r->in.trusted_domain_name);
 
16284
                ndr->depth--;
 
16285
                ndr_print_ptr(ndr, "credential", r->in.credential);
 
16286
                ndr->depth++;
 
16287
                ndr_print_netr_Authenticator(ndr, "credential", r->in.credential);
 
16288
                ndr->depth--;
 
16289
                ndr_print_uint32(ndr, "flags", r->in.flags);
 
16290
                ndr->depth--;
 
16291
        }
 
16292
        if (flags & NDR_OUT) {
 
16293
                ndr_print_struct(ndr, "out", "netr_GetForestTrustInformation");
 
16294
                ndr->depth++;
 
16295
                ndr_print_ptr(ndr, "return_authenticator", r->out.return_authenticator);
 
16296
                ndr->depth++;
 
16297
                ndr_print_netr_Authenticator(ndr, "return_authenticator", r->out.return_authenticator);
 
16298
                ndr->depth--;
 
16299
                ndr_print_ptr(ndr, "forest_trust_info", r->out.forest_trust_info);
 
16300
                ndr->depth++;
 
16301
                ndr_print_ptr(ndr, "forest_trust_info", *r->out.forest_trust_info);
 
16302
                ndr->depth++;
 
16303
                if (*r->out.forest_trust_info) {
 
16304
                        ndr_print_lsa_ForestTrustInformation(ndr, "forest_trust_info", *r->out.forest_trust_info);
 
16305
                }
 
16306
                ndr->depth--;
 
16307
                ndr->depth--;
 
16308
                ndr_print_WERROR(ndr, "result", r->out.result);
 
16309
                ndr->depth--;
 
16310
        }
 
16311
        ndr->depth--;
 
16312
}
 
16313
 
 
16314
static enum ndr_err_code ndr_push_netr_LogonSamLogonWithFlags(struct ndr_push *ndr, int flags, const struct netr_LogonSamLogonWithFlags *r)
 
16315
{
 
16316
        if (flags & NDR_IN) {
 
16317
                NDR_CHECK(ndr_push_unique_ptr(ndr, r->in.server_name));
 
16318
                if (r->in.server_name) {
 
16319
                        NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->in.server_name, CH_UTF16)));
 
16320
                        NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, 0));
 
16321
                        NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->in.server_name, CH_UTF16)));
 
16322
                        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));
 
16323
                }
 
16324
                NDR_CHECK(ndr_push_unique_ptr(ndr, r->in.computer_name));
 
16325
                if (r->in.computer_name) {
 
16326
                        NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->in.computer_name, CH_UTF16)));
 
16327
                        NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, 0));
 
16328
                        NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->in.computer_name, CH_UTF16)));
 
16329
                        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));
 
16330
                }
 
16331
                NDR_CHECK(ndr_push_unique_ptr(ndr, r->in.credential));
 
16332
                if (r->in.credential) {
 
16333
                        NDR_CHECK(ndr_push_netr_Authenticator(ndr, NDR_SCALARS, r->in.credential));
 
16334
                }
 
16335
                NDR_CHECK(ndr_push_unique_ptr(ndr, r->in.return_authenticator));
 
16336
                if (r->in.return_authenticator) {
 
16337
                        NDR_CHECK(ndr_push_netr_Authenticator(ndr, NDR_SCALARS, r->in.return_authenticator));
 
16338
                }
 
16339
                NDR_CHECK(ndr_push_netr_LogonInfoClass(ndr, NDR_SCALARS, r->in.logon_level));
 
16340
                if (r->in.logon == NULL) {
 
16341
                        return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
 
16342
                }
 
16343
                NDR_CHECK(ndr_push_set_switch_value(ndr, r->in.logon, r->in.logon_level));
 
16344
                NDR_CHECK(ndr_push_netr_LogonLevel(ndr, NDR_SCALARS|NDR_BUFFERS, r->in.logon));
 
16345
                NDR_CHECK(ndr_push_uint16(ndr, NDR_SCALARS, r->in.validation_level));
 
16346
                if (r->in.flags == NULL) {
 
16347
                        return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
 
16348
                }
 
16349
                NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, *r->in.flags));
 
16350
        }
 
16351
        if (flags & NDR_OUT) {
 
16352
                NDR_CHECK(ndr_push_unique_ptr(ndr, r->out.return_authenticator));
 
16353
                if (r->out.return_authenticator) {
 
16354
                        NDR_CHECK(ndr_push_netr_Authenticator(ndr, NDR_SCALARS, r->out.return_authenticator));
 
16355
                }
 
16356
                if (r->out.validation == NULL) {
 
16357
                        return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
 
16358
                }
 
16359
                NDR_CHECK(ndr_push_set_switch_value(ndr, r->out.validation, r->in.validation_level));
 
16360
                NDR_CHECK(ndr_push_netr_Validation(ndr, NDR_SCALARS|NDR_BUFFERS, r->out.validation));
 
16361
                if (r->out.authoritative == NULL) {
 
16362
                        return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
 
16363
                }
 
16364
                NDR_CHECK(ndr_push_uint8(ndr, NDR_SCALARS, *r->out.authoritative));
 
16365
                if (r->out.flags == NULL) {
 
16366
                        return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
 
16367
                }
 
16368
                NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, *r->out.flags));
 
16369
                NDR_CHECK(ndr_push_NTSTATUS(ndr, NDR_SCALARS, r->out.result));
 
16370
        }
 
16371
        return NDR_ERR_SUCCESS;
 
16372
}
 
16373
 
 
16374
static enum ndr_err_code ndr_pull_netr_LogonSamLogonWithFlags(struct ndr_pull *ndr, int flags, struct netr_LogonSamLogonWithFlags *r)
 
16375
{
 
16376
        uint32_t _ptr_server_name;
 
16377
        uint32_t _ptr_computer_name;
 
16378
        uint32_t _ptr_credential;
 
16379
        uint32_t _ptr_return_authenticator;
 
16380
        TALLOC_CTX *_mem_save_server_name_0;
 
16381
        TALLOC_CTX *_mem_save_computer_name_0;
 
16382
        TALLOC_CTX *_mem_save_credential_0;
 
16383
        TALLOC_CTX *_mem_save_return_authenticator_0;
 
16384
        TALLOC_CTX *_mem_save_logon_0;
 
16385
        TALLOC_CTX *_mem_save_validation_0;
 
16386
        TALLOC_CTX *_mem_save_authoritative_0;
 
16387
        TALLOC_CTX *_mem_save_flags_0;
 
16388
        if (flags & NDR_IN) {
 
16389
                ZERO_STRUCT(r->out);
 
16390
 
 
16391
                NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_server_name));
 
16392
                if (_ptr_server_name) {
 
16393
                        NDR_PULL_ALLOC(ndr, r->in.server_name);
 
16394
                } else {
 
16395
                        r->in.server_name = NULL;
 
16396
                }
 
16397
                if (r->in.server_name) {
 
16398
                        _mem_save_server_name_0 = NDR_PULL_GET_MEM_CTX(ndr);
 
16399
                        NDR_PULL_SET_MEM_CTX(ndr, r->in.server_name, 0);
 
16400
                        NDR_CHECK(ndr_pull_array_size(ndr, &r->in.server_name));
 
16401
                        NDR_CHECK(ndr_pull_array_length(ndr, &r->in.server_name));
 
16402
                        if (ndr_get_array_length(ndr, &r->in.server_name) > ndr_get_array_size(ndr, &r->in.server_name)) {
 
16403
                                return 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));
 
16404
                        }
 
16405
                        NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->in.server_name), sizeof(uint16_t)));
 
16406
                        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));
 
16407
                        NDR_PULL_SET_MEM_CTX(ndr, _mem_save_server_name_0, 0);
 
16408
                }
 
16409
                NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_computer_name));
 
16410
                if (_ptr_computer_name) {
 
16411
                        NDR_PULL_ALLOC(ndr, r->in.computer_name);
 
16412
                } else {
 
16413
                        r->in.computer_name = NULL;
 
16414
                }
 
16415
                if (r->in.computer_name) {
 
16416
                        _mem_save_computer_name_0 = NDR_PULL_GET_MEM_CTX(ndr);
 
16417
                        NDR_PULL_SET_MEM_CTX(ndr, r->in.computer_name, 0);
 
16418
                        NDR_CHECK(ndr_pull_array_size(ndr, &r->in.computer_name));
 
16419
                        NDR_CHECK(ndr_pull_array_length(ndr, &r->in.computer_name));
 
16420
                        if (ndr_get_array_length(ndr, &r->in.computer_name) > ndr_get_array_size(ndr, &r->in.computer_name)) {
 
16421
                                return 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));
 
16422
                        }
 
16423
                        NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->in.computer_name), sizeof(uint16_t)));
 
16424
                        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));
 
16425
                        NDR_PULL_SET_MEM_CTX(ndr, _mem_save_computer_name_0, 0);
 
16426
                }
 
16427
                NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_credential));
 
16428
                if (_ptr_credential) {
 
16429
                        NDR_PULL_ALLOC(ndr, r->in.credential);
 
16430
                } else {
 
16431
                        r->in.credential = NULL;
 
16432
                }
 
16433
                if (r->in.credential) {
 
16434
                        _mem_save_credential_0 = NDR_PULL_GET_MEM_CTX(ndr);
 
16435
                        NDR_PULL_SET_MEM_CTX(ndr, r->in.credential, 0);
 
16436
                        NDR_CHECK(ndr_pull_netr_Authenticator(ndr, NDR_SCALARS, r->in.credential));
 
16437
                        NDR_PULL_SET_MEM_CTX(ndr, _mem_save_credential_0, 0);
 
16438
                }
 
16439
                NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_return_authenticator));
 
16440
                if (_ptr_return_authenticator) {
 
16441
                        NDR_PULL_ALLOC(ndr, r->in.return_authenticator);
 
16442
                } else {
 
16443
                        r->in.return_authenticator = NULL;
 
16444
                }
 
16445
                if (r->in.return_authenticator) {
 
16446
                        _mem_save_return_authenticator_0 = NDR_PULL_GET_MEM_CTX(ndr);
 
16447
                        NDR_PULL_SET_MEM_CTX(ndr, r->in.return_authenticator, 0);
 
16448
                        NDR_CHECK(ndr_pull_netr_Authenticator(ndr, NDR_SCALARS, r->in.return_authenticator));
 
16449
                        NDR_PULL_SET_MEM_CTX(ndr, _mem_save_return_authenticator_0, 0);
 
16450
                }
 
16451
                NDR_CHECK(ndr_pull_netr_LogonInfoClass(ndr, NDR_SCALARS, &r->in.logon_level));
 
16452
                if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
 
16453
                        NDR_PULL_ALLOC(ndr, r->in.logon);
 
16454
                }
 
16455
                _mem_save_logon_0 = NDR_PULL_GET_MEM_CTX(ndr);
 
16456
                NDR_PULL_SET_MEM_CTX(ndr, r->in.logon, LIBNDR_FLAG_REF_ALLOC);
 
16457
                NDR_CHECK(ndr_pull_set_switch_value(ndr, r->in.logon, r->in.logon_level));
 
16458
                NDR_CHECK(ndr_pull_netr_LogonLevel(ndr, NDR_SCALARS|NDR_BUFFERS, r->in.logon));
 
16459
                NDR_PULL_SET_MEM_CTX(ndr, _mem_save_logon_0, LIBNDR_FLAG_REF_ALLOC);
 
16460
                NDR_CHECK(ndr_pull_uint16(ndr, NDR_SCALARS, &r->in.validation_level));
 
16461
                if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
 
16462
                        NDR_PULL_ALLOC(ndr, r->in.flags);
 
16463
                }
 
16464
                _mem_save_flags_0 = NDR_PULL_GET_MEM_CTX(ndr);
 
16465
                NDR_PULL_SET_MEM_CTX(ndr, r->in.flags, LIBNDR_FLAG_REF_ALLOC);
 
16466
                NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, r->in.flags));
 
16467
                NDR_PULL_SET_MEM_CTX(ndr, _mem_save_flags_0, LIBNDR_FLAG_REF_ALLOC);
 
16468
                NDR_PULL_ALLOC(ndr, r->out.validation);
 
16469
                ZERO_STRUCTP(r->out.validation);
 
16470
                NDR_PULL_ALLOC(ndr, r->out.authoritative);
 
16471
                ZERO_STRUCTP(r->out.authoritative);
 
16472
                NDR_PULL_ALLOC(ndr, r->out.flags);
 
16473
                *r->out.flags = *r->in.flags;
 
16474
        }
 
16475
        if (flags & NDR_OUT) {
 
16476
                NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_return_authenticator));
 
16477
                if (_ptr_return_authenticator) {
 
16478
                        NDR_PULL_ALLOC(ndr, r->out.return_authenticator);
 
16479
                } else {
 
16480
                        r->out.return_authenticator = NULL;
 
16481
                }
 
16482
                if (r->out.return_authenticator) {
 
16483
                        _mem_save_return_authenticator_0 = NDR_PULL_GET_MEM_CTX(ndr);
 
16484
                        NDR_PULL_SET_MEM_CTX(ndr, r->out.return_authenticator, 0);
 
16485
                        NDR_CHECK(ndr_pull_netr_Authenticator(ndr, NDR_SCALARS, r->out.return_authenticator));
 
16486
                        NDR_PULL_SET_MEM_CTX(ndr, _mem_save_return_authenticator_0, 0);
 
16487
                }
 
16488
                if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
 
16489
                        NDR_PULL_ALLOC(ndr, r->out.validation);
 
16490
                }
 
16491
                _mem_save_validation_0 = NDR_PULL_GET_MEM_CTX(ndr);
 
16492
                NDR_PULL_SET_MEM_CTX(ndr, r->out.validation, LIBNDR_FLAG_REF_ALLOC);
 
16493
                NDR_CHECK(ndr_pull_set_switch_value(ndr, r->out.validation, r->in.validation_level));
 
16494
                NDR_CHECK(ndr_pull_netr_Validation(ndr, NDR_SCALARS|NDR_BUFFERS, r->out.validation));
 
16495
                NDR_PULL_SET_MEM_CTX(ndr, _mem_save_validation_0, LIBNDR_FLAG_REF_ALLOC);
 
16496
                if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
 
16497
                        NDR_PULL_ALLOC(ndr, r->out.authoritative);
 
16498
                }
 
16499
                _mem_save_authoritative_0 = NDR_PULL_GET_MEM_CTX(ndr);
 
16500
                NDR_PULL_SET_MEM_CTX(ndr, r->out.authoritative, LIBNDR_FLAG_REF_ALLOC);
 
16501
                NDR_CHECK(ndr_pull_uint8(ndr, NDR_SCALARS, r->out.authoritative));
 
16502
                NDR_PULL_SET_MEM_CTX(ndr, _mem_save_authoritative_0, LIBNDR_FLAG_REF_ALLOC);
 
16503
                if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
 
16504
                        NDR_PULL_ALLOC(ndr, r->out.flags);
 
16505
                }
 
16506
                _mem_save_flags_0 = NDR_PULL_GET_MEM_CTX(ndr);
 
16507
                NDR_PULL_SET_MEM_CTX(ndr, r->out.flags, LIBNDR_FLAG_REF_ALLOC);
 
16508
                NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, r->out.flags));
 
16509
                NDR_PULL_SET_MEM_CTX(ndr, _mem_save_flags_0, LIBNDR_FLAG_REF_ALLOC);
 
16510
                NDR_CHECK(ndr_pull_NTSTATUS(ndr, NDR_SCALARS, &r->out.result));
 
16511
        }
 
16512
        return NDR_ERR_SUCCESS;
 
16513
}
 
16514
 
 
16515
_PUBLIC_ void ndr_print_netr_LogonSamLogonWithFlags(struct ndr_print *ndr, const char *name, int flags, const struct netr_LogonSamLogonWithFlags *r)
 
16516
{
 
16517
        ndr_print_struct(ndr, name, "netr_LogonSamLogonWithFlags");
 
16518
        ndr->depth++;
 
16519
        if (flags & NDR_SET_VALUES) {
 
16520
                ndr->flags |= LIBNDR_PRINT_SET_VALUES;
 
16521
        }
 
16522
        if (flags & NDR_IN) {
 
16523
                ndr_print_struct(ndr, "in", "netr_LogonSamLogonWithFlags");
 
16524
                ndr->depth++;
 
16525
                ndr_print_ptr(ndr, "server_name", r->in.server_name);
 
16526
                ndr->depth++;
 
16527
                if (r->in.server_name) {
 
16528
                        ndr_print_string(ndr, "server_name", r->in.server_name);
 
16529
                }
 
16530
                ndr->depth--;
 
16531
                ndr_print_ptr(ndr, "computer_name", r->in.computer_name);
 
16532
                ndr->depth++;
 
16533
                if (r->in.computer_name) {
 
16534
                        ndr_print_string(ndr, "computer_name", r->in.computer_name);
 
16535
                }
 
16536
                ndr->depth--;
 
16537
                ndr_print_ptr(ndr, "credential", r->in.credential);
 
16538
                ndr->depth++;
 
16539
                if (r->in.credential) {
 
16540
                        ndr_print_netr_Authenticator(ndr, "credential", r->in.credential);
 
16541
                }
 
16542
                ndr->depth--;
 
16543
                ndr_print_ptr(ndr, "return_authenticator", r->in.return_authenticator);
 
16544
                ndr->depth++;
 
16545
                if (r->in.return_authenticator) {
 
16546
                        ndr_print_netr_Authenticator(ndr, "return_authenticator", r->in.return_authenticator);
 
16547
                }
 
16548
                ndr->depth--;
 
16549
                ndr_print_netr_LogonInfoClass(ndr, "logon_level", r->in.logon_level);
 
16550
                ndr_print_ptr(ndr, "logon", r->in.logon);
 
16551
                ndr->depth++;
 
16552
                ndr_print_set_switch_value(ndr, r->in.logon, r->in.logon_level);
 
16553
                ndr_print_netr_LogonLevel(ndr, "logon", r->in.logon);
 
16554
                ndr->depth--;
 
16555
                ndr_print_uint16(ndr, "validation_level", r->in.validation_level);
 
16556
                ndr_print_ptr(ndr, "flags", r->in.flags);
 
16557
                ndr->depth++;
 
16558
                ndr_print_uint32(ndr, "flags", *r->in.flags);
 
16559
                ndr->depth--;
 
16560
                ndr->depth--;
 
16561
        }
 
16562
        if (flags & NDR_OUT) {
 
16563
                ndr_print_struct(ndr, "out", "netr_LogonSamLogonWithFlags");
 
16564
                ndr->depth++;
 
16565
                ndr_print_ptr(ndr, "return_authenticator", r->out.return_authenticator);
 
16566
                ndr->depth++;
 
16567
                if (r->out.return_authenticator) {
 
16568
                        ndr_print_netr_Authenticator(ndr, "return_authenticator", r->out.return_authenticator);
 
16569
                }
 
16570
                ndr->depth--;
 
16571
                ndr_print_ptr(ndr, "validation", r->out.validation);
 
16572
                ndr->depth++;
 
16573
                ndr_print_set_switch_value(ndr, r->out.validation, r->in.validation_level);
 
16574
                ndr_print_netr_Validation(ndr, "validation", r->out.validation);
 
16575
                ndr->depth--;
 
16576
                ndr_print_ptr(ndr, "authoritative", r->out.authoritative);
 
16577
                ndr->depth++;
 
16578
                ndr_print_uint8(ndr, "authoritative", *r->out.authoritative);
 
16579
                ndr->depth--;
 
16580
                ndr_print_ptr(ndr, "flags", r->out.flags);
 
16581
                ndr->depth++;
 
16582
                ndr_print_uint32(ndr, "flags", *r->out.flags);
 
16583
                ndr->depth--;
 
16584
                ndr_print_NTSTATUS(ndr, "result", r->out.result);
 
16585
                ndr->depth--;
 
16586
        }
 
16587
        ndr->depth--;
 
16588
}
 
16589
 
 
16590
static enum ndr_err_code ndr_push_netr_ServerGetTrustInfo(struct ndr_push *ndr, int flags, const struct netr_ServerGetTrustInfo *r)
 
16591
{
 
16592
        if (flags & NDR_IN) {
 
16593
                NDR_CHECK(ndr_push_unique_ptr(ndr, r->in.server_name));
 
16594
                if (r->in.server_name) {
 
16595
                        NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->in.server_name, CH_UTF16)));
 
16596
                        NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, 0));
 
16597
                        NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->in.server_name, CH_UTF16)));
 
16598
                        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));
 
16599
                }
 
16600
                if (r->in.account_name == NULL) {
 
16601
                        return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
 
16602
                }
 
16603
                NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->in.account_name, CH_UTF16)));
 
16604
                NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, 0));
 
16605
                NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->in.account_name, CH_UTF16)));
 
16606
                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));
 
16607
                NDR_CHECK(ndr_push_netr_SchannelType(ndr, NDR_SCALARS, r->in.secure_channel_type));
 
16608
                if (r->in.computer_name == NULL) {
 
16609
                        return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
 
16610
                }
 
16611
                NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->in.computer_name, CH_UTF16)));
 
16612
                NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, 0));
 
16613
                NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->in.computer_name, CH_UTF16)));
 
16614
                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));
 
16615
                if (r->in.credential == NULL) {
 
16616
                        return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
 
16617
                }
 
16618
                NDR_CHECK(ndr_push_netr_Authenticator(ndr, NDR_SCALARS, r->in.credential));
 
16619
        }
 
16620
        if (flags & NDR_OUT) {
 
16621
                if (r->out.return_authenticator == NULL) {
 
16622
                        return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
 
16623
                }
 
16624
                NDR_CHECK(ndr_push_netr_Authenticator(ndr, NDR_SCALARS, r->out.return_authenticator));
 
16625
                if (r->out.new_owf_password == NULL) {
 
16626
                        return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
 
16627
                }
 
16628
                NDR_CHECK(ndr_push_samr_Password(ndr, NDR_SCALARS, r->out.new_owf_password));
 
16629
                if (r->out.old_owf_password == NULL) {
 
16630
                        return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
 
16631
                }
 
16632
                NDR_CHECK(ndr_push_samr_Password(ndr, NDR_SCALARS, r->out.old_owf_password));
 
16633
                if (r->out.trust_info == NULL) {
 
16634
                        return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
 
16635
                }
 
16636
                NDR_CHECK(ndr_push_unique_ptr(ndr, *r->out.trust_info));
 
16637
                if (*r->out.trust_info) {
 
16638
                        NDR_CHECK(ndr_push_netr_TrustInfo(ndr, NDR_SCALARS|NDR_BUFFERS, *r->out.trust_info));
 
16639
                }
 
16640
                NDR_CHECK(ndr_push_NTSTATUS(ndr, NDR_SCALARS, r->out.result));
 
16641
        }
 
16642
        return NDR_ERR_SUCCESS;
 
16643
}
 
16644
 
 
16645
static enum ndr_err_code ndr_pull_netr_ServerGetTrustInfo(struct ndr_pull *ndr, int flags, struct netr_ServerGetTrustInfo *r)
 
16646
{
 
16647
        uint32_t _ptr_server_name;
 
16648
        uint32_t _ptr_trust_info;
 
16649
        TALLOC_CTX *_mem_save_server_name_0;
 
16650
        TALLOC_CTX *_mem_save_credential_0;
 
16651
        TALLOC_CTX *_mem_save_return_authenticator_0;
 
16652
        TALLOC_CTX *_mem_save_new_owf_password_0;
 
16653
        TALLOC_CTX *_mem_save_old_owf_password_0;
 
16654
        TALLOC_CTX *_mem_save_trust_info_0;
 
16655
        TALLOC_CTX *_mem_save_trust_info_1;
 
16656
        if (flags & NDR_IN) {
 
16657
                ZERO_STRUCT(r->out);
 
16658
 
 
16659
                NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_server_name));
 
16660
                if (_ptr_server_name) {
 
16661
                        NDR_PULL_ALLOC(ndr, r->in.server_name);
 
16662
                } else {
 
16663
                        r->in.server_name = NULL;
 
16664
                }
 
16665
                if (r->in.server_name) {
 
16666
                        _mem_save_server_name_0 = NDR_PULL_GET_MEM_CTX(ndr);
 
16667
                        NDR_PULL_SET_MEM_CTX(ndr, r->in.server_name, 0);
 
16668
                        NDR_CHECK(ndr_pull_array_size(ndr, &r->in.server_name));
 
16669
                        NDR_CHECK(ndr_pull_array_length(ndr, &r->in.server_name));
 
16670
                        if (ndr_get_array_length(ndr, &r->in.server_name) > ndr_get_array_size(ndr, &r->in.server_name)) {
 
16671
                                return 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));
 
16672
                        }
 
16673
                        NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->in.server_name), sizeof(uint16_t)));
 
16674
                        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));
 
16675
                        NDR_PULL_SET_MEM_CTX(ndr, _mem_save_server_name_0, 0);
 
16676
                }
 
16677
                NDR_CHECK(ndr_pull_array_size(ndr, &r->in.account_name));
 
16678
                NDR_CHECK(ndr_pull_array_length(ndr, &r->in.account_name));
 
16679
                if (ndr_get_array_length(ndr, &r->in.account_name) > ndr_get_array_size(ndr, &r->in.account_name)) {
 
16680
                        return 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));
 
16681
                }
 
16682
                NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->in.account_name), sizeof(uint16_t)));
 
16683
                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));
 
16684
                NDR_CHECK(ndr_pull_netr_SchannelType(ndr, NDR_SCALARS, &r->in.secure_channel_type));
 
16685
                NDR_CHECK(ndr_pull_array_size(ndr, &r->in.computer_name));
 
16686
                NDR_CHECK(ndr_pull_array_length(ndr, &r->in.computer_name));
 
16687
                if (ndr_get_array_length(ndr, &r->in.computer_name) > ndr_get_array_size(ndr, &r->in.computer_name)) {
 
16688
                        return 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));
 
16689
                }
 
16690
                NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->in.computer_name), sizeof(uint16_t)));
 
16691
                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));
 
16692
                if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
 
16693
                        NDR_PULL_ALLOC(ndr, r->in.credential);
 
16694
                }
 
16695
                _mem_save_credential_0 = NDR_PULL_GET_MEM_CTX(ndr);
 
16696
                NDR_PULL_SET_MEM_CTX(ndr, r->in.credential, LIBNDR_FLAG_REF_ALLOC);
 
16697
                NDR_CHECK(ndr_pull_netr_Authenticator(ndr, NDR_SCALARS, r->in.credential));
 
16698
                NDR_PULL_SET_MEM_CTX(ndr, _mem_save_credential_0, LIBNDR_FLAG_REF_ALLOC);
 
16699
                NDR_PULL_ALLOC(ndr, r->out.return_authenticator);
 
16700
                ZERO_STRUCTP(r->out.return_authenticator);
 
16701
                NDR_PULL_ALLOC(ndr, r->out.new_owf_password);
 
16702
                ZERO_STRUCTP(r->out.new_owf_password);
 
16703
                NDR_PULL_ALLOC(ndr, r->out.old_owf_password);
 
16704
                ZERO_STRUCTP(r->out.old_owf_password);
 
16705
                NDR_PULL_ALLOC(ndr, r->out.trust_info);
 
16706
                ZERO_STRUCTP(r->out.trust_info);
 
16707
        }
 
16708
        if (flags & NDR_OUT) {
 
16709
                if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
 
16710
                        NDR_PULL_ALLOC(ndr, r->out.return_authenticator);
 
16711
                }
 
16712
                _mem_save_return_authenticator_0 = NDR_PULL_GET_MEM_CTX(ndr);
 
16713
                NDR_PULL_SET_MEM_CTX(ndr, r->out.return_authenticator, LIBNDR_FLAG_REF_ALLOC);
 
16714
                NDR_CHECK(ndr_pull_netr_Authenticator(ndr, NDR_SCALARS, r->out.return_authenticator));
 
16715
                NDR_PULL_SET_MEM_CTX(ndr, _mem_save_return_authenticator_0, LIBNDR_FLAG_REF_ALLOC);
 
16716
                if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
 
16717
                        NDR_PULL_ALLOC(ndr, r->out.new_owf_password);
 
16718
                }
 
16719
                _mem_save_new_owf_password_0 = NDR_PULL_GET_MEM_CTX(ndr);
 
16720
                NDR_PULL_SET_MEM_CTX(ndr, r->out.new_owf_password, LIBNDR_FLAG_REF_ALLOC);
 
16721
                NDR_CHECK(ndr_pull_samr_Password(ndr, NDR_SCALARS, r->out.new_owf_password));
 
16722
                NDR_PULL_SET_MEM_CTX(ndr, _mem_save_new_owf_password_0, LIBNDR_FLAG_REF_ALLOC);
 
16723
                if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
 
16724
                        NDR_PULL_ALLOC(ndr, r->out.old_owf_password);
 
16725
                }
 
16726
                _mem_save_old_owf_password_0 = NDR_PULL_GET_MEM_CTX(ndr);
 
16727
                NDR_PULL_SET_MEM_CTX(ndr, r->out.old_owf_password, LIBNDR_FLAG_REF_ALLOC);
 
16728
                NDR_CHECK(ndr_pull_samr_Password(ndr, NDR_SCALARS, r->out.old_owf_password));
 
16729
                NDR_PULL_SET_MEM_CTX(ndr, _mem_save_old_owf_password_0, LIBNDR_FLAG_REF_ALLOC);
 
16730
                if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
 
16731
                        NDR_PULL_ALLOC(ndr, r->out.trust_info);
 
16732
                }
 
16733
                _mem_save_trust_info_0 = NDR_PULL_GET_MEM_CTX(ndr);
 
16734
                NDR_PULL_SET_MEM_CTX(ndr, r->out.trust_info, LIBNDR_FLAG_REF_ALLOC);
 
16735
                NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_trust_info));
 
16736
                if (_ptr_trust_info) {
 
16737
                        NDR_PULL_ALLOC(ndr, *r->out.trust_info);
 
16738
                } else {
 
16739
                        *r->out.trust_info = NULL;
 
16740
                }
 
16741
                if (*r->out.trust_info) {
 
16742
                        _mem_save_trust_info_1 = NDR_PULL_GET_MEM_CTX(ndr);
 
16743
                        NDR_PULL_SET_MEM_CTX(ndr, *r->out.trust_info, 0);
 
16744
                        NDR_CHECK(ndr_pull_netr_TrustInfo(ndr, NDR_SCALARS|NDR_BUFFERS, *r->out.trust_info));
 
16745
                        NDR_PULL_SET_MEM_CTX(ndr, _mem_save_trust_info_1, 0);
 
16746
                }
 
16747
                NDR_PULL_SET_MEM_CTX(ndr, _mem_save_trust_info_0, LIBNDR_FLAG_REF_ALLOC);
 
16748
                NDR_CHECK(ndr_pull_NTSTATUS(ndr, NDR_SCALARS, &r->out.result));
 
16749
        }
 
16750
        return NDR_ERR_SUCCESS;
 
16751
}
 
16752
 
 
16753
_PUBLIC_ void ndr_print_netr_ServerGetTrustInfo(struct ndr_print *ndr, const char *name, int flags, const struct netr_ServerGetTrustInfo *r)
 
16754
{
 
16755
        ndr_print_struct(ndr, name, "netr_ServerGetTrustInfo");
 
16756
        ndr->depth++;
 
16757
        if (flags & NDR_SET_VALUES) {
 
16758
                ndr->flags |= LIBNDR_PRINT_SET_VALUES;
 
16759
        }
 
16760
        if (flags & NDR_IN) {
 
16761
                ndr_print_struct(ndr, "in", "netr_ServerGetTrustInfo");
 
16762
                ndr->depth++;
 
16763
                ndr_print_ptr(ndr, "server_name", r->in.server_name);
 
16764
                ndr->depth++;
 
16765
                if (r->in.server_name) {
 
16766
                        ndr_print_string(ndr, "server_name", r->in.server_name);
 
16767
                }
 
16768
                ndr->depth--;
 
16769
                ndr_print_ptr(ndr, "account_name", r->in.account_name);
 
16770
                ndr->depth++;
 
16771
                ndr_print_string(ndr, "account_name", r->in.account_name);
 
16772
                ndr->depth--;
 
16773
                ndr_print_netr_SchannelType(ndr, "secure_channel_type", r->in.secure_channel_type);
 
16774
                ndr_print_ptr(ndr, "computer_name", r->in.computer_name);
 
16775
                ndr->depth++;
 
16776
                ndr_print_string(ndr, "computer_name", r->in.computer_name);
 
16777
                ndr->depth--;
 
16778
                ndr_print_ptr(ndr, "credential", r->in.credential);
 
16779
                ndr->depth++;
 
16780
                ndr_print_netr_Authenticator(ndr, "credential", r->in.credential);
 
16781
                ndr->depth--;
 
16782
                ndr->depth--;
 
16783
        }
 
16784
        if (flags & NDR_OUT) {
 
16785
                ndr_print_struct(ndr, "out", "netr_ServerGetTrustInfo");
 
16786
                ndr->depth++;
 
16787
                ndr_print_ptr(ndr, "return_authenticator", r->out.return_authenticator);
 
16788
                ndr->depth++;
 
16789
                ndr_print_netr_Authenticator(ndr, "return_authenticator", r->out.return_authenticator);
 
16790
                ndr->depth--;
 
16791
                ndr_print_ptr(ndr, "new_owf_password", r->out.new_owf_password);
 
16792
                ndr->depth++;
 
16793
                ndr_print_samr_Password(ndr, "new_owf_password", r->out.new_owf_password);
 
16794
                ndr->depth--;
 
16795
                ndr_print_ptr(ndr, "old_owf_password", r->out.old_owf_password);
 
16796
                ndr->depth++;
 
16797
                ndr_print_samr_Password(ndr, "old_owf_password", r->out.old_owf_password);
 
16798
                ndr->depth--;
 
16799
                ndr_print_ptr(ndr, "trust_info", r->out.trust_info);
 
16800
                ndr->depth++;
 
16801
                ndr_print_ptr(ndr, "trust_info", *r->out.trust_info);
 
16802
                ndr->depth++;
 
16803
                if (*r->out.trust_info) {
 
16804
                        ndr_print_netr_TrustInfo(ndr, "trust_info", *r->out.trust_info);
 
16805
                }
 
16806
                ndr->depth--;
 
16807
                ndr->depth--;
 
16808
                ndr_print_NTSTATUS(ndr, "result", r->out.result);
 
16809
                ndr->depth--;
 
16810
        }
 
16811
        ndr->depth--;
 
16812
}
 
16813
 
 
16814
static const struct ndr_interface_call netlogon_calls[] = {
 
16815
        {
 
16816
                "netr_LogonUasLogon",
 
16817
                sizeof(struct netr_LogonUasLogon),
 
16818
                (ndr_push_flags_fn_t) ndr_push_netr_LogonUasLogon,
 
16819
                (ndr_pull_flags_fn_t) ndr_pull_netr_LogonUasLogon,
 
16820
                (ndr_print_function_t) ndr_print_netr_LogonUasLogon,
 
16821
                false,
 
16822
        },
 
16823
        {
 
16824
                "netr_LogonUasLogoff",
 
16825
                sizeof(struct netr_LogonUasLogoff),
 
16826
                (ndr_push_flags_fn_t) ndr_push_netr_LogonUasLogoff,
 
16827
                (ndr_pull_flags_fn_t) ndr_pull_netr_LogonUasLogoff,
 
16828
                (ndr_print_function_t) ndr_print_netr_LogonUasLogoff,
 
16829
                false,
 
16830
        },
 
16831
        {
 
16832
                "netr_LogonSamLogon",
 
16833
                sizeof(struct netr_LogonSamLogon),
 
16834
                (ndr_push_flags_fn_t) ndr_push_netr_LogonSamLogon,
 
16835
                (ndr_pull_flags_fn_t) ndr_pull_netr_LogonSamLogon,
 
16836
                (ndr_print_function_t) ndr_print_netr_LogonSamLogon,
 
16837
                false,
 
16838
        },
 
16839
        {
 
16840
                "netr_LogonSamLogoff",
 
16841
                sizeof(struct netr_LogonSamLogoff),
 
16842
                (ndr_push_flags_fn_t) ndr_push_netr_LogonSamLogoff,
 
16843
                (ndr_pull_flags_fn_t) ndr_pull_netr_LogonSamLogoff,
 
16844
                (ndr_print_function_t) ndr_print_netr_LogonSamLogoff,
 
16845
                false,
 
16846
        },
 
16847
        {
 
16848
                "netr_ServerReqChallenge",
 
16849
                sizeof(struct netr_ServerReqChallenge),
 
16850
                (ndr_push_flags_fn_t) ndr_push_netr_ServerReqChallenge,
 
16851
                (ndr_pull_flags_fn_t) ndr_pull_netr_ServerReqChallenge,
 
16852
                (ndr_print_function_t) ndr_print_netr_ServerReqChallenge,
 
16853
                false,
 
16854
        },
 
16855
        {
 
16856
                "netr_ServerAuthenticate",
 
16857
                sizeof(struct netr_ServerAuthenticate),
 
16858
                (ndr_push_flags_fn_t) ndr_push_netr_ServerAuthenticate,
 
16859
                (ndr_pull_flags_fn_t) ndr_pull_netr_ServerAuthenticate,
 
16860
                (ndr_print_function_t) ndr_print_netr_ServerAuthenticate,
 
16861
                false,
 
16862
        },
 
16863
        {
 
16864
                "netr_ServerPasswordSet",
 
16865
                sizeof(struct netr_ServerPasswordSet),
 
16866
                (ndr_push_flags_fn_t) ndr_push_netr_ServerPasswordSet,
 
16867
                (ndr_pull_flags_fn_t) ndr_pull_netr_ServerPasswordSet,
 
16868
                (ndr_print_function_t) ndr_print_netr_ServerPasswordSet,
 
16869
                false,
 
16870
        },
 
16871
        {
 
16872
                "netr_DatabaseDeltas",
 
16873
                sizeof(struct netr_DatabaseDeltas),
 
16874
                (ndr_push_flags_fn_t) ndr_push_netr_DatabaseDeltas,
 
16875
                (ndr_pull_flags_fn_t) ndr_pull_netr_DatabaseDeltas,
 
16876
                (ndr_print_function_t) ndr_print_netr_DatabaseDeltas,
 
16877
                false,
 
16878
        },
 
16879
        {
 
16880
                "netr_DatabaseSync",
 
16881
                sizeof(struct netr_DatabaseSync),
 
16882
                (ndr_push_flags_fn_t) ndr_push_netr_DatabaseSync,
 
16883
                (ndr_pull_flags_fn_t) ndr_pull_netr_DatabaseSync,
 
16884
                (ndr_print_function_t) ndr_print_netr_DatabaseSync,
 
16885
                false,
 
16886
        },
 
16887
        {
 
16888
                "netr_AccountDeltas",
 
16889
                sizeof(struct netr_AccountDeltas),
 
16890
                (ndr_push_flags_fn_t) ndr_push_netr_AccountDeltas,
 
16891
                (ndr_pull_flags_fn_t) ndr_pull_netr_AccountDeltas,
 
16892
                (ndr_print_function_t) ndr_print_netr_AccountDeltas,
 
16893
                false,
 
16894
        },
 
16895
        {
 
16896
                "netr_AccountSync",
 
16897
                sizeof(struct netr_AccountSync),
 
16898
                (ndr_push_flags_fn_t) ndr_push_netr_AccountSync,
 
16899
                (ndr_pull_flags_fn_t) ndr_pull_netr_AccountSync,
 
16900
                (ndr_print_function_t) ndr_print_netr_AccountSync,
 
16901
                false,
 
16902
        },
 
16903
        {
 
16904
                "netr_GetDcName",
 
16905
                sizeof(struct netr_GetDcName),
 
16906
                (ndr_push_flags_fn_t) ndr_push_netr_GetDcName,
 
16907
                (ndr_pull_flags_fn_t) ndr_pull_netr_GetDcName,
 
16908
                (ndr_print_function_t) ndr_print_netr_GetDcName,
 
16909
                false,
 
16910
        },
 
16911
        {
 
16912
                "netr_LogonControl",
 
16913
                sizeof(struct netr_LogonControl),
 
16914
                (ndr_push_flags_fn_t) ndr_push_netr_LogonControl,
 
16915
                (ndr_pull_flags_fn_t) ndr_pull_netr_LogonControl,
 
16916
                (ndr_print_function_t) ndr_print_netr_LogonControl,
 
16917
                false,
 
16918
        },
 
16919
        {
 
16920
                "netr_GetAnyDCName",
 
16921
                sizeof(struct netr_GetAnyDCName),
 
16922
                (ndr_push_flags_fn_t) ndr_push_netr_GetAnyDCName,
 
16923
                (ndr_pull_flags_fn_t) ndr_pull_netr_GetAnyDCName,
 
16924
                (ndr_print_function_t) ndr_print_netr_GetAnyDCName,
 
16925
                false,
 
16926
        },
 
16927
        {
 
16928
                "netr_LogonControl2",
 
16929
                sizeof(struct netr_LogonControl2),
 
16930
                (ndr_push_flags_fn_t) ndr_push_netr_LogonControl2,
 
16931
                (ndr_pull_flags_fn_t) ndr_pull_netr_LogonControl2,
 
16932
                (ndr_print_function_t) ndr_print_netr_LogonControl2,
 
16933
                false,
 
16934
        },
 
16935
        {
 
16936
                "netr_ServerAuthenticate2",
 
16937
                sizeof(struct netr_ServerAuthenticate2),
 
16938
                (ndr_push_flags_fn_t) ndr_push_netr_ServerAuthenticate2,
 
16939
                (ndr_pull_flags_fn_t) ndr_pull_netr_ServerAuthenticate2,
 
16940
                (ndr_print_function_t) ndr_print_netr_ServerAuthenticate2,
 
16941
                false,
 
16942
        },
 
16943
        {
 
16944
                "netr_DatabaseSync2",
 
16945
                sizeof(struct netr_DatabaseSync2),
 
16946
                (ndr_push_flags_fn_t) ndr_push_netr_DatabaseSync2,
 
16947
                (ndr_pull_flags_fn_t) ndr_pull_netr_DatabaseSync2,
 
16948
                (ndr_print_function_t) ndr_print_netr_DatabaseSync2,
 
16949
                false,
 
16950
        },
 
16951
        {
 
16952
                "netr_DatabaseRedo",
 
16953
                sizeof(struct netr_DatabaseRedo),
 
16954
                (ndr_push_flags_fn_t) ndr_push_netr_DatabaseRedo,
 
16955
                (ndr_pull_flags_fn_t) ndr_pull_netr_DatabaseRedo,
 
16956
                (ndr_print_function_t) ndr_print_netr_DatabaseRedo,
 
16957
                false,
 
16958
        },
 
16959
        {
 
16960
                "netr_LogonControl2Ex",
 
16961
                sizeof(struct netr_LogonControl2Ex),
 
16962
                (ndr_push_flags_fn_t) ndr_push_netr_LogonControl2Ex,
 
16963
                (ndr_pull_flags_fn_t) ndr_pull_netr_LogonControl2Ex,
 
16964
                (ndr_print_function_t) ndr_print_netr_LogonControl2Ex,
 
16965
                false,
 
16966
        },
 
16967
        {
 
16968
                "netr_NetrEnumerateTrustedDomains",
 
16969
                sizeof(struct netr_NetrEnumerateTrustedDomains),
 
16970
                (ndr_push_flags_fn_t) ndr_push_netr_NetrEnumerateTrustedDomains,
 
16971
                (ndr_pull_flags_fn_t) ndr_pull_netr_NetrEnumerateTrustedDomains,
 
16972
                (ndr_print_function_t) ndr_print_netr_NetrEnumerateTrustedDomains,
 
16973
                false,
 
16974
        },
 
16975
        {
 
16976
                "netr_DsRGetDCName",
 
16977
                sizeof(struct netr_DsRGetDCName),
 
16978
                (ndr_push_flags_fn_t) ndr_push_netr_DsRGetDCName,
 
16979
                (ndr_pull_flags_fn_t) ndr_pull_netr_DsRGetDCName,
 
16980
                (ndr_print_function_t) ndr_print_netr_DsRGetDCName,
 
16981
                false,
 
16982
        },
 
16983
        {
 
16984
                "netr_LogonGetCapabilities",
 
16985
                sizeof(struct netr_LogonGetCapabilities),
 
16986
                (ndr_push_flags_fn_t) ndr_push_netr_LogonGetCapabilities,
 
16987
                (ndr_pull_flags_fn_t) ndr_pull_netr_LogonGetCapabilities,
 
16988
                (ndr_print_function_t) ndr_print_netr_LogonGetCapabilities,
 
16989
                false,
 
16990
        },
 
16991
        {
 
16992
                "netr_NETRLOGONSETSERVICEBITS",
 
16993
                sizeof(struct netr_NETRLOGONSETSERVICEBITS),
 
16994
                (ndr_push_flags_fn_t) ndr_push_netr_NETRLOGONSETSERVICEBITS,
 
16995
                (ndr_pull_flags_fn_t) ndr_pull_netr_NETRLOGONSETSERVICEBITS,
 
16996
                (ndr_print_function_t) ndr_print_netr_NETRLOGONSETSERVICEBITS,
 
16997
                false,
 
16998
        },
 
16999
        {
 
17000
                "netr_LogonGetTrustRid",
 
17001
                sizeof(struct netr_LogonGetTrustRid),
 
17002
                (ndr_push_flags_fn_t) ndr_push_netr_LogonGetTrustRid,
 
17003
                (ndr_pull_flags_fn_t) ndr_pull_netr_LogonGetTrustRid,
 
17004
                (ndr_print_function_t) ndr_print_netr_LogonGetTrustRid,
 
17005
                false,
 
17006
        },
 
17007
        {
 
17008
                "netr_NETRLOGONCOMPUTESERVERDIGEST",
 
17009
                sizeof(struct netr_NETRLOGONCOMPUTESERVERDIGEST),
 
17010
                (ndr_push_flags_fn_t) ndr_push_netr_NETRLOGONCOMPUTESERVERDIGEST,
 
17011
                (ndr_pull_flags_fn_t) ndr_pull_netr_NETRLOGONCOMPUTESERVERDIGEST,
 
17012
                (ndr_print_function_t) ndr_print_netr_NETRLOGONCOMPUTESERVERDIGEST,
 
17013
                false,
 
17014
        },
 
17015
        {
 
17016
                "netr_NETRLOGONCOMPUTECLIENTDIGEST",
 
17017
                sizeof(struct netr_NETRLOGONCOMPUTECLIENTDIGEST),
 
17018
                (ndr_push_flags_fn_t) ndr_push_netr_NETRLOGONCOMPUTECLIENTDIGEST,
 
17019
                (ndr_pull_flags_fn_t) ndr_pull_netr_NETRLOGONCOMPUTECLIENTDIGEST,
 
17020
                (ndr_print_function_t) ndr_print_netr_NETRLOGONCOMPUTECLIENTDIGEST,
 
17021
                false,
 
17022
        },
 
17023
        {
 
17024
                "netr_ServerAuthenticate3",
 
17025
                sizeof(struct netr_ServerAuthenticate3),
 
17026
                (ndr_push_flags_fn_t) ndr_push_netr_ServerAuthenticate3,
 
17027
                (ndr_pull_flags_fn_t) ndr_pull_netr_ServerAuthenticate3,
 
17028
                (ndr_print_function_t) ndr_print_netr_ServerAuthenticate3,
 
17029
                false,
 
17030
        },
 
17031
        {
 
17032
                "netr_DsRGetDCNameEx",
 
17033
                sizeof(struct netr_DsRGetDCNameEx),
 
17034
                (ndr_push_flags_fn_t) ndr_push_netr_DsRGetDCNameEx,
 
17035
                (ndr_pull_flags_fn_t) ndr_pull_netr_DsRGetDCNameEx,
 
17036
                (ndr_print_function_t) ndr_print_netr_DsRGetDCNameEx,
 
17037
                false,
 
17038
        },
 
17039
        {
 
17040
                "netr_DsRGetSiteName",
 
17041
                sizeof(struct netr_DsRGetSiteName),
 
17042
                (ndr_push_flags_fn_t) ndr_push_netr_DsRGetSiteName,
 
17043
                (ndr_pull_flags_fn_t) ndr_pull_netr_DsRGetSiteName,
 
17044
                (ndr_print_function_t) ndr_print_netr_DsRGetSiteName,
 
17045
                false,
 
17046
        },
 
17047
        {
 
17048
                "netr_LogonGetDomainInfo",
 
17049
                sizeof(struct netr_LogonGetDomainInfo),
 
17050
                (ndr_push_flags_fn_t) ndr_push_netr_LogonGetDomainInfo,
 
17051
                (ndr_pull_flags_fn_t) ndr_pull_netr_LogonGetDomainInfo,
 
17052
                (ndr_print_function_t) ndr_print_netr_LogonGetDomainInfo,
 
17053
                false,
 
17054
        },
 
17055
        {
 
17056
                "netr_ServerPasswordSet2",
 
17057
                sizeof(struct netr_ServerPasswordSet2),
 
17058
                (ndr_push_flags_fn_t) ndr_push_netr_ServerPasswordSet2,
 
17059
                (ndr_pull_flags_fn_t) ndr_pull_netr_ServerPasswordSet2,
 
17060
                (ndr_print_function_t) ndr_print_netr_ServerPasswordSet2,
 
17061
                false,
 
17062
        },
 
17063
        {
 
17064
                "netr_ServerPasswordGet",
 
17065
                sizeof(struct netr_ServerPasswordGet),
 
17066
                (ndr_push_flags_fn_t) ndr_push_netr_ServerPasswordGet,
 
17067
                (ndr_pull_flags_fn_t) ndr_pull_netr_ServerPasswordGet,
 
17068
                (ndr_print_function_t) ndr_print_netr_ServerPasswordGet,
 
17069
                false,
 
17070
        },
 
17071
        {
 
17072
                "netr_NETRLOGONSENDTOSAM",
 
17073
                sizeof(struct netr_NETRLOGONSENDTOSAM),
 
17074
                (ndr_push_flags_fn_t) ndr_push_netr_NETRLOGONSENDTOSAM,
 
17075
                (ndr_pull_flags_fn_t) ndr_pull_netr_NETRLOGONSENDTOSAM,
 
17076
                (ndr_print_function_t) ndr_print_netr_NETRLOGONSENDTOSAM,
 
17077
                false,
 
17078
        },
 
17079
        {
 
17080
                "netr_DsRAddressToSitenamesW",
 
17081
                sizeof(struct netr_DsRAddressToSitenamesW),
 
17082
                (ndr_push_flags_fn_t) ndr_push_netr_DsRAddressToSitenamesW,
 
17083
                (ndr_pull_flags_fn_t) ndr_pull_netr_DsRAddressToSitenamesW,
 
17084
                (ndr_print_function_t) ndr_print_netr_DsRAddressToSitenamesW,
 
17085
                false,
 
17086
        },
 
17087
        {
 
17088
                "netr_DsRGetDCNameEx2",
 
17089
                sizeof(struct netr_DsRGetDCNameEx2),
 
17090
                (ndr_push_flags_fn_t) ndr_push_netr_DsRGetDCNameEx2,
 
17091
                (ndr_pull_flags_fn_t) ndr_pull_netr_DsRGetDCNameEx2,
 
17092
                (ndr_print_function_t) ndr_print_netr_DsRGetDCNameEx2,
 
17093
                false,
 
17094
        },
 
17095
        {
 
17096
                "netr_NETRLOGONGETTIMESERVICEPARENTDOMAIN",
 
17097
                sizeof(struct netr_NETRLOGONGETTIMESERVICEPARENTDOMAIN),
 
17098
                (ndr_push_flags_fn_t) ndr_push_netr_NETRLOGONGETTIMESERVICEPARENTDOMAIN,
 
17099
                (ndr_pull_flags_fn_t) ndr_pull_netr_NETRLOGONGETTIMESERVICEPARENTDOMAIN,
 
17100
                (ndr_print_function_t) ndr_print_netr_NETRLOGONGETTIMESERVICEPARENTDOMAIN,
 
17101
                false,
 
17102
        },
 
17103
        {
 
17104
                "netr_NetrEnumerateTrustedDomainsEx",
 
17105
                sizeof(struct netr_NetrEnumerateTrustedDomainsEx),
 
17106
                (ndr_push_flags_fn_t) ndr_push_netr_NetrEnumerateTrustedDomainsEx,
 
17107
                (ndr_pull_flags_fn_t) ndr_pull_netr_NetrEnumerateTrustedDomainsEx,
 
17108
                (ndr_print_function_t) ndr_print_netr_NetrEnumerateTrustedDomainsEx,
 
17109
                false,
 
17110
        },
 
17111
        {
 
17112
                "netr_DsRAddressToSitenamesExW",
 
17113
                sizeof(struct netr_DsRAddressToSitenamesExW),
 
17114
                (ndr_push_flags_fn_t) ndr_push_netr_DsRAddressToSitenamesExW,
 
17115
                (ndr_pull_flags_fn_t) ndr_pull_netr_DsRAddressToSitenamesExW,
 
17116
                (ndr_print_function_t) ndr_print_netr_DsRAddressToSitenamesExW,
 
17117
                false,
 
17118
        },
 
17119
        {
 
17120
                "netr_DsrGetDcSiteCoverageW",
 
17121
                sizeof(struct netr_DsrGetDcSiteCoverageW),
 
17122
                (ndr_push_flags_fn_t) ndr_push_netr_DsrGetDcSiteCoverageW,
 
17123
                (ndr_pull_flags_fn_t) ndr_pull_netr_DsrGetDcSiteCoverageW,
 
17124
                (ndr_print_function_t) ndr_print_netr_DsrGetDcSiteCoverageW,
 
17125
                false,
 
17126
        },
 
17127
        {
 
17128
                "netr_LogonSamLogonEx",
 
17129
                sizeof(struct netr_LogonSamLogonEx),
 
17130
                (ndr_push_flags_fn_t) ndr_push_netr_LogonSamLogonEx,
 
17131
                (ndr_pull_flags_fn_t) ndr_pull_netr_LogonSamLogonEx,
 
17132
                (ndr_print_function_t) ndr_print_netr_LogonSamLogonEx,
 
17133
                false,
 
17134
        },
 
17135
        {
 
17136
                "netr_DsrEnumerateDomainTrusts",
 
17137
                sizeof(struct netr_DsrEnumerateDomainTrusts),
 
17138
                (ndr_push_flags_fn_t) ndr_push_netr_DsrEnumerateDomainTrusts,
 
17139
                (ndr_pull_flags_fn_t) ndr_pull_netr_DsrEnumerateDomainTrusts,
 
17140
                (ndr_print_function_t) ndr_print_netr_DsrEnumerateDomainTrusts,
 
17141
                false,
 
17142
        },
 
17143
        {
 
17144
                "netr_DsrDeregisterDNSHostRecords",
 
17145
                sizeof(struct netr_DsrDeregisterDNSHostRecords),
 
17146
                (ndr_push_flags_fn_t) ndr_push_netr_DsrDeregisterDNSHostRecords,
 
17147
                (ndr_pull_flags_fn_t) ndr_pull_netr_DsrDeregisterDNSHostRecords,
 
17148
                (ndr_print_function_t) ndr_print_netr_DsrDeregisterDNSHostRecords,
 
17149
                false,
 
17150
        },
 
17151
        {
 
17152
                "netr_ServerTrustPasswordsGet",
 
17153
                sizeof(struct netr_ServerTrustPasswordsGet),
 
17154
                (ndr_push_flags_fn_t) ndr_push_netr_ServerTrustPasswordsGet,
 
17155
                (ndr_pull_flags_fn_t) ndr_pull_netr_ServerTrustPasswordsGet,
 
17156
                (ndr_print_function_t) ndr_print_netr_ServerTrustPasswordsGet,
 
17157
                false,
 
17158
        },
 
17159
        {
 
17160
                "netr_DsRGetForestTrustInformation",
 
17161
                sizeof(struct netr_DsRGetForestTrustInformation),
 
17162
                (ndr_push_flags_fn_t) ndr_push_netr_DsRGetForestTrustInformation,
 
17163
                (ndr_pull_flags_fn_t) ndr_pull_netr_DsRGetForestTrustInformation,
 
17164
                (ndr_print_function_t) ndr_print_netr_DsRGetForestTrustInformation,
 
17165
                false,
 
17166
        },
 
17167
        {
 
17168
                "netr_GetForestTrustInformation",
 
17169
                sizeof(struct netr_GetForestTrustInformation),
 
17170
                (ndr_push_flags_fn_t) ndr_push_netr_GetForestTrustInformation,
 
17171
                (ndr_pull_flags_fn_t) ndr_pull_netr_GetForestTrustInformation,
 
17172
                (ndr_print_function_t) ndr_print_netr_GetForestTrustInformation,
 
17173
                false,
 
17174
        },
 
17175
        {
 
17176
                "netr_LogonSamLogonWithFlags",
 
17177
                sizeof(struct netr_LogonSamLogonWithFlags),
 
17178
                (ndr_push_flags_fn_t) ndr_push_netr_LogonSamLogonWithFlags,
 
17179
                (ndr_pull_flags_fn_t) ndr_pull_netr_LogonSamLogonWithFlags,
 
17180
                (ndr_print_function_t) ndr_print_netr_LogonSamLogonWithFlags,
 
17181
                false,
 
17182
        },
 
17183
        {
 
17184
                "netr_ServerGetTrustInfo",
 
17185
                sizeof(struct netr_ServerGetTrustInfo),
 
17186
                (ndr_push_flags_fn_t) ndr_push_netr_ServerGetTrustInfo,
 
17187
                (ndr_pull_flags_fn_t) ndr_pull_netr_ServerGetTrustInfo,
 
17188
                (ndr_print_function_t) ndr_print_netr_ServerGetTrustInfo,
 
17189
                false,
 
17190
        },
 
17191
        { NULL, 0, NULL, NULL, NULL, false }
 
17192
};
 
17193
 
 
17194
static const char * const netlogon_endpoint_strings[] = {
 
17195
        "ncacn_np:[\\pipe\\netlogon]", 
 
17196
        "ncacn_ip_tcp:", 
 
17197
        "ncalrpc:", 
 
17198
};
 
17199
 
 
17200
static const struct ndr_interface_string_array netlogon_endpoints = {
 
17201
        .count  = 3,
 
17202
        .names  = netlogon_endpoint_strings
 
17203
};
 
17204
 
 
17205
static const char * const netlogon_authservice_strings[] = {
 
17206
        "host", 
 
17207
};
 
17208
 
 
17209
static const struct ndr_interface_string_array netlogon_authservices = {
 
17210
        .count  = 1,
 
17211
        .names  = netlogon_authservice_strings
 
17212
};
 
17213
 
 
17214
 
 
17215
const struct ndr_interface_table ndr_table_netlogon = {
 
17216
        .name           = "netlogon",
 
17217
        .syntax_id      = {
 
17218
                {0x12345678,0x1234,0xabcd,{0xef,0x00},{0x01,0x23,0x45,0x67,0xcf,0xfb}},
 
17219
                NDR_NETLOGON_VERSION
 
17220
        },
 
17221
        .helpstring     = NDR_NETLOGON_HELPSTRING,
 
17222
        .num_calls      = 47,
 
17223
        .calls          = netlogon_calls,
 
17224
        .endpoints      = &netlogon_endpoints,
 
17225
        .authservices   = &netlogon_authservices
 
17226
};
 
17227