1 /* parser auto-generated by pidl */
4 #include "librpc/gen_ndr/ndr_winbind_protocol.h"
6 #include "librpc/gen_ndr/ndr_security.h"
7 #include "librpc/gen_ndr/ndr_lsa.h"
8 #include "librpc/gen_ndr/ndr_samr.h"
9 #include "librpc/gen_ndr/ndr_netlogon.h"
10 _PUBLIC_ enum ndr_err_code ndr_push_winbind_status(struct ndr_push *ndr, int ndr_flags, enum winbind_status r)
12 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r));
13 return NDR_ERR_SUCCESS;
16 _PUBLIC_ enum ndr_err_code ndr_pull_winbind_status(struct ndr_pull *ndr, int ndr_flags, enum winbind_status *r)
19 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &v));
21 return NDR_ERR_SUCCESS;
24 _PUBLIC_ void ndr_print_winbind_status(struct ndr_print *ndr, const char *name, enum winbind_status r)
26 const char *val = NULL;
29 case WINBIND_STATUS_OK: val = "WINBIND_STATUS_OK"; break;
30 case WINBIND_STATUS_UNKNOWN_ERROR: val = "WINBIND_STATUS_UNKNOWN_ERROR"; break;
31 case WINBIND_STATUS_NOT_IMPLEMENTED: val = "WINBIND_STATUS_NOT_IMPLEMENTED"; break;
32 case WINBIND_STATUS_NOT_SUPPORTED: val = "WINBIND_STATUS_NOT_SUPPORTED"; break;
33 case WINBIND_STATUS_NO_MEMORY: val = "WINBIND_STATUS_NO_MEMORY"; break;
34 case WINBIND_STATUS_INVALID_PARAMETER: val = "WINBIND_STATUS_INVALID_PARAMETER"; break;
35 case WINBIND_STATUS_INVALID_LEVEL: val = "WINBIND_STATUS_INVALID_LEVEL"; break;
36 case WINBIND_STATUS_UNKNOWN_LEVEL: val = "WINBIND_STATUS_UNKNOWN_LEVEL"; break;
37 case WINBIND_STATUS_DOMAIN_OFFLINE: val = "WINBIND_STATUS_DOMAIN_OFFLINE"; break;
39 ndr_print_enum(ndr, name, "ENUM", val, r);
42 static enum ndr_err_code ndr_push_winbind_header_version(struct ndr_push *ndr, int ndr_flags, uint16_t r)
44 NDR_CHECK(ndr_push_uint16(ndr, NDR_SCALARS, r));
45 return NDR_ERR_SUCCESS;
48 static enum ndr_err_code ndr_pull_winbind_header_version(struct ndr_pull *ndr, int ndr_flags, uint16_t *r)
51 NDR_CHECK(ndr_pull_uint16(ndr, NDR_SCALARS, &v));
53 return NDR_ERR_SUCCESS;
56 _PUBLIC_ void ndr_print_winbind_header_version(struct ndr_print *ndr, const char *name, uint16_t r)
58 ndr_print_uint16(ndr, name, r);
60 ndr_print_bitmap_flag(ndr, sizeof(uint16_t), "WINBIND_HEADER_VERSION", WINBIND_HEADER_VERSION, r);
64 static enum ndr_err_code ndr_push_winbind_header_flags(struct ndr_push *ndr, int ndr_flags, uint32_t r)
66 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r));
67 return NDR_ERR_SUCCESS;
70 static enum ndr_err_code ndr_pull_winbind_header_flags(struct ndr_pull *ndr, int ndr_flags, uint32_t *r)
73 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &v));
75 return NDR_ERR_SUCCESS;
78 _PUBLIC_ void ndr_print_winbind_header_flags(struct ndr_print *ndr, const char *name, uint32_t r)
80 ndr_print_uint32(ndr, name, r);
82 ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "WINBIND_HEADER_FLAGS_RESPONSE", WINBIND_HEADER_FLAGS_RESPONSE, r);
83 ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "WINBIND_HEADER_FLAGS_ERROR", WINBIND_HEADER_FLAGS_ERROR, r);
87 _PUBLIC_ enum ndr_err_code ndr_push_STRUCT_winbind_header(struct ndr_push *ndr, int ndr_flags, const struct winbind_header *r)
89 if (ndr_flags & NDR_SCALARS) {
90 NDR_CHECK(ndr_push_align(ndr, 4));
91 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->length));
92 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, "WBPT", 4, sizeof(uint8_t), CH_DOS));
93 NDR_CHECK(ndr_push_winbind_header_version(ndr, NDR_SCALARS, WINBIND_HEADER_VERSION));
94 NDR_CHECK(ndr_push_uint16(ndr, NDR_SCALARS, r->opnum));
95 NDR_CHECK(ndr_push_winbind_header_flags(ndr, NDR_SCALARS, r->flags));
97 if (ndr_flags & NDR_BUFFERS) {
99 return NDR_ERR_SUCCESS;
102 _PUBLIC_ enum ndr_err_code ndr_pull_STRUCT_winbind_header(struct ndr_pull *ndr, int ndr_flags, struct winbind_header *r)
104 if (ndr_flags & NDR_SCALARS) {
105 NDR_CHECK(ndr_pull_align(ndr, 4));
106 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->length));
107 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->magic, 4, sizeof(uint8_t), CH_DOS));
108 NDR_CHECK(ndr_pull_winbind_header_version(ndr, NDR_SCALARS, &r->version));
109 NDR_CHECK(ndr_pull_uint16(ndr, NDR_SCALARS, &r->opnum));
110 NDR_CHECK(ndr_pull_winbind_header_flags(ndr, NDR_SCALARS, &r->flags));
112 if (ndr_flags & NDR_BUFFERS) {
114 return NDR_ERR_SUCCESS;
117 _PUBLIC_ void ndr_print_STRUCT_winbind_header(struct ndr_print *ndr, const char *name, const struct winbind_header *r)
119 ndr_print_struct(ndr, name, "winbind_header");
121 ndr_print_uint32(ndr, "length", r->length);
122 ndr_print_string(ndr, "magic", (ndr->flags & LIBNDR_PRINT_SET_VALUES)?"WBPT":r->magic);
123 ndr_print_winbind_header_version(ndr, "version", (ndr->flags & LIBNDR_PRINT_SET_VALUES)?WINBIND_HEADER_VERSION:r->version);
124 ndr_print_uint16(ndr, "opnum", r->opnum);
125 ndr_print_winbind_header_flags(ndr, "flags", r->flags);
129 static enum ndr_err_code ndr_push_winbind_auth_level(struct ndr_push *ndr, int ndr_flags, enum winbind_auth_level r)
131 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r));
132 return NDR_ERR_SUCCESS;
135 static enum ndr_err_code ndr_pull_winbind_auth_level(struct ndr_pull *ndr, int ndr_flags, enum winbind_auth_level *r)
138 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &v));
140 return NDR_ERR_SUCCESS;
143 _PUBLIC_ void ndr_print_winbind_auth_level(struct ndr_print *ndr, const char *name, enum winbind_auth_level r)
145 const char *val = NULL;
148 case WINBIND_AUTH_LEVEL_COMPAT_AUTH_PLAIN: val = "WINBIND_AUTH_LEVEL_COMPAT_AUTH_PLAIN"; break;
149 case WINBIND_AUTH_LEVEL_COMPAT_AUTH_RESPONSE: val = "WINBIND_AUTH_LEVEL_COMPAT_AUTH_RESPONSE"; break;
150 case WINBIND_AUTH_LEVEL_COMPAT_LOGOFF: val = "WINBIND_AUTH_LEVEL_COMPAT_LOGOFF"; break;
151 case WINBIND_AUTH_LEVEL_CHANGE_PASSWORD_PLAIN: val = "WINBIND_AUTH_LEVEL_CHANGE_PASSWORD_PLAIN"; break;
152 case WINBIND_AUTH_LEVEL_CHANGE_PASSWORD_CRYPT: val = "WINBIND_AUTH_LEVEL_CHANGE_PASSWORD_CRYPT"; break;
154 ndr_print_enum(ndr, name, "ENUM", val, r);
157 static enum ndr_err_code ndr_push_STRUCT_winbind_auth_compat_auth_plain_req(struct ndr_push *ndr, int ndr_flags, const struct winbind_auth_compat_auth_plain_req *r)
159 uint32_t cntr_require_membership_of_sids_1;
160 if (ndr_flags & NDR_SCALARS) {
161 NDR_CHECK(ndr_push_align(ndr, 4));
162 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->flags));
163 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->account_name, CH_UTF8)));
164 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0));
165 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->account_name, CH_UTF8)));
166 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->account_name, ndr_charset_length(r->account_name, CH_UTF8), sizeof(uint8_t), CH_UTF8));
167 NDR_CHECK(ndr_push_unique_ptr(ndr, r->domain_name));
168 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->password, CH_UTF8)));
169 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0));
170 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->password, CH_UTF8)));
171 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->password, ndr_charset_length(r->password, CH_UTF8), sizeof(uint8_t), CH_UTF8));
172 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->num_require_membership_of_sids));
173 NDR_CHECK(ndr_push_unique_ptr(ndr, r->require_membership_of_sids));
174 NDR_CHECK(ndr_push_unique_ptr(ndr, r->krb5_cc_type));
175 NDR_CHECK(ndr_push_unique_ptr(ndr, r->uid));
177 if (ndr_flags & NDR_BUFFERS) {
178 if (r->domain_name) {
179 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->domain_name, CH_UTF8)));
180 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0));
181 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->domain_name, CH_UTF8)));
182 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->domain_name, ndr_charset_length(r->domain_name, CH_UTF8), sizeof(uint8_t), CH_UTF8));
184 if (r->require_membership_of_sids) {
185 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->num_require_membership_of_sids));
186 for (cntr_require_membership_of_sids_1 = 0; cntr_require_membership_of_sids_1 < r->num_require_membership_of_sids; cntr_require_membership_of_sids_1++) {
187 NDR_CHECK(ndr_push_dom_sid(ndr, NDR_SCALARS, &r->require_membership_of_sids[cntr_require_membership_of_sids_1]));
189 for (cntr_require_membership_of_sids_1 = 0; cntr_require_membership_of_sids_1 < r->num_require_membership_of_sids; cntr_require_membership_of_sids_1++) {
190 NDR_CHECK(ndr_push_dom_sid(ndr, NDR_BUFFERS, &r->require_membership_of_sids[cntr_require_membership_of_sids_1]));
193 if (r->krb5_cc_type) {
194 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->krb5_cc_type, CH_UTF8)));
195 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0));
196 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->krb5_cc_type, CH_UTF8)));
197 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->krb5_cc_type, ndr_charset_length(r->krb5_cc_type, CH_UTF8), sizeof(uint8_t), CH_UTF8));
200 NDR_CHECK(ndr_push_hyper(ndr, NDR_SCALARS, *r->uid));
203 return NDR_ERR_SUCCESS;
206 static enum ndr_err_code ndr_pull_STRUCT_winbind_auth_compat_auth_plain_req(struct ndr_pull *ndr, int ndr_flags, struct winbind_auth_compat_auth_plain_req *r)
208 uint32_t _ptr_domain_name;
209 TALLOC_CTX *_mem_save_domain_name_0;
210 uint32_t _ptr_require_membership_of_sids;
211 uint32_t cntr_require_membership_of_sids_1;
212 TALLOC_CTX *_mem_save_require_membership_of_sids_0;
213 TALLOC_CTX *_mem_save_require_membership_of_sids_1;
214 uint32_t _ptr_krb5_cc_type;
215 TALLOC_CTX *_mem_save_krb5_cc_type_0;
217 TALLOC_CTX *_mem_save_uid_0;
218 if (ndr_flags & NDR_SCALARS) {
219 NDR_CHECK(ndr_pull_align(ndr, 4));
220 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->flags));
221 NDR_CHECK(ndr_pull_array_size(ndr, &r->account_name));
222 NDR_CHECK(ndr_pull_array_length(ndr, &r->account_name));
223 if (ndr_get_array_length(ndr, &r->account_name) > ndr_get_array_size(ndr, &r->account_name)) {
224 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));
226 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->account_name), sizeof(uint8_t)));
227 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->account_name, ndr_get_array_length(ndr, &r->account_name), sizeof(uint8_t), CH_UTF8));
228 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_domain_name));
229 if (_ptr_domain_name) {
230 NDR_PULL_ALLOC(ndr, r->domain_name);
232 r->domain_name = NULL;
234 NDR_CHECK(ndr_pull_array_size(ndr, &r->password));
235 NDR_CHECK(ndr_pull_array_length(ndr, &r->password));
236 if (ndr_get_array_length(ndr, &r->password) > ndr_get_array_size(ndr, &r->password)) {
237 return ndr_pull_error(ndr, NDR_ERR_ARRAY_SIZE, "Bad array size %u should exceed array length %u", ndr_get_array_size(ndr, &r->password), ndr_get_array_length(ndr, &r->password));
239 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->password), sizeof(uint8_t)));
240 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->password, ndr_get_array_length(ndr, &r->password), sizeof(uint8_t), CH_UTF8));
241 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->num_require_membership_of_sids));
242 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_require_membership_of_sids));
243 if (_ptr_require_membership_of_sids) {
244 NDR_PULL_ALLOC(ndr, r->require_membership_of_sids);
246 r->require_membership_of_sids = NULL;
248 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_krb5_cc_type));
249 if (_ptr_krb5_cc_type) {
250 NDR_PULL_ALLOC(ndr, r->krb5_cc_type);
252 r->krb5_cc_type = NULL;
254 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_uid));
256 NDR_PULL_ALLOC(ndr, r->uid);
261 if (ndr_flags & NDR_BUFFERS) {
262 if (r->domain_name) {
263 _mem_save_domain_name_0 = NDR_PULL_GET_MEM_CTX(ndr);
264 NDR_PULL_SET_MEM_CTX(ndr, r->domain_name, 0);
265 NDR_CHECK(ndr_pull_array_size(ndr, &r->domain_name));
266 NDR_CHECK(ndr_pull_array_length(ndr, &r->domain_name));
267 if (ndr_get_array_length(ndr, &r->domain_name) > ndr_get_array_size(ndr, &r->domain_name)) {
268 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));
270 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->domain_name), sizeof(uint8_t)));
271 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->domain_name, ndr_get_array_length(ndr, &r->domain_name), sizeof(uint8_t), CH_UTF8));
272 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_domain_name_0, 0);
274 if (r->require_membership_of_sids) {
275 _mem_save_require_membership_of_sids_0 = NDR_PULL_GET_MEM_CTX(ndr);
276 NDR_PULL_SET_MEM_CTX(ndr, r->require_membership_of_sids, 0);
277 NDR_CHECK(ndr_pull_array_size(ndr, &r->require_membership_of_sids));
278 NDR_PULL_ALLOC_N(ndr, r->require_membership_of_sids, ndr_get_array_size(ndr, &r->require_membership_of_sids));
279 _mem_save_require_membership_of_sids_1 = NDR_PULL_GET_MEM_CTX(ndr);
280 NDR_PULL_SET_MEM_CTX(ndr, r->require_membership_of_sids, 0);
281 for (cntr_require_membership_of_sids_1 = 0; cntr_require_membership_of_sids_1 < r->num_require_membership_of_sids; cntr_require_membership_of_sids_1++) {
282 NDR_CHECK(ndr_pull_dom_sid(ndr, NDR_SCALARS, &r->require_membership_of_sids[cntr_require_membership_of_sids_1]));
284 for (cntr_require_membership_of_sids_1 = 0; cntr_require_membership_of_sids_1 < r->num_require_membership_of_sids; cntr_require_membership_of_sids_1++) {
285 NDR_CHECK(ndr_pull_dom_sid(ndr, NDR_BUFFERS, &r->require_membership_of_sids[cntr_require_membership_of_sids_1]));
287 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_require_membership_of_sids_1, 0);
288 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_require_membership_of_sids_0, 0);
290 if (r->krb5_cc_type) {
291 _mem_save_krb5_cc_type_0 = NDR_PULL_GET_MEM_CTX(ndr);
292 NDR_PULL_SET_MEM_CTX(ndr, r->krb5_cc_type, 0);
293 NDR_CHECK(ndr_pull_array_size(ndr, &r->krb5_cc_type));
294 NDR_CHECK(ndr_pull_array_length(ndr, &r->krb5_cc_type));
295 if (ndr_get_array_length(ndr, &r->krb5_cc_type) > ndr_get_array_size(ndr, &r->krb5_cc_type)) {
296 return ndr_pull_error(ndr, NDR_ERR_ARRAY_SIZE, "Bad array size %u should exceed array length %u", ndr_get_array_size(ndr, &r->krb5_cc_type), ndr_get_array_length(ndr, &r->krb5_cc_type));
298 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->krb5_cc_type), sizeof(uint8_t)));
299 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->krb5_cc_type, ndr_get_array_length(ndr, &r->krb5_cc_type), sizeof(uint8_t), CH_UTF8));
300 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_krb5_cc_type_0, 0);
303 _mem_save_uid_0 = NDR_PULL_GET_MEM_CTX(ndr);
304 NDR_PULL_SET_MEM_CTX(ndr, r->uid, 0);
305 NDR_CHECK(ndr_pull_hyper(ndr, NDR_SCALARS, r->uid));
306 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_uid_0, 0);
308 if (r->require_membership_of_sids) {
309 NDR_CHECK(ndr_check_array_size(ndr, (void*)&r->require_membership_of_sids, r->num_require_membership_of_sids));
312 return NDR_ERR_SUCCESS;
315 _PUBLIC_ void ndr_print_STRUCT_winbind_auth_compat_auth_plain_req(struct ndr_print *ndr, const char *name, const struct winbind_auth_compat_auth_plain_req *r)
317 uint32_t cntr_require_membership_of_sids_1;
318 ndr_print_struct(ndr, name, "winbind_auth_compat_auth_plain_req");
320 ndr_print_uint32(ndr, "flags", r->flags);
321 ndr_print_string(ndr, "account_name", r->account_name);
322 ndr_print_ptr(ndr, "domain_name", r->domain_name);
324 if (r->domain_name) {
325 ndr_print_string(ndr, "domain_name", r->domain_name);
328 ndr_print_string(ndr, "password", r->password);
329 ndr_print_uint32(ndr, "num_require_membership_of_sids", r->num_require_membership_of_sids);
330 ndr_print_ptr(ndr, "require_membership_of_sids", r->require_membership_of_sids);
332 if (r->require_membership_of_sids) {
333 ndr->print(ndr, "%s: ARRAY(%d)", "require_membership_of_sids", r->num_require_membership_of_sids);
335 for (cntr_require_membership_of_sids_1=0;cntr_require_membership_of_sids_1<r->num_require_membership_of_sids;cntr_require_membership_of_sids_1++) {
337 if (asprintf(&idx_1, "[%d]", cntr_require_membership_of_sids_1) != -1) {
338 ndr_print_dom_sid(ndr, "require_membership_of_sids", &r->require_membership_of_sids[cntr_require_membership_of_sids_1]);
345 ndr_print_ptr(ndr, "krb5_cc_type", r->krb5_cc_type);
347 if (r->krb5_cc_type) {
348 ndr_print_string(ndr, "krb5_cc_type", r->krb5_cc_type);
351 ndr_print_ptr(ndr, "uid", r->uid);
354 ndr_print_hyper(ndr, "uid", *r->uid);
360 static enum ndr_err_code ndr_push_STRUCT_winbind_auth_compat_auth_rep(struct ndr_push *ndr, int ndr_flags, const struct winbind_auth_compat_auth_rep *r)
362 if (ndr_flags & NDR_SCALARS) {
363 NDR_CHECK(ndr_push_align(ndr, 4));
364 NDR_CHECK(ndr_push_unique_ptr(ndr, r->unix_username));
365 NDR_CHECK(ndr_push_unique_ptr(ndr, r->krb5_cc_name));
366 NDR_CHECK(ndr_push_unique_ptr(ndr, r->info3));
367 NDR_CHECK(ndr_push_unique_ptr(ndr, r->password_policy));
368 NDR_CHECK(ndr_push_unique_ptr(ndr, r->afs_token));
370 if (ndr_flags & NDR_BUFFERS) {
371 if (r->unix_username) {
372 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->unix_username, CH_UTF8)));
373 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0));
374 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->unix_username, CH_UTF8)));
375 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->unix_username, ndr_charset_length(r->unix_username, CH_UTF8), sizeof(uint8_t), CH_UTF8));
377 if (r->krb5_cc_name) {
378 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->krb5_cc_name, CH_UTF8)));
379 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0));
380 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->krb5_cc_name, CH_UTF8)));
381 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->krb5_cc_name, ndr_charset_length(r->krb5_cc_name, CH_UTF8), sizeof(uint8_t), CH_UTF8));
384 NDR_CHECK(ndr_push_netr_SamInfo3(ndr, NDR_SCALARS|NDR_BUFFERS, r->info3));
386 if (r->password_policy) {
387 NDR_CHECK(ndr_push_samr_DomInfo1(ndr, NDR_SCALARS|NDR_BUFFERS, r->password_policy));
390 NDR_CHECK(ndr_push_DATA_BLOB(ndr, NDR_SCALARS, *r->afs_token));
393 return NDR_ERR_SUCCESS;
396 static enum ndr_err_code ndr_pull_STRUCT_winbind_auth_compat_auth_rep(struct ndr_pull *ndr, int ndr_flags, struct winbind_auth_compat_auth_rep *r)
398 uint32_t _ptr_unix_username;
399 TALLOC_CTX *_mem_save_unix_username_0;
400 uint32_t _ptr_krb5_cc_name;
401 TALLOC_CTX *_mem_save_krb5_cc_name_0;
403 TALLOC_CTX *_mem_save_info3_0;
404 uint32_t _ptr_password_policy;
405 TALLOC_CTX *_mem_save_password_policy_0;
406 uint32_t _ptr_afs_token;
407 TALLOC_CTX *_mem_save_afs_token_0;
408 if (ndr_flags & NDR_SCALARS) {
409 NDR_CHECK(ndr_pull_align(ndr, 4));
410 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_unix_username));
411 if (_ptr_unix_username) {
412 NDR_PULL_ALLOC(ndr, r->unix_username);
414 r->unix_username = NULL;
416 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_krb5_cc_name));
417 if (_ptr_krb5_cc_name) {
418 NDR_PULL_ALLOC(ndr, r->krb5_cc_name);
420 r->krb5_cc_name = NULL;
422 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_info3));
424 NDR_PULL_ALLOC(ndr, r->info3);
428 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_password_policy));
429 if (_ptr_password_policy) {
430 NDR_PULL_ALLOC(ndr, r->password_policy);
432 r->password_policy = NULL;
434 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_afs_token));
435 if (_ptr_afs_token) {
436 NDR_PULL_ALLOC(ndr, r->afs_token);
441 if (ndr_flags & NDR_BUFFERS) {
442 if (r->unix_username) {
443 _mem_save_unix_username_0 = NDR_PULL_GET_MEM_CTX(ndr);
444 NDR_PULL_SET_MEM_CTX(ndr, r->unix_username, 0);
445 NDR_CHECK(ndr_pull_array_size(ndr, &r->unix_username));
446 NDR_CHECK(ndr_pull_array_length(ndr, &r->unix_username));
447 if (ndr_get_array_length(ndr, &r->unix_username) > ndr_get_array_size(ndr, &r->unix_username)) {
448 return ndr_pull_error(ndr, NDR_ERR_ARRAY_SIZE, "Bad array size %u should exceed array length %u", ndr_get_array_size(ndr, &r->unix_username), ndr_get_array_length(ndr, &r->unix_username));
450 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->unix_username), sizeof(uint8_t)));
451 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->unix_username, ndr_get_array_length(ndr, &r->unix_username), sizeof(uint8_t), CH_UTF8));
452 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_unix_username_0, 0);
454 if (r->krb5_cc_name) {
455 _mem_save_krb5_cc_name_0 = NDR_PULL_GET_MEM_CTX(ndr);
456 NDR_PULL_SET_MEM_CTX(ndr, r->krb5_cc_name, 0);
457 NDR_CHECK(ndr_pull_array_size(ndr, &r->krb5_cc_name));
458 NDR_CHECK(ndr_pull_array_length(ndr, &r->krb5_cc_name));
459 if (ndr_get_array_length(ndr, &r->krb5_cc_name) > ndr_get_array_size(ndr, &r->krb5_cc_name)) {
460 return ndr_pull_error(ndr, NDR_ERR_ARRAY_SIZE, "Bad array size %u should exceed array length %u", ndr_get_array_size(ndr, &r->krb5_cc_name), ndr_get_array_length(ndr, &r->krb5_cc_name));
462 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->krb5_cc_name), sizeof(uint8_t)));
463 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->krb5_cc_name, ndr_get_array_length(ndr, &r->krb5_cc_name), sizeof(uint8_t), CH_UTF8));
464 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_krb5_cc_name_0, 0);
467 _mem_save_info3_0 = NDR_PULL_GET_MEM_CTX(ndr);
468 NDR_PULL_SET_MEM_CTX(ndr, r->info3, 0);
469 NDR_CHECK(ndr_pull_netr_SamInfo3(ndr, NDR_SCALARS|NDR_BUFFERS, r->info3));
470 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_info3_0, 0);
472 if (r->password_policy) {
473 _mem_save_password_policy_0 = NDR_PULL_GET_MEM_CTX(ndr);
474 NDR_PULL_SET_MEM_CTX(ndr, r->password_policy, 0);
475 NDR_CHECK(ndr_pull_samr_DomInfo1(ndr, NDR_SCALARS|NDR_BUFFERS, r->password_policy));
476 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_password_policy_0, 0);
479 _mem_save_afs_token_0 = NDR_PULL_GET_MEM_CTX(ndr);
480 NDR_PULL_SET_MEM_CTX(ndr, r->afs_token, 0);
481 NDR_CHECK(ndr_pull_DATA_BLOB(ndr, NDR_SCALARS, r->afs_token));
482 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_afs_token_0, 0);
485 return NDR_ERR_SUCCESS;
488 _PUBLIC_ void ndr_print_STRUCT_winbind_auth_compat_auth_rep(struct ndr_print *ndr, const char *name, const struct winbind_auth_compat_auth_rep *r)
490 ndr_print_struct(ndr, name, "winbind_auth_compat_auth_rep");
492 ndr_print_ptr(ndr, "unix_username", r->unix_username);
494 if (r->unix_username) {
495 ndr_print_string(ndr, "unix_username", r->unix_username);
498 ndr_print_ptr(ndr, "krb5_cc_name", r->krb5_cc_name);
500 if (r->krb5_cc_name) {
501 ndr_print_string(ndr, "krb5_cc_name", r->krb5_cc_name);
504 ndr_print_ptr(ndr, "info3", r->info3);
507 ndr_print_netr_SamInfo3(ndr, "info3", r->info3);
510 ndr_print_ptr(ndr, "password_policy", r->password_policy);
512 if (r->password_policy) {
513 ndr_print_samr_DomInfo1(ndr, "password_policy", r->password_policy);
516 ndr_print_ptr(ndr, "afs_token", r->afs_token);
519 ndr_print_DATA_BLOB(ndr, "afs_token", *r->afs_token);
525 static enum ndr_err_code ndr_push_STRUCT_winbind_auth_compat_auth_response_req(struct ndr_push *ndr, int ndr_flags, const struct winbind_auth_compat_auth_response_req *r)
527 uint32_t cntr_require_membership_of_sids_1;
528 if (ndr_flags & NDR_SCALARS) {
529 NDR_CHECK(ndr_push_align(ndr, 4));
530 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->flags));
531 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->account_name, CH_UTF8)));
532 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0));
533 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->account_name, CH_UTF8)));
534 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->account_name, ndr_charset_length(r->account_name, CH_UTF8), sizeof(uint8_t), CH_UTF8));
535 NDR_CHECK(ndr_push_unique_ptr(ndr, r->domain_name));
536 NDR_CHECK(ndr_push_unique_ptr(ndr, r->workstation_name));
537 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->num_require_membership_of_sids));
538 NDR_CHECK(ndr_push_unique_ptr(ndr, r->require_membership_of_sids));
539 NDR_CHECK(ndr_push_netr_LogonParameterControl(ndr, NDR_SCALARS, r->logon_parameters));
540 NDR_CHECK(ndr_push_array_uint8(ndr, NDR_SCALARS, r->challenge, 8));
541 NDR_CHECK(ndr_push_DATA_BLOB(ndr, NDR_SCALARS, r->lm_response));
542 NDR_CHECK(ndr_push_DATA_BLOB(ndr, NDR_SCALARS, r->nt_response));
544 if (ndr_flags & NDR_BUFFERS) {
545 if (r->domain_name) {
546 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->domain_name, CH_UTF8)));
547 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0));
548 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->domain_name, CH_UTF8)));
549 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->domain_name, ndr_charset_length(r->domain_name, CH_UTF8), sizeof(uint8_t), CH_UTF8));
551 if (r->workstation_name) {
552 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->workstation_name, CH_UTF8)));
553 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0));
554 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->workstation_name, CH_UTF8)));
555 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->workstation_name, ndr_charset_length(r->workstation_name, CH_UTF8), sizeof(uint8_t), CH_UTF8));
557 if (r->require_membership_of_sids) {
558 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->num_require_membership_of_sids));
559 for (cntr_require_membership_of_sids_1 = 0; cntr_require_membership_of_sids_1 < r->num_require_membership_of_sids; cntr_require_membership_of_sids_1++) {
560 NDR_CHECK(ndr_push_dom_sid(ndr, NDR_SCALARS, &r->require_membership_of_sids[cntr_require_membership_of_sids_1]));
562 for (cntr_require_membership_of_sids_1 = 0; cntr_require_membership_of_sids_1 < r->num_require_membership_of_sids; cntr_require_membership_of_sids_1++) {
563 NDR_CHECK(ndr_push_dom_sid(ndr, NDR_BUFFERS, &r->require_membership_of_sids[cntr_require_membership_of_sids_1]));
567 return NDR_ERR_SUCCESS;
570 static enum ndr_err_code ndr_pull_STRUCT_winbind_auth_compat_auth_response_req(struct ndr_pull *ndr, int ndr_flags, struct winbind_auth_compat_auth_response_req *r)
572 uint32_t _ptr_domain_name;
573 TALLOC_CTX *_mem_save_domain_name_0;
574 uint32_t _ptr_workstation_name;
575 TALLOC_CTX *_mem_save_workstation_name_0;
576 uint32_t _ptr_require_membership_of_sids;
577 uint32_t cntr_require_membership_of_sids_1;
578 TALLOC_CTX *_mem_save_require_membership_of_sids_0;
579 TALLOC_CTX *_mem_save_require_membership_of_sids_1;
580 if (ndr_flags & NDR_SCALARS) {
581 NDR_CHECK(ndr_pull_align(ndr, 4));
582 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->flags));
583 NDR_CHECK(ndr_pull_array_size(ndr, &r->account_name));
584 NDR_CHECK(ndr_pull_array_length(ndr, &r->account_name));
585 if (ndr_get_array_length(ndr, &r->account_name) > ndr_get_array_size(ndr, &r->account_name)) {
586 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));
588 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->account_name), sizeof(uint8_t)));
589 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->account_name, ndr_get_array_length(ndr, &r->account_name), sizeof(uint8_t), CH_UTF8));
590 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_domain_name));
591 if (_ptr_domain_name) {
592 NDR_PULL_ALLOC(ndr, r->domain_name);
594 r->domain_name = NULL;
596 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_workstation_name));
597 if (_ptr_workstation_name) {
598 NDR_PULL_ALLOC(ndr, r->workstation_name);
600 r->workstation_name = NULL;
602 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->num_require_membership_of_sids));
603 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_require_membership_of_sids));
604 if (_ptr_require_membership_of_sids) {
605 NDR_PULL_ALLOC(ndr, r->require_membership_of_sids);
607 r->require_membership_of_sids = NULL;
609 NDR_CHECK(ndr_pull_netr_LogonParameterControl(ndr, NDR_SCALARS, &r->logon_parameters));
610 NDR_CHECK(ndr_pull_array_uint8(ndr, NDR_SCALARS, r->challenge, 8));
611 NDR_CHECK(ndr_pull_DATA_BLOB(ndr, NDR_SCALARS, &r->lm_response));
612 NDR_CHECK(ndr_pull_DATA_BLOB(ndr, NDR_SCALARS, &r->nt_response));
614 if (ndr_flags & NDR_BUFFERS) {
615 if (r->domain_name) {
616 _mem_save_domain_name_0 = NDR_PULL_GET_MEM_CTX(ndr);
617 NDR_PULL_SET_MEM_CTX(ndr, r->domain_name, 0);
618 NDR_CHECK(ndr_pull_array_size(ndr, &r->domain_name));
619 NDR_CHECK(ndr_pull_array_length(ndr, &r->domain_name));
620 if (ndr_get_array_length(ndr, &r->domain_name) > ndr_get_array_size(ndr, &r->domain_name)) {
621 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));
623 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->domain_name), sizeof(uint8_t)));
624 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->domain_name, ndr_get_array_length(ndr, &r->domain_name), sizeof(uint8_t), CH_UTF8));
625 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_domain_name_0, 0);
627 if (r->workstation_name) {
628 _mem_save_workstation_name_0 = NDR_PULL_GET_MEM_CTX(ndr);
629 NDR_PULL_SET_MEM_CTX(ndr, r->workstation_name, 0);
630 NDR_CHECK(ndr_pull_array_size(ndr, &r->workstation_name));
631 NDR_CHECK(ndr_pull_array_length(ndr, &r->workstation_name));
632 if (ndr_get_array_length(ndr, &r->workstation_name) > ndr_get_array_size(ndr, &r->workstation_name)) {
633 return ndr_pull_error(ndr, NDR_ERR_ARRAY_SIZE, "Bad array size %u should exceed array length %u", ndr_get_array_size(ndr, &r->workstation_name), ndr_get_array_length(ndr, &r->workstation_name));
635 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->workstation_name), sizeof(uint8_t)));
636 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->workstation_name, ndr_get_array_length(ndr, &r->workstation_name), sizeof(uint8_t), CH_UTF8));
637 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_workstation_name_0, 0);
639 if (r->require_membership_of_sids) {
640 _mem_save_require_membership_of_sids_0 = NDR_PULL_GET_MEM_CTX(ndr);
641 NDR_PULL_SET_MEM_CTX(ndr, r->require_membership_of_sids, 0);
642 NDR_CHECK(ndr_pull_array_size(ndr, &r->require_membership_of_sids));
643 NDR_PULL_ALLOC_N(ndr, r->require_membership_of_sids, ndr_get_array_size(ndr, &r->require_membership_of_sids));
644 _mem_save_require_membership_of_sids_1 = NDR_PULL_GET_MEM_CTX(ndr);
645 NDR_PULL_SET_MEM_CTX(ndr, r->require_membership_of_sids, 0);
646 for (cntr_require_membership_of_sids_1 = 0; cntr_require_membership_of_sids_1 < r->num_require_membership_of_sids; cntr_require_membership_of_sids_1++) {
647 NDR_CHECK(ndr_pull_dom_sid(ndr, NDR_SCALARS, &r->require_membership_of_sids[cntr_require_membership_of_sids_1]));
649 for (cntr_require_membership_of_sids_1 = 0; cntr_require_membership_of_sids_1 < r->num_require_membership_of_sids; cntr_require_membership_of_sids_1++) {
650 NDR_CHECK(ndr_pull_dom_sid(ndr, NDR_BUFFERS, &r->require_membership_of_sids[cntr_require_membership_of_sids_1]));
652 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_require_membership_of_sids_1, 0);
653 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_require_membership_of_sids_0, 0);
655 if (r->require_membership_of_sids) {
656 NDR_CHECK(ndr_check_array_size(ndr, (void*)&r->require_membership_of_sids, r->num_require_membership_of_sids));
659 return NDR_ERR_SUCCESS;
662 _PUBLIC_ void ndr_print_STRUCT_winbind_auth_compat_auth_response_req(struct ndr_print *ndr, const char *name, const struct winbind_auth_compat_auth_response_req *r)
664 uint32_t cntr_require_membership_of_sids_1;
665 ndr_print_struct(ndr, name, "winbind_auth_compat_auth_response_req");
667 ndr_print_uint32(ndr, "flags", r->flags);
668 ndr_print_string(ndr, "account_name", r->account_name);
669 ndr_print_ptr(ndr, "domain_name", r->domain_name);
671 if (r->domain_name) {
672 ndr_print_string(ndr, "domain_name", r->domain_name);
675 ndr_print_ptr(ndr, "workstation_name", r->workstation_name);
677 if (r->workstation_name) {
678 ndr_print_string(ndr, "workstation_name", r->workstation_name);
681 ndr_print_uint32(ndr, "num_require_membership_of_sids", r->num_require_membership_of_sids);
682 ndr_print_ptr(ndr, "require_membership_of_sids", r->require_membership_of_sids);
684 if (r->require_membership_of_sids) {
685 ndr->print(ndr, "%s: ARRAY(%d)", "require_membership_of_sids", r->num_require_membership_of_sids);
687 for (cntr_require_membership_of_sids_1=0;cntr_require_membership_of_sids_1<r->num_require_membership_of_sids;cntr_require_membership_of_sids_1++) {
689 if (asprintf(&idx_1, "[%d]", cntr_require_membership_of_sids_1) != -1) {
690 ndr_print_dom_sid(ndr, "require_membership_of_sids", &r->require_membership_of_sids[cntr_require_membership_of_sids_1]);
697 ndr_print_netr_LogonParameterControl(ndr, "logon_parameters", r->logon_parameters);
698 ndr_print_array_uint8(ndr, "challenge", r->challenge, 8);
699 ndr_print_DATA_BLOB(ndr, "lm_response", r->lm_response);
700 ndr_print_DATA_BLOB(ndr, "nt_response", r->nt_response);
704 static enum ndr_err_code ndr_push_STRUCT_winbind_auth_compat_logoff_req(struct ndr_push *ndr, int ndr_flags, const struct winbind_auth_compat_logoff_req *r)
706 if (ndr_flags & NDR_SCALARS) {
707 NDR_CHECK(ndr_push_align(ndr, 4));
708 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->flags));
709 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->account_name, CH_UTF8)));
710 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0));
711 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->account_name, CH_UTF8)));
712 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->account_name, ndr_charset_length(r->account_name, CH_UTF8), sizeof(uint8_t), CH_UTF8));
713 NDR_CHECK(ndr_push_unique_ptr(ndr, r->domain_name));
714 NDR_CHECK(ndr_push_unique_ptr(ndr, r->krb5_cc_name));
715 NDR_CHECK(ndr_push_unique_ptr(ndr, r->uid));
717 if (ndr_flags & NDR_BUFFERS) {
718 if (r->domain_name) {
719 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->domain_name, CH_UTF8)));
720 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0));
721 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->domain_name, CH_UTF8)));
722 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->domain_name, ndr_charset_length(r->domain_name, CH_UTF8), sizeof(uint8_t), CH_UTF8));
724 if (r->krb5_cc_name) {
725 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->krb5_cc_name, CH_UTF8)));
726 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0));
727 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->krb5_cc_name, CH_UTF8)));
728 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->krb5_cc_name, ndr_charset_length(r->krb5_cc_name, CH_UTF8), sizeof(uint8_t), CH_UTF8));
731 NDR_CHECK(ndr_push_hyper(ndr, NDR_SCALARS, *r->uid));
734 return NDR_ERR_SUCCESS;
737 static enum ndr_err_code ndr_pull_STRUCT_winbind_auth_compat_logoff_req(struct ndr_pull *ndr, int ndr_flags, struct winbind_auth_compat_logoff_req *r)
739 uint32_t _ptr_domain_name;
740 TALLOC_CTX *_mem_save_domain_name_0;
741 uint32_t _ptr_krb5_cc_name;
742 TALLOC_CTX *_mem_save_krb5_cc_name_0;
744 TALLOC_CTX *_mem_save_uid_0;
745 if (ndr_flags & NDR_SCALARS) {
746 NDR_CHECK(ndr_pull_align(ndr, 4));
747 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->flags));
748 NDR_CHECK(ndr_pull_array_size(ndr, &r->account_name));
749 NDR_CHECK(ndr_pull_array_length(ndr, &r->account_name));
750 if (ndr_get_array_length(ndr, &r->account_name) > ndr_get_array_size(ndr, &r->account_name)) {
751 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));
753 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->account_name), sizeof(uint8_t)));
754 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->account_name, ndr_get_array_length(ndr, &r->account_name), sizeof(uint8_t), CH_UTF8));
755 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_domain_name));
756 if (_ptr_domain_name) {
757 NDR_PULL_ALLOC(ndr, r->domain_name);
759 r->domain_name = NULL;
761 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_krb5_cc_name));
762 if (_ptr_krb5_cc_name) {
763 NDR_PULL_ALLOC(ndr, r->krb5_cc_name);
765 r->krb5_cc_name = NULL;
767 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_uid));
769 NDR_PULL_ALLOC(ndr, r->uid);
774 if (ndr_flags & NDR_BUFFERS) {
775 if (r->domain_name) {
776 _mem_save_domain_name_0 = NDR_PULL_GET_MEM_CTX(ndr);
777 NDR_PULL_SET_MEM_CTX(ndr, r->domain_name, 0);
778 NDR_CHECK(ndr_pull_array_size(ndr, &r->domain_name));
779 NDR_CHECK(ndr_pull_array_length(ndr, &r->domain_name));
780 if (ndr_get_array_length(ndr, &r->domain_name) > ndr_get_array_size(ndr, &r->domain_name)) {
781 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));
783 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->domain_name), sizeof(uint8_t)));
784 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->domain_name, ndr_get_array_length(ndr, &r->domain_name), sizeof(uint8_t), CH_UTF8));
785 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_domain_name_0, 0);
787 if (r->krb5_cc_name) {
788 _mem_save_krb5_cc_name_0 = NDR_PULL_GET_MEM_CTX(ndr);
789 NDR_PULL_SET_MEM_CTX(ndr, r->krb5_cc_name, 0);
790 NDR_CHECK(ndr_pull_array_size(ndr, &r->krb5_cc_name));
791 NDR_CHECK(ndr_pull_array_length(ndr, &r->krb5_cc_name));
792 if (ndr_get_array_length(ndr, &r->krb5_cc_name) > ndr_get_array_size(ndr, &r->krb5_cc_name)) {
793 return ndr_pull_error(ndr, NDR_ERR_ARRAY_SIZE, "Bad array size %u should exceed array length %u", ndr_get_array_size(ndr, &r->krb5_cc_name), ndr_get_array_length(ndr, &r->krb5_cc_name));
795 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->krb5_cc_name), sizeof(uint8_t)));
796 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->krb5_cc_name, ndr_get_array_length(ndr, &r->krb5_cc_name), sizeof(uint8_t), CH_UTF8));
797 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_krb5_cc_name_0, 0);
800 _mem_save_uid_0 = NDR_PULL_GET_MEM_CTX(ndr);
801 NDR_PULL_SET_MEM_CTX(ndr, r->uid, 0);
802 NDR_CHECK(ndr_pull_hyper(ndr, NDR_SCALARS, r->uid));
803 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_uid_0, 0);
806 return NDR_ERR_SUCCESS;
809 _PUBLIC_ void ndr_print_STRUCT_winbind_auth_compat_logoff_req(struct ndr_print *ndr, const char *name, const struct winbind_auth_compat_logoff_req *r)
811 ndr_print_struct(ndr, name, "winbind_auth_compat_logoff_req");
813 ndr_print_uint32(ndr, "flags", r->flags);
814 ndr_print_string(ndr, "account_name", r->account_name);
815 ndr_print_ptr(ndr, "domain_name", r->domain_name);
817 if (r->domain_name) {
818 ndr_print_string(ndr, "domain_name", r->domain_name);
821 ndr_print_ptr(ndr, "krb5_cc_name", r->krb5_cc_name);
823 if (r->krb5_cc_name) {
824 ndr_print_string(ndr, "krb5_cc_name", r->krb5_cc_name);
827 ndr_print_ptr(ndr, "uid", r->uid);
830 ndr_print_hyper(ndr, "uid", *r->uid);
836 static enum ndr_err_code ndr_push_STRUCT_winbind_auth_change_password_plain_req(struct ndr_push *ndr, int ndr_flags, const struct winbind_auth_change_password_plain_req *r)
838 if (ndr_flags & NDR_SCALARS) {
839 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->new_password, CH_UTF8)));
840 NDR_CHECK(ndr_push_align(ndr, 4));
841 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->account_name, CH_UTF8)));
842 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0));
843 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->account_name, CH_UTF8)));
844 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->account_name, ndr_charset_length(r->account_name, CH_UTF8), sizeof(uint8_t), CH_UTF8));
845 NDR_CHECK(ndr_push_unique_ptr(ndr, r->domain_name));
846 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->old_password, CH_UTF8)));
847 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0));
848 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->old_password, CH_UTF8)));
849 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->old_password, ndr_charset_length(r->old_password, CH_UTF8), sizeof(uint8_t), CH_UTF8));
850 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0));
851 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->new_password, CH_UTF8)));
852 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->new_password, ndr_charset_length(r->new_password, CH_UTF8), sizeof(uint8_t), CH_UTF8));
854 if (ndr_flags & NDR_BUFFERS) {
855 if (r->domain_name) {
856 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->domain_name, CH_UTF8)));
857 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0));
858 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->domain_name, CH_UTF8)));
859 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->domain_name, ndr_charset_length(r->domain_name, CH_UTF8), sizeof(uint8_t), CH_UTF8));
862 return NDR_ERR_SUCCESS;
865 static enum ndr_err_code ndr_pull_STRUCT_winbind_auth_change_password_plain_req(struct ndr_pull *ndr, int ndr_flags, struct winbind_auth_change_password_plain_req *r)
867 uint32_t _ptr_domain_name;
868 TALLOC_CTX *_mem_save_domain_name_0;
869 if (ndr_flags & NDR_SCALARS) {
870 NDR_CHECK(ndr_pull_array_size(ndr, &r->new_password));
871 NDR_CHECK(ndr_pull_align(ndr, 4));
872 NDR_CHECK(ndr_pull_array_size(ndr, &r->account_name));
873 NDR_CHECK(ndr_pull_array_length(ndr, &r->account_name));
874 if (ndr_get_array_length(ndr, &r->account_name) > ndr_get_array_size(ndr, &r->account_name)) {
875 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));
877 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->account_name), sizeof(uint8_t)));
878 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->account_name, ndr_get_array_length(ndr, &r->account_name), sizeof(uint8_t), CH_UTF8));
879 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_domain_name));
880 if (_ptr_domain_name) {
881 NDR_PULL_ALLOC(ndr, r->domain_name);
883 r->domain_name = NULL;
885 NDR_CHECK(ndr_pull_array_size(ndr, &r->old_password));
886 NDR_CHECK(ndr_pull_array_length(ndr, &r->old_password));
887 if (ndr_get_array_length(ndr, &r->old_password) > ndr_get_array_size(ndr, &r->old_password)) {
888 return ndr_pull_error(ndr, NDR_ERR_ARRAY_SIZE, "Bad array size %u should exceed array length %u", ndr_get_array_size(ndr, &r->old_password), ndr_get_array_length(ndr, &r->old_password));
890 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->old_password), sizeof(uint8_t)));
891 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->old_password, ndr_get_array_length(ndr, &r->old_password), sizeof(uint8_t), CH_UTF8));
892 NDR_CHECK(ndr_pull_array_length(ndr, &r->new_password));
893 if (ndr_get_array_length(ndr, &r->new_password) > ndr_get_array_size(ndr, &r->new_password)) {
894 return ndr_pull_error(ndr, NDR_ERR_ARRAY_SIZE, "Bad array size %u should exceed array length %u", ndr_get_array_size(ndr, &r->new_password), ndr_get_array_length(ndr, &r->new_password));
896 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->new_password), sizeof(uint8_t)));
897 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->new_password, ndr_get_array_length(ndr, &r->new_password), sizeof(uint8_t), CH_UTF8));
899 if (ndr_flags & NDR_BUFFERS) {
900 if (r->domain_name) {
901 _mem_save_domain_name_0 = NDR_PULL_GET_MEM_CTX(ndr);
902 NDR_PULL_SET_MEM_CTX(ndr, r->domain_name, 0);
903 NDR_CHECK(ndr_pull_array_size(ndr, &r->domain_name));
904 NDR_CHECK(ndr_pull_array_length(ndr, &r->domain_name));
905 if (ndr_get_array_length(ndr, &r->domain_name) > ndr_get_array_size(ndr, &r->domain_name)) {
906 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));
908 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->domain_name), sizeof(uint8_t)));
909 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->domain_name, ndr_get_array_length(ndr, &r->domain_name), sizeof(uint8_t), CH_UTF8));
910 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_domain_name_0, 0);
913 return NDR_ERR_SUCCESS;
916 _PUBLIC_ void ndr_print_STRUCT_winbind_auth_change_password_plain_req(struct ndr_print *ndr, const char *name, const struct winbind_auth_change_password_plain_req *r)
918 ndr_print_struct(ndr, name, "winbind_auth_change_password_plain_req");
920 ndr_print_string(ndr, "account_name", r->account_name);
921 ndr_print_ptr(ndr, "domain_name", r->domain_name);
923 if (r->domain_name) {
924 ndr_print_string(ndr, "domain_name", r->domain_name);
927 ndr_print_string(ndr, "old_password", r->old_password);
928 ndr_print_string(ndr, "new_password", r->new_password);
932 static enum ndr_err_code ndr_push_STRUCT_winbind_auth_change_password_crypt_req(struct ndr_push *ndr, int ndr_flags, const struct winbind_auth_change_password_crypt_req *r)
934 if (ndr_flags & NDR_SCALARS) {
935 NDR_CHECK(ndr_push_align(ndr, 4));
936 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->account_name, CH_UTF8)));
937 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0));
938 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->account_name, CH_UTF8)));
939 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->account_name, ndr_charset_length(r->account_name, CH_UTF8), sizeof(uint8_t), CH_UTF8));
940 NDR_CHECK(ndr_push_unique_ptr(ndr, r->domain_name));
941 NDR_CHECK(ndr_push_samr_CryptPassword(ndr, NDR_SCALARS, &r->nt_password));
942 NDR_CHECK(ndr_push_samr_Password(ndr, NDR_SCALARS, &r->nt_verifier));
943 NDR_CHECK(ndr_push_unique_ptr(ndr, r->lm_password));
944 NDR_CHECK(ndr_push_unique_ptr(ndr, r->lm_verifier));
946 if (ndr_flags & NDR_BUFFERS) {
947 if (r->domain_name) {
948 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->domain_name, CH_UTF8)));
949 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0));
950 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->domain_name, CH_UTF8)));
951 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->domain_name, ndr_charset_length(r->domain_name, CH_UTF8), sizeof(uint8_t), CH_UTF8));
953 if (r->lm_password) {
954 NDR_CHECK(ndr_push_samr_CryptPassword(ndr, NDR_SCALARS, r->lm_password));
956 if (r->lm_verifier) {
957 NDR_CHECK(ndr_push_samr_Password(ndr, NDR_SCALARS, r->lm_verifier));
960 return NDR_ERR_SUCCESS;
963 static enum ndr_err_code ndr_pull_STRUCT_winbind_auth_change_password_crypt_req(struct ndr_pull *ndr, int ndr_flags, struct winbind_auth_change_password_crypt_req *r)
965 uint32_t _ptr_domain_name;
966 TALLOC_CTX *_mem_save_domain_name_0;
967 uint32_t _ptr_lm_password;
968 TALLOC_CTX *_mem_save_lm_password_0;
969 uint32_t _ptr_lm_verifier;
970 TALLOC_CTX *_mem_save_lm_verifier_0;
971 if (ndr_flags & NDR_SCALARS) {
972 NDR_CHECK(ndr_pull_align(ndr, 4));
973 NDR_CHECK(ndr_pull_array_size(ndr, &r->account_name));
974 NDR_CHECK(ndr_pull_array_length(ndr, &r->account_name));
975 if (ndr_get_array_length(ndr, &r->account_name) > ndr_get_array_size(ndr, &r->account_name)) {
976 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));
978 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->account_name), sizeof(uint8_t)));
979 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->account_name, ndr_get_array_length(ndr, &r->account_name), sizeof(uint8_t), CH_UTF8));
980 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_domain_name));
981 if (_ptr_domain_name) {
982 NDR_PULL_ALLOC(ndr, r->domain_name);
984 r->domain_name = NULL;
986 NDR_CHECK(ndr_pull_samr_CryptPassword(ndr, NDR_SCALARS, &r->nt_password));
987 NDR_CHECK(ndr_pull_samr_Password(ndr, NDR_SCALARS, &r->nt_verifier));
988 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_lm_password));
989 if (_ptr_lm_password) {
990 NDR_PULL_ALLOC(ndr, r->lm_password);
992 r->lm_password = NULL;
994 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_lm_verifier));
995 if (_ptr_lm_verifier) {
996 NDR_PULL_ALLOC(ndr, r->lm_verifier);
998 r->lm_verifier = NULL;
1001 if (ndr_flags & NDR_BUFFERS) {
1002 if (r->domain_name) {
1003 _mem_save_domain_name_0 = NDR_PULL_GET_MEM_CTX(ndr);
1004 NDR_PULL_SET_MEM_CTX(ndr, r->domain_name, 0);
1005 NDR_CHECK(ndr_pull_array_size(ndr, &r->domain_name));
1006 NDR_CHECK(ndr_pull_array_length(ndr, &r->domain_name));
1007 if (ndr_get_array_length(ndr, &r->domain_name) > ndr_get_array_size(ndr, &r->domain_name)) {
1008 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));
1010 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->domain_name), sizeof(uint8_t)));
1011 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->domain_name, ndr_get_array_length(ndr, &r->domain_name), sizeof(uint8_t), CH_UTF8));
1012 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_domain_name_0, 0);
1014 if (r->lm_password) {
1015 _mem_save_lm_password_0 = NDR_PULL_GET_MEM_CTX(ndr);
1016 NDR_PULL_SET_MEM_CTX(ndr, r->lm_password, 0);
1017 NDR_CHECK(ndr_pull_samr_CryptPassword(ndr, NDR_SCALARS, r->lm_password));
1018 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_lm_password_0, 0);
1020 if (r->lm_verifier) {
1021 _mem_save_lm_verifier_0 = NDR_PULL_GET_MEM_CTX(ndr);
1022 NDR_PULL_SET_MEM_CTX(ndr, r->lm_verifier, 0);
1023 NDR_CHECK(ndr_pull_samr_Password(ndr, NDR_SCALARS, r->lm_verifier));
1024 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_lm_verifier_0, 0);
1027 return NDR_ERR_SUCCESS;
1030 _PUBLIC_ void ndr_print_STRUCT_winbind_auth_change_password_crypt_req(struct ndr_print *ndr, const char *name, const struct winbind_auth_change_password_crypt_req *r)
1032 ndr_print_struct(ndr, name, "winbind_auth_change_password_crypt_req");
1034 ndr_print_string(ndr, "account_name", r->account_name);
1035 ndr_print_ptr(ndr, "domain_name", r->domain_name);
1037 if (r->domain_name) {
1038 ndr_print_string(ndr, "domain_name", r->domain_name);
1041 ndr_print_samr_CryptPassword(ndr, "nt_password", &r->nt_password);
1042 ndr_print_samr_Password(ndr, "nt_verifier", &r->nt_verifier);
1043 ndr_print_ptr(ndr, "lm_password", r->lm_password);
1045 if (r->lm_password) {
1046 ndr_print_samr_CryptPassword(ndr, "lm_password", r->lm_password);
1049 ndr_print_ptr(ndr, "lm_verifier", r->lm_verifier);
1051 if (r->lm_verifier) {
1052 ndr_print_samr_Password(ndr, "lm_verifier", r->lm_verifier);
1058 static enum ndr_err_code ndr_push_winbind_auth_req(struct ndr_push *ndr, int ndr_flags, const union winbind_auth_req *r)
1060 if (ndr_flags & NDR_SCALARS) {
1061 int level = ndr_push_get_switch_value(ndr, r);
1062 NDR_CHECK(ndr_push_winbind_auth_level(ndr, NDR_SCALARS, level));
1064 case WINBIND_AUTH_LEVEL_COMPAT_AUTH_PLAIN: {
1065 NDR_CHECK(ndr_push_STRUCT_winbind_auth_compat_auth_plain_req(ndr, NDR_SCALARS, &r->compat_auth_plain));
1068 case WINBIND_AUTH_LEVEL_COMPAT_AUTH_RESPONSE: {
1069 NDR_CHECK(ndr_push_STRUCT_winbind_auth_compat_auth_response_req(ndr, NDR_SCALARS, &r->compat_auth_response));
1072 case WINBIND_AUTH_LEVEL_COMPAT_LOGOFF: {
1073 NDR_CHECK(ndr_push_STRUCT_winbind_auth_compat_logoff_req(ndr, NDR_SCALARS, &r->compat_logoff));
1076 case WINBIND_AUTH_LEVEL_CHANGE_PASSWORD_PLAIN: {
1077 NDR_CHECK(ndr_push_STRUCT_winbind_auth_change_password_plain_req(ndr, NDR_SCALARS, &r->change_password_plain));
1080 case WINBIND_AUTH_LEVEL_CHANGE_PASSWORD_CRYPT: {
1081 NDR_CHECK(ndr_push_STRUCT_winbind_auth_change_password_crypt_req(ndr, NDR_SCALARS, &r->change_password_crypt));
1089 if (ndr_flags & NDR_BUFFERS) {
1090 int level = ndr_push_get_switch_value(ndr, r);
1092 case WINBIND_AUTH_LEVEL_COMPAT_AUTH_PLAIN:
1093 NDR_CHECK(ndr_push_STRUCT_winbind_auth_compat_auth_plain_req(ndr, NDR_BUFFERS, &r->compat_auth_plain));
1096 case WINBIND_AUTH_LEVEL_COMPAT_AUTH_RESPONSE:
1097 NDR_CHECK(ndr_push_STRUCT_winbind_auth_compat_auth_response_req(ndr, NDR_BUFFERS, &r->compat_auth_response));
1100 case WINBIND_AUTH_LEVEL_COMPAT_LOGOFF:
1101 NDR_CHECK(ndr_push_STRUCT_winbind_auth_compat_logoff_req(ndr, NDR_BUFFERS, &r->compat_logoff));
1104 case WINBIND_AUTH_LEVEL_CHANGE_PASSWORD_PLAIN:
1105 NDR_CHECK(ndr_push_STRUCT_winbind_auth_change_password_plain_req(ndr, NDR_BUFFERS, &r->change_password_plain));
1108 case WINBIND_AUTH_LEVEL_CHANGE_PASSWORD_CRYPT:
1109 NDR_CHECK(ndr_push_STRUCT_winbind_auth_change_password_crypt_req(ndr, NDR_BUFFERS, &r->change_password_crypt));
1117 return NDR_ERR_SUCCESS;
1120 static enum ndr_err_code ndr_pull_winbind_auth_req(struct ndr_pull *ndr, int ndr_flags, union winbind_auth_req *r)
1124 level = ndr_pull_get_switch_value(ndr, r);
1125 if (ndr_flags & NDR_SCALARS) {
1126 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &_level));
1127 if (_level != level) {
1128 return ndr_pull_error(ndr, NDR_ERR_BAD_SWITCH, "Bad switch value %u for r", _level);
1131 case WINBIND_AUTH_LEVEL_COMPAT_AUTH_PLAIN: {
1132 NDR_CHECK(ndr_pull_STRUCT_winbind_auth_compat_auth_plain_req(ndr, NDR_SCALARS, &r->compat_auth_plain));
1135 case WINBIND_AUTH_LEVEL_COMPAT_AUTH_RESPONSE: {
1136 NDR_CHECK(ndr_pull_STRUCT_winbind_auth_compat_auth_response_req(ndr, NDR_SCALARS, &r->compat_auth_response));
1139 case WINBIND_AUTH_LEVEL_COMPAT_LOGOFF: {
1140 NDR_CHECK(ndr_pull_STRUCT_winbind_auth_compat_logoff_req(ndr, NDR_SCALARS, &r->compat_logoff));
1143 case WINBIND_AUTH_LEVEL_CHANGE_PASSWORD_PLAIN: {
1144 NDR_CHECK(ndr_pull_STRUCT_winbind_auth_change_password_plain_req(ndr, NDR_SCALARS, &r->change_password_plain));
1147 case WINBIND_AUTH_LEVEL_CHANGE_PASSWORD_CRYPT: {
1148 NDR_CHECK(ndr_pull_STRUCT_winbind_auth_change_password_crypt_req(ndr, NDR_SCALARS, &r->change_password_crypt));
1156 if (ndr_flags & NDR_BUFFERS) {
1158 case WINBIND_AUTH_LEVEL_COMPAT_AUTH_PLAIN:
1159 NDR_CHECK(ndr_pull_STRUCT_winbind_auth_compat_auth_plain_req(ndr, NDR_BUFFERS, &r->compat_auth_plain));
1162 case WINBIND_AUTH_LEVEL_COMPAT_AUTH_RESPONSE:
1163 NDR_CHECK(ndr_pull_STRUCT_winbind_auth_compat_auth_response_req(ndr, NDR_BUFFERS, &r->compat_auth_response));
1166 case WINBIND_AUTH_LEVEL_COMPAT_LOGOFF:
1167 NDR_CHECK(ndr_pull_STRUCT_winbind_auth_compat_logoff_req(ndr, NDR_BUFFERS, &r->compat_logoff));
1170 case WINBIND_AUTH_LEVEL_CHANGE_PASSWORD_PLAIN:
1171 NDR_CHECK(ndr_pull_STRUCT_winbind_auth_change_password_plain_req(ndr, NDR_BUFFERS, &r->change_password_plain));
1174 case WINBIND_AUTH_LEVEL_CHANGE_PASSWORD_CRYPT:
1175 NDR_CHECK(ndr_pull_STRUCT_winbind_auth_change_password_crypt_req(ndr, NDR_BUFFERS, &r->change_password_crypt));
1183 return NDR_ERR_SUCCESS;
1186 _PUBLIC_ void ndr_print_winbind_auth_req(struct ndr_print *ndr, const char *name, const union winbind_auth_req *r)
1189 level = ndr_print_get_switch_value(ndr, r);
1190 ndr_print_union(ndr, name, level, "winbind_auth_req");
1192 case WINBIND_AUTH_LEVEL_COMPAT_AUTH_PLAIN:
1193 ndr_print_STRUCT_winbind_auth_compat_auth_plain_req(ndr, "compat_auth_plain", &r->compat_auth_plain);
1196 case WINBIND_AUTH_LEVEL_COMPAT_AUTH_RESPONSE:
1197 ndr_print_STRUCT_winbind_auth_compat_auth_response_req(ndr, "compat_auth_response", &r->compat_auth_response);
1200 case WINBIND_AUTH_LEVEL_COMPAT_LOGOFF:
1201 ndr_print_STRUCT_winbind_auth_compat_logoff_req(ndr, "compat_logoff", &r->compat_logoff);
1204 case WINBIND_AUTH_LEVEL_CHANGE_PASSWORD_PLAIN:
1205 ndr_print_STRUCT_winbind_auth_change_password_plain_req(ndr, "change_password_plain", &r->change_password_plain);
1208 case WINBIND_AUTH_LEVEL_CHANGE_PASSWORD_CRYPT:
1209 ndr_print_STRUCT_winbind_auth_change_password_crypt_req(ndr, "change_password_crypt", &r->change_password_crypt);
1218 static enum ndr_err_code ndr_push_winbind_auth_rep(struct ndr_push *ndr, int ndr_flags, const union winbind_auth_rep *r)
1220 if (ndr_flags & NDR_SCALARS) {
1221 int level = ndr_push_get_switch_value(ndr, r);
1222 NDR_CHECK(ndr_push_winbind_auth_level(ndr, NDR_SCALARS, level));
1224 case WINBIND_AUTH_LEVEL_COMPAT_AUTH_PLAIN: {
1225 NDR_CHECK(ndr_push_STRUCT_winbind_auth_compat_auth_rep(ndr, NDR_SCALARS, &r->compat_auth));
1228 case WINBIND_AUTH_LEVEL_COMPAT_AUTH_RESPONSE: {
1229 NDR_CHECK(ndr_push_STRUCT_winbind_auth_compat_auth_rep(ndr, NDR_SCALARS, &r->compat_auth));
1232 case WINBIND_AUTH_LEVEL_COMPAT_LOGOFF: {
1235 case WINBIND_AUTH_LEVEL_CHANGE_PASSWORD_PLAIN: {
1238 case WINBIND_AUTH_LEVEL_CHANGE_PASSWORD_CRYPT: {
1246 if (ndr_flags & NDR_BUFFERS) {
1247 int level = ndr_push_get_switch_value(ndr, r);
1249 case WINBIND_AUTH_LEVEL_COMPAT_AUTH_PLAIN:
1250 NDR_CHECK(ndr_push_STRUCT_winbind_auth_compat_auth_rep(ndr, NDR_BUFFERS, &r->compat_auth));
1253 case WINBIND_AUTH_LEVEL_COMPAT_AUTH_RESPONSE:
1254 NDR_CHECK(ndr_push_STRUCT_winbind_auth_compat_auth_rep(ndr, NDR_BUFFERS, &r->compat_auth));
1257 case WINBIND_AUTH_LEVEL_COMPAT_LOGOFF:
1260 case WINBIND_AUTH_LEVEL_CHANGE_PASSWORD_PLAIN:
1263 case WINBIND_AUTH_LEVEL_CHANGE_PASSWORD_CRYPT:
1271 return NDR_ERR_SUCCESS;
1274 static enum ndr_err_code ndr_pull_winbind_auth_rep(struct ndr_pull *ndr, int ndr_flags, union winbind_auth_rep *r)
1278 level = ndr_pull_get_switch_value(ndr, r);
1279 if (ndr_flags & NDR_SCALARS) {
1280 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &_level));
1281 if (_level != level) {
1282 return ndr_pull_error(ndr, NDR_ERR_BAD_SWITCH, "Bad switch value %u for r", _level);
1285 case WINBIND_AUTH_LEVEL_COMPAT_AUTH_PLAIN: {
1286 NDR_CHECK(ndr_pull_STRUCT_winbind_auth_compat_auth_rep(ndr, NDR_SCALARS, &r->compat_auth));
1289 case WINBIND_AUTH_LEVEL_COMPAT_AUTH_RESPONSE: {
1290 NDR_CHECK(ndr_pull_STRUCT_winbind_auth_compat_auth_rep(ndr, NDR_SCALARS, &r->compat_auth));
1293 case WINBIND_AUTH_LEVEL_COMPAT_LOGOFF: {
1296 case WINBIND_AUTH_LEVEL_CHANGE_PASSWORD_PLAIN: {
1299 case WINBIND_AUTH_LEVEL_CHANGE_PASSWORD_CRYPT: {
1307 if (ndr_flags & NDR_BUFFERS) {
1309 case WINBIND_AUTH_LEVEL_COMPAT_AUTH_PLAIN:
1310 NDR_CHECK(ndr_pull_STRUCT_winbind_auth_compat_auth_rep(ndr, NDR_BUFFERS, &r->compat_auth));
1313 case WINBIND_AUTH_LEVEL_COMPAT_AUTH_RESPONSE:
1314 NDR_CHECK(ndr_pull_STRUCT_winbind_auth_compat_auth_rep(ndr, NDR_BUFFERS, &r->compat_auth));
1317 case WINBIND_AUTH_LEVEL_COMPAT_LOGOFF:
1320 case WINBIND_AUTH_LEVEL_CHANGE_PASSWORD_PLAIN:
1323 case WINBIND_AUTH_LEVEL_CHANGE_PASSWORD_CRYPT:
1331 return NDR_ERR_SUCCESS;
1334 _PUBLIC_ void ndr_print_winbind_auth_rep(struct ndr_print *ndr, const char *name, const union winbind_auth_rep *r)
1337 level = ndr_print_get_switch_value(ndr, r);
1338 ndr_print_union(ndr, name, level, "winbind_auth_rep");
1340 case WINBIND_AUTH_LEVEL_COMPAT_AUTH_PLAIN:
1341 ndr_print_STRUCT_winbind_auth_compat_auth_rep(ndr, "compat_auth", &r->compat_auth);
1344 case WINBIND_AUTH_LEVEL_COMPAT_AUTH_RESPONSE:
1345 ndr_print_STRUCT_winbind_auth_compat_auth_rep(ndr, "compat_auth", &r->compat_auth);
1348 case WINBIND_AUTH_LEVEL_COMPAT_LOGOFF:
1351 case WINBIND_AUTH_LEVEL_CHANGE_PASSWORD_PLAIN:
1354 case WINBIND_AUTH_LEVEL_CHANGE_PASSWORD_CRYPT:
1363 static enum ndr_err_code ndr_push_winbind_trust_level(struct ndr_push *ndr, int ndr_flags, enum winbind_trust_level r)
1365 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r));
1366 return NDR_ERR_SUCCESS;
1369 static enum ndr_err_code ndr_pull_winbind_trust_level(struct ndr_pull *ndr, int ndr_flags, enum winbind_trust_level *r)
1372 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &v));
1374 return NDR_ERR_SUCCESS;
1377 _PUBLIC_ void ndr_print_winbind_trust_level(struct ndr_print *ndr, const char *name, enum winbind_trust_level r)
1379 const char *val = NULL;
1382 case WINBIND_TRUST_LEVEL_COMPAT_LIST: val = "WINBIND_TRUST_LEVEL_COMPAT_LIST"; break;
1383 case WINBIND_TRUST_LEVEL_COMPAT_CHECK_MACHCC: val = "WINBIND_TRUST_LEVEL_COMPAT_CHECK_MACHCC"; break;
1385 ndr_print_enum(ndr, name, "ENUM", val, r);
1388 static enum ndr_err_code ndr_push_STRUCT_winbind_domain_info_compat(struct ndr_push *ndr, int ndr_flags, const struct winbind_domain_info_compat *r)
1390 if (ndr_flags & NDR_SCALARS) {
1391 NDR_CHECK(ndr_push_align(ndr, 4));
1392 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->netbios_name, CH_UTF8)));
1393 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0));
1394 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->netbios_name, CH_UTF8)));
1395 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->netbios_name, ndr_charset_length(r->netbios_name, CH_UTF8), sizeof(uint8_t), CH_UTF8));
1396 NDR_CHECK(ndr_push_unique_ptr(ndr, r->dns_name));
1397 if (r->sid == NULL) {
1398 return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
1400 NDR_CHECK(ndr_push_ref_ptr(ndr));
1401 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->is_native_mode));
1402 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->is_active_directory));
1403 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->is_primary));
1405 if (ndr_flags & NDR_BUFFERS) {
1407 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->dns_name, CH_UTF8)));
1408 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0));
1409 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->dns_name, CH_UTF8)));
1410 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->dns_name, ndr_charset_length(r->dns_name, CH_UTF8), sizeof(uint8_t), CH_UTF8));
1412 NDR_CHECK(ndr_push_dom_sid(ndr, NDR_SCALARS|NDR_BUFFERS, r->sid));
1414 return NDR_ERR_SUCCESS;
1417 static enum ndr_err_code ndr_pull_STRUCT_winbind_domain_info_compat(struct ndr_pull *ndr, int ndr_flags, struct winbind_domain_info_compat *r)
1419 uint32_t _ptr_dns_name;
1420 TALLOC_CTX *_mem_save_dns_name_0;
1422 TALLOC_CTX *_mem_save_sid_0;
1423 if (ndr_flags & NDR_SCALARS) {
1424 NDR_CHECK(ndr_pull_align(ndr, 4));
1425 NDR_CHECK(ndr_pull_array_size(ndr, &r->netbios_name));
1426 NDR_CHECK(ndr_pull_array_length(ndr, &r->netbios_name));
1427 if (ndr_get_array_length(ndr, &r->netbios_name) > ndr_get_array_size(ndr, &r->netbios_name)) {
1428 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));
1430 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->netbios_name), sizeof(uint8_t)));
1431 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->netbios_name, ndr_get_array_length(ndr, &r->netbios_name), sizeof(uint8_t), CH_UTF8));
1432 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_dns_name));
1433 if (_ptr_dns_name) {
1434 NDR_PULL_ALLOC(ndr, r->dns_name);
1438 NDR_CHECK(ndr_pull_ref_ptr(ndr, &_ptr_sid));
1440 NDR_PULL_ALLOC(ndr, r->sid);
1444 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->is_native_mode));
1445 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->is_active_directory));
1446 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->is_primary));
1448 if (ndr_flags & NDR_BUFFERS) {
1450 _mem_save_dns_name_0 = NDR_PULL_GET_MEM_CTX(ndr);
1451 NDR_PULL_SET_MEM_CTX(ndr, r->dns_name, 0);
1452 NDR_CHECK(ndr_pull_array_size(ndr, &r->dns_name));
1453 NDR_CHECK(ndr_pull_array_length(ndr, &r->dns_name));
1454 if (ndr_get_array_length(ndr, &r->dns_name) > ndr_get_array_size(ndr, &r->dns_name)) {
1455 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));
1457 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->dns_name), sizeof(uint8_t)));
1458 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->dns_name, ndr_get_array_length(ndr, &r->dns_name), sizeof(uint8_t), CH_UTF8));
1459 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_dns_name_0, 0);
1461 _mem_save_sid_0 = NDR_PULL_GET_MEM_CTX(ndr);
1462 NDR_PULL_SET_MEM_CTX(ndr, r->sid, 0);
1463 NDR_CHECK(ndr_pull_dom_sid(ndr, NDR_SCALARS|NDR_BUFFERS, r->sid));
1464 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_sid_0, 0);
1466 return NDR_ERR_SUCCESS;
1469 _PUBLIC_ void ndr_print_STRUCT_winbind_domain_info_compat(struct ndr_print *ndr, const char *name, const struct winbind_domain_info_compat *r)
1471 ndr_print_struct(ndr, name, "winbind_domain_info_compat");
1473 ndr_print_string(ndr, "netbios_name", r->netbios_name);
1474 ndr_print_ptr(ndr, "dns_name", r->dns_name);
1477 ndr_print_string(ndr, "dns_name", r->dns_name);
1480 ndr_print_ptr(ndr, "sid", r->sid);
1482 ndr_print_dom_sid(ndr, "sid", r->sid);
1484 ndr_print_uint32(ndr, "is_native_mode", r->is_native_mode);
1485 ndr_print_uint32(ndr, "is_active_directory", r->is_active_directory);
1486 ndr_print_uint32(ndr, "is_primary", r->is_primary);
1490 static enum ndr_err_code ndr_push_STRUCT_winbind_domain_info_compat_array(struct ndr_push *ndr, int ndr_flags, const struct winbind_domain_info_compat_array *r)
1492 uint32_t cntr_domains_0;
1493 if (ndr_flags & NDR_SCALARS) {
1494 NDR_CHECK(ndr_push_align(ndr, 4));
1495 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->num_domains));
1496 for (cntr_domains_0 = 0; cntr_domains_0 < r->num_domains; cntr_domains_0++) {
1497 NDR_CHECK(ndr_push_STRUCT_winbind_domain_info_compat(ndr, NDR_SCALARS, &r->domains[cntr_domains_0]));
1500 if (ndr_flags & NDR_BUFFERS) {
1501 for (cntr_domains_0 = 0; cntr_domains_0 < r->num_domains; cntr_domains_0++) {
1502 NDR_CHECK(ndr_push_STRUCT_winbind_domain_info_compat(ndr, NDR_BUFFERS, &r->domains[cntr_domains_0]));
1505 return NDR_ERR_SUCCESS;
1508 static enum ndr_err_code ndr_pull_STRUCT_winbind_domain_info_compat_array(struct ndr_pull *ndr, int ndr_flags, struct winbind_domain_info_compat_array *r)
1510 uint32_t cntr_domains_0;
1511 TALLOC_CTX *_mem_save_domains_0;
1512 if (ndr_flags & NDR_SCALARS) {
1513 NDR_CHECK(ndr_pull_align(ndr, 4));
1514 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->num_domains));
1515 NDR_PULL_ALLOC_N(ndr, r->domains, r->num_domains);
1516 _mem_save_domains_0 = NDR_PULL_GET_MEM_CTX(ndr);
1517 NDR_PULL_SET_MEM_CTX(ndr, r->domains, 0);
1518 for (cntr_domains_0 = 0; cntr_domains_0 < r->num_domains; cntr_domains_0++) {
1519 NDR_CHECK(ndr_pull_STRUCT_winbind_domain_info_compat(ndr, NDR_SCALARS, &r->domains[cntr_domains_0]));
1521 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_domains_0, 0);
1523 if (ndr_flags & NDR_BUFFERS) {
1524 _mem_save_domains_0 = NDR_PULL_GET_MEM_CTX(ndr);
1525 NDR_PULL_SET_MEM_CTX(ndr, r->domains, 0);
1526 for (cntr_domains_0 = 0; cntr_domains_0 < r->num_domains; cntr_domains_0++) {
1527 NDR_CHECK(ndr_pull_STRUCT_winbind_domain_info_compat(ndr, NDR_BUFFERS, &r->domains[cntr_domains_0]));
1529 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_domains_0, 0);
1531 return NDR_ERR_SUCCESS;
1534 _PUBLIC_ void ndr_print_STRUCT_winbind_domain_info_compat_array(struct ndr_print *ndr, const char *name, const struct winbind_domain_info_compat_array *r)
1536 uint32_t cntr_domains_0;
1537 ndr_print_struct(ndr, name, "winbind_domain_info_compat_array");
1539 ndr_print_uint32(ndr, "num_domains", r->num_domains);
1540 ndr->print(ndr, "%s: ARRAY(%d)", "domains", r->num_domains);
1542 for (cntr_domains_0=0;cntr_domains_0<r->num_domains;cntr_domains_0++) {
1544 if (asprintf(&idx_0, "[%d]", cntr_domains_0) != -1) {
1545 ndr_print_STRUCT_winbind_domain_info_compat(ndr, "domains", &r->domains[cntr_domains_0]);
1553 static enum ndr_err_code ndr_push_winbind_trust_req(struct ndr_push *ndr, int ndr_flags, const union winbind_trust_req *r)
1555 if (ndr_flags & NDR_SCALARS) {
1556 int level = ndr_push_get_switch_value(ndr, r);
1557 NDR_CHECK(ndr_push_winbind_trust_level(ndr, NDR_SCALARS, level));
1559 case WINBIND_TRUST_LEVEL_COMPAT_LIST: {
1562 case WINBIND_TRUST_LEVEL_COMPAT_CHECK_MACHCC: {
1570 if (ndr_flags & NDR_BUFFERS) {
1571 int level = ndr_push_get_switch_value(ndr, r);
1573 case WINBIND_TRUST_LEVEL_COMPAT_LIST:
1576 case WINBIND_TRUST_LEVEL_COMPAT_CHECK_MACHCC:
1584 return NDR_ERR_SUCCESS;
1587 static enum ndr_err_code ndr_pull_winbind_trust_req(struct ndr_pull *ndr, int ndr_flags, union winbind_trust_req *r)
1591 level = ndr_pull_get_switch_value(ndr, r);
1592 if (ndr_flags & NDR_SCALARS) {
1593 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &_level));
1594 if (_level != level) {
1595 return ndr_pull_error(ndr, NDR_ERR_BAD_SWITCH, "Bad switch value %u for r", _level);
1598 case WINBIND_TRUST_LEVEL_COMPAT_LIST: {
1601 case WINBIND_TRUST_LEVEL_COMPAT_CHECK_MACHCC: {
1609 if (ndr_flags & NDR_BUFFERS) {
1611 case WINBIND_TRUST_LEVEL_COMPAT_LIST:
1614 case WINBIND_TRUST_LEVEL_COMPAT_CHECK_MACHCC:
1622 return NDR_ERR_SUCCESS;
1625 _PUBLIC_ void ndr_print_winbind_trust_req(struct ndr_print *ndr, const char *name, const union winbind_trust_req *r)
1628 level = ndr_print_get_switch_value(ndr, r);
1629 ndr_print_union(ndr, name, level, "winbind_trust_req");
1631 case WINBIND_TRUST_LEVEL_COMPAT_LIST:
1634 case WINBIND_TRUST_LEVEL_COMPAT_CHECK_MACHCC:
1643 static enum ndr_err_code ndr_push_winbind_trust_rep(struct ndr_push *ndr, int ndr_flags, const union winbind_trust_rep *r)
1645 if (ndr_flags & NDR_SCALARS) {
1646 int level = ndr_push_get_switch_value(ndr, r);
1647 NDR_CHECK(ndr_push_winbind_trust_level(ndr, NDR_SCALARS, level));
1649 case WINBIND_TRUST_LEVEL_COMPAT_LIST: {
1650 NDR_CHECK(ndr_push_STRUCT_winbind_domain_info_compat_array(ndr, NDR_SCALARS, &r->compat_trusts));
1653 case WINBIND_TRUST_LEVEL_COMPAT_CHECK_MACHCC: {
1661 if (ndr_flags & NDR_BUFFERS) {
1662 int level = ndr_push_get_switch_value(ndr, r);
1664 case WINBIND_TRUST_LEVEL_COMPAT_LIST:
1665 NDR_CHECK(ndr_push_STRUCT_winbind_domain_info_compat_array(ndr, NDR_BUFFERS, &r->compat_trusts));
1668 case WINBIND_TRUST_LEVEL_COMPAT_CHECK_MACHCC:
1676 return NDR_ERR_SUCCESS;
1679 static enum ndr_err_code ndr_pull_winbind_trust_rep(struct ndr_pull *ndr, int ndr_flags, union winbind_trust_rep *r)
1683 level = ndr_pull_get_switch_value(ndr, r);
1684 if (ndr_flags & NDR_SCALARS) {
1685 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &_level));
1686 if (_level != level) {
1687 return ndr_pull_error(ndr, NDR_ERR_BAD_SWITCH, "Bad switch value %u for r", _level);
1690 case WINBIND_TRUST_LEVEL_COMPAT_LIST: {
1691 NDR_CHECK(ndr_pull_STRUCT_winbind_domain_info_compat_array(ndr, NDR_SCALARS, &r->compat_trusts));
1694 case WINBIND_TRUST_LEVEL_COMPAT_CHECK_MACHCC: {
1702 if (ndr_flags & NDR_BUFFERS) {
1704 case WINBIND_TRUST_LEVEL_COMPAT_LIST:
1705 NDR_CHECK(ndr_pull_STRUCT_winbind_domain_info_compat_array(ndr, NDR_BUFFERS, &r->compat_trusts));
1708 case WINBIND_TRUST_LEVEL_COMPAT_CHECK_MACHCC:
1716 return NDR_ERR_SUCCESS;
1719 _PUBLIC_ void ndr_print_winbind_trust_rep(struct ndr_print *ndr, const char *name, const union winbind_trust_rep *r)
1722 level = ndr_print_get_switch_value(ndr, r);
1723 ndr_print_union(ndr, name, level, "winbind_trust_rep");
1725 case WINBIND_TRUST_LEVEL_COMPAT_LIST:
1726 ndr_print_STRUCT_winbind_domain_info_compat_array(ndr, "compat_trusts", &r->compat_trusts);
1729 case WINBIND_TRUST_LEVEL_COMPAT_CHECK_MACHCC:
1738 static enum ndr_err_code ndr_push_winbind_lookup_level(struct ndr_push *ndr, int ndr_flags, enum winbind_lookup_level r)
1740 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r));
1741 return NDR_ERR_SUCCESS;
1744 static enum ndr_err_code ndr_pull_winbind_lookup_level(struct ndr_pull *ndr, int ndr_flags, enum winbind_lookup_level *r)
1747 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &v));
1749 return NDR_ERR_SUCCESS;
1752 _PUBLIC_ void ndr_print_winbind_lookup_level(struct ndr_print *ndr, const char *name, enum winbind_lookup_level r)
1754 const char *val = NULL;
1757 case WINBIND_LOOKUP_LEVEL_SID2NAME: val = "WINBIND_LOOKUP_LEVEL_SID2NAME"; break;
1758 case WINBIND_LOOKUP_LEVEL_NAME2SID: val = "WINBIND_LOOKUP_LEVEL_NAME2SID"; break;
1759 case WINBIND_LOOKUP_LEVEL_RIDS2NAMES: val = "WINBIND_LOOKUP_LEVEL_RIDS2NAMES"; break;
1760 case WINBIND_LOOKUP_LEVEL_SID2USERINFO: val = "WINBIND_LOOKUP_LEVEL_SID2USERINFO"; break;
1761 case WINBIND_LOOKUP_LEVEL_SID2DOMGROUPS: val = "WINBIND_LOOKUP_LEVEL_SID2DOMGROUPS"; break;
1762 case WINBIND_LOOKUP_LEVEL_EXPANDALIASES: val = "WINBIND_LOOKUP_LEVEL_EXPANDALIASES"; break;
1764 ndr_print_enum(ndr, name, "ENUM", val, r);
1767 static enum ndr_err_code ndr_push_STRUCT_winbind_lookup_req_rids(struct ndr_push *ndr, int ndr_flags, const struct winbind_lookup_req_rids *r)
1769 uint32_t cntr_rids_0;
1770 if (ndr_flags & NDR_SCALARS) {
1771 NDR_CHECK(ndr_push_align(ndr, 4));
1772 NDR_CHECK(ndr_push_unique_ptr(ndr, r->domain_sid));
1773 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->num_rids));
1774 for (cntr_rids_0 = 0; cntr_rids_0 < r->num_rids; cntr_rids_0++) {
1775 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->rids[cntr_rids_0]));
1778 if (ndr_flags & NDR_BUFFERS) {
1779 if (r->domain_sid) {
1780 NDR_CHECK(ndr_push_dom_sid(ndr, NDR_SCALARS|NDR_BUFFERS, r->domain_sid));
1783 return NDR_ERR_SUCCESS;
1786 static enum ndr_err_code ndr_pull_STRUCT_winbind_lookup_req_rids(struct ndr_pull *ndr, int ndr_flags, struct winbind_lookup_req_rids *r)
1788 uint32_t _ptr_domain_sid;
1789 TALLOC_CTX *_mem_save_domain_sid_0;
1790 uint32_t cntr_rids_0;
1791 TALLOC_CTX *_mem_save_rids_0;
1792 if (ndr_flags & NDR_SCALARS) {
1793 NDR_CHECK(ndr_pull_align(ndr, 4));
1794 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_domain_sid));
1795 if (_ptr_domain_sid) {
1796 NDR_PULL_ALLOC(ndr, r->domain_sid);
1798 r->domain_sid = NULL;
1800 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->num_rids));
1801 NDR_PULL_ALLOC_N(ndr, r->rids, r->num_rids);
1802 _mem_save_rids_0 = NDR_PULL_GET_MEM_CTX(ndr);
1803 NDR_PULL_SET_MEM_CTX(ndr, r->rids, 0);
1804 for (cntr_rids_0 = 0; cntr_rids_0 < r->num_rids; cntr_rids_0++) {
1805 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->rids[cntr_rids_0]));
1807 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_rids_0, 0);
1809 if (ndr_flags & NDR_BUFFERS) {
1810 if (r->domain_sid) {
1811 _mem_save_domain_sid_0 = NDR_PULL_GET_MEM_CTX(ndr);
1812 NDR_PULL_SET_MEM_CTX(ndr, r->domain_sid, 0);
1813 NDR_CHECK(ndr_pull_dom_sid(ndr, NDR_SCALARS|NDR_BUFFERS, r->domain_sid));
1814 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_domain_sid_0, 0);
1817 return NDR_ERR_SUCCESS;
1820 _PUBLIC_ void ndr_print_STRUCT_winbind_lookup_req_rids(struct ndr_print *ndr, const char *name, const struct winbind_lookup_req_rids *r)
1822 uint32_t cntr_rids_0;
1823 ndr_print_struct(ndr, name, "winbind_lookup_req_rids");
1825 ndr_print_ptr(ndr, "domain_sid", r->domain_sid);
1827 if (r->domain_sid) {
1828 ndr_print_dom_sid(ndr, "domain_sid", r->domain_sid);
1831 ndr_print_uint32(ndr, "num_rids", r->num_rids);
1832 ndr->print(ndr, "%s: ARRAY(%d)", "rids", r->num_rids);
1834 for (cntr_rids_0=0;cntr_rids_0<r->num_rids;cntr_rids_0++) {
1836 if (asprintf(&idx_0, "[%d]", cntr_rids_0) != -1) {
1837 ndr_print_uint32(ndr, "rids", r->rids[cntr_rids_0]);
1845 static enum ndr_err_code ndr_push_STRUCT_winbind_lookup_name_info(struct ndr_push *ndr, int ndr_flags, const struct winbind_lookup_name_info *r)
1847 if (ndr_flags & NDR_SCALARS) {
1848 NDR_CHECK(ndr_push_align(ndr, 4));
1849 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->domain_name, CH_UTF8)));
1850 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0));
1851 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->domain_name, CH_UTF8)));
1852 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->domain_name, ndr_charset_length(r->domain_name, CH_UTF8), sizeof(uint8_t), CH_UTF8));
1853 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->account_name, CH_UTF8)));
1854 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0));
1855 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->account_name, CH_UTF8)));
1856 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->account_name, ndr_charset_length(r->account_name, CH_UTF8), sizeof(uint8_t), CH_UTF8));
1857 NDR_CHECK(ndr_push_lsa_SidType(ndr, NDR_SCALARS, r->type));
1859 if (ndr_flags & NDR_BUFFERS) {
1861 return NDR_ERR_SUCCESS;
1864 static enum ndr_err_code ndr_pull_STRUCT_winbind_lookup_name_info(struct ndr_pull *ndr, int ndr_flags, struct winbind_lookup_name_info *r)
1866 if (ndr_flags & NDR_SCALARS) {
1867 NDR_CHECK(ndr_pull_align(ndr, 4));
1868 NDR_CHECK(ndr_pull_array_size(ndr, &r->domain_name));
1869 NDR_CHECK(ndr_pull_array_length(ndr, &r->domain_name));
1870 if (ndr_get_array_length(ndr, &r->domain_name) > ndr_get_array_size(ndr, &r->domain_name)) {
1871 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));
1873 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->domain_name), sizeof(uint8_t)));
1874 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->domain_name, ndr_get_array_length(ndr, &r->domain_name), sizeof(uint8_t), CH_UTF8));
1875 NDR_CHECK(ndr_pull_array_size(ndr, &r->account_name));
1876 NDR_CHECK(ndr_pull_array_length(ndr, &r->account_name));
1877 if (ndr_get_array_length(ndr, &r->account_name) > ndr_get_array_size(ndr, &r->account_name)) {
1878 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));
1880 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->account_name), sizeof(uint8_t)));
1881 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->account_name, ndr_get_array_length(ndr, &r->account_name), sizeof(uint8_t), CH_UTF8));
1882 NDR_CHECK(ndr_pull_lsa_SidType(ndr, NDR_SCALARS, &r->type));
1884 if (ndr_flags & NDR_BUFFERS) {
1886 return NDR_ERR_SUCCESS;
1889 _PUBLIC_ void ndr_print_STRUCT_winbind_lookup_name_info(struct ndr_print *ndr, const char *name, const struct winbind_lookup_name_info *r)
1891 ndr_print_struct(ndr, name, "winbind_lookup_name_info");
1893 ndr_print_string(ndr, "domain_name", r->domain_name);
1894 ndr_print_string(ndr, "account_name", r->account_name);
1895 ndr_print_lsa_SidType(ndr, "type", r->type);
1899 static enum ndr_err_code ndr_push_STRUCT_winbind_lookup_sid_info(struct ndr_push *ndr, int ndr_flags, const struct winbind_lookup_sid_info *r)
1901 if (ndr_flags & NDR_SCALARS) {
1902 NDR_CHECK(ndr_push_align(ndr, 4));
1903 NDR_CHECK(ndr_push_unique_ptr(ndr, r->sid));
1904 NDR_CHECK(ndr_push_lsa_SidType(ndr, NDR_SCALARS, r->type));
1906 if (ndr_flags & NDR_BUFFERS) {
1908 NDR_CHECK(ndr_push_dom_sid(ndr, NDR_SCALARS|NDR_BUFFERS, r->sid));
1911 return NDR_ERR_SUCCESS;
1914 static enum ndr_err_code ndr_pull_STRUCT_winbind_lookup_sid_info(struct ndr_pull *ndr, int ndr_flags, struct winbind_lookup_sid_info *r)
1917 TALLOC_CTX *_mem_save_sid_0;
1918 if (ndr_flags & NDR_SCALARS) {
1919 NDR_CHECK(ndr_pull_align(ndr, 4));
1920 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_sid));
1922 NDR_PULL_ALLOC(ndr, r->sid);
1926 NDR_CHECK(ndr_pull_lsa_SidType(ndr, NDR_SCALARS, &r->type));
1928 if (ndr_flags & NDR_BUFFERS) {
1930 _mem_save_sid_0 = NDR_PULL_GET_MEM_CTX(ndr);
1931 NDR_PULL_SET_MEM_CTX(ndr, r->sid, 0);
1932 NDR_CHECK(ndr_pull_dom_sid(ndr, NDR_SCALARS|NDR_BUFFERS, r->sid));
1933 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_sid_0, 0);
1936 return NDR_ERR_SUCCESS;
1939 _PUBLIC_ void ndr_print_STRUCT_winbind_lookup_sid_info(struct ndr_print *ndr, const char *name, const struct winbind_lookup_sid_info *r)
1941 ndr_print_struct(ndr, name, "winbind_lookup_sid_info");
1943 ndr_print_ptr(ndr, "sid", r->sid);
1946 ndr_print_dom_sid(ndr, "sid", r->sid);
1949 ndr_print_lsa_SidType(ndr, "type", r->type);
1953 static enum ndr_err_code ndr_push_STRUCT_winbind_lookup_name_info_array(struct ndr_push *ndr, int ndr_flags, const struct winbind_lookup_name_info_array *r)
1955 uint32_t cntr_names_0;
1956 if (ndr_flags & NDR_SCALARS) {
1957 NDR_CHECK(ndr_push_align(ndr, 4));
1958 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->num_names));
1959 for (cntr_names_0 = 0; cntr_names_0 < r->num_names; cntr_names_0++) {
1960 NDR_CHECK(ndr_push_STRUCT_winbind_lookup_name_info(ndr, NDR_SCALARS, &r->names[cntr_names_0]));
1963 if (ndr_flags & NDR_BUFFERS) {
1965 return NDR_ERR_SUCCESS;
1968 static enum ndr_err_code ndr_pull_STRUCT_winbind_lookup_name_info_array(struct ndr_pull *ndr, int ndr_flags, struct winbind_lookup_name_info_array *r)
1970 uint32_t cntr_names_0;
1971 TALLOC_CTX *_mem_save_names_0;
1972 if (ndr_flags & NDR_SCALARS) {
1973 NDR_CHECK(ndr_pull_align(ndr, 4));
1974 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->num_names));
1975 NDR_PULL_ALLOC_N(ndr, r->names, r->num_names);
1976 _mem_save_names_0 = NDR_PULL_GET_MEM_CTX(ndr);
1977 NDR_PULL_SET_MEM_CTX(ndr, r->names, 0);
1978 for (cntr_names_0 = 0; cntr_names_0 < r->num_names; cntr_names_0++) {
1979 NDR_CHECK(ndr_pull_STRUCT_winbind_lookup_name_info(ndr, NDR_SCALARS, &r->names[cntr_names_0]));
1981 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_names_0, 0);
1983 if (ndr_flags & NDR_BUFFERS) {
1985 return NDR_ERR_SUCCESS;
1988 _PUBLIC_ void ndr_print_STRUCT_winbind_lookup_name_info_array(struct ndr_print *ndr, const char *name, const struct winbind_lookup_name_info_array *r)
1990 uint32_t cntr_names_0;
1991 ndr_print_struct(ndr, name, "winbind_lookup_name_info_array");
1993 ndr_print_uint32(ndr, "num_names", r->num_names);
1994 ndr->print(ndr, "%s: ARRAY(%d)", "names", r->num_names);
1996 for (cntr_names_0=0;cntr_names_0<r->num_names;cntr_names_0++) {
1998 if (asprintf(&idx_0, "[%d]", cntr_names_0) != -1) {
1999 ndr_print_STRUCT_winbind_lookup_name_info(ndr, "names", &r->names[cntr_names_0]);
2007 static enum ndr_err_code ndr_push_STRUCT_winbind_lookup_user_info(struct ndr_push *ndr, int ndr_flags, const struct winbind_lookup_user_info *r)
2009 if (ndr_flags & NDR_SCALARS) {
2010 NDR_CHECK(ndr_push_align(ndr, 8));
2011 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->account, CH_UTF8)));
2012 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0));
2013 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->account, CH_UTF8)));
2014 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->account, ndr_charset_length(r->account, CH_UTF8), sizeof(uint8_t), CH_UTF8));
2015 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->gecos, CH_UTF8)));
2016 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0));
2017 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->gecos, CH_UTF8)));
2018 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->gecos, ndr_charset_length(r->gecos, CH_UTF8), sizeof(uint8_t), CH_UTF8));
2019 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->homedir, CH_UTF8)));
2020 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0));
2021 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->homedir, CH_UTF8)));
2022 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->homedir, ndr_charset_length(r->homedir, CH_UTF8), sizeof(uint8_t), CH_UTF8));
2023 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->shell, CH_UTF8)));
2024 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0));
2025 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->shell, CH_UTF8)));
2026 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->shell, ndr_charset_length(r->shell, CH_UTF8), sizeof(uint8_t), CH_UTF8));
2027 NDR_CHECK(ndr_push_hyper(ndr, NDR_SCALARS, r->primary_gid));
2028 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->primary_rid));
2030 if (ndr_flags & NDR_BUFFERS) {
2032 return NDR_ERR_SUCCESS;
2035 static enum ndr_err_code ndr_pull_STRUCT_winbind_lookup_user_info(struct ndr_pull *ndr, int ndr_flags, struct winbind_lookup_user_info *r)
2037 if (ndr_flags & NDR_SCALARS) {
2038 NDR_CHECK(ndr_pull_align(ndr, 8));
2039 NDR_CHECK(ndr_pull_array_size(ndr, &r->account));
2040 NDR_CHECK(ndr_pull_array_length(ndr, &r->account));
2041 if (ndr_get_array_length(ndr, &r->account) > ndr_get_array_size(ndr, &r->account)) {
2042 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), ndr_get_array_length(ndr, &r->account));
2044 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->account), sizeof(uint8_t)));
2045 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->account, ndr_get_array_length(ndr, &r->account), sizeof(uint8_t), CH_UTF8));
2046 NDR_CHECK(ndr_pull_array_size(ndr, &r->gecos));
2047 NDR_CHECK(ndr_pull_array_length(ndr, &r->gecos));
2048 if (ndr_get_array_length(ndr, &r->gecos) > ndr_get_array_size(ndr, &r->gecos)) {
2049 return ndr_pull_error(ndr, NDR_ERR_ARRAY_SIZE, "Bad array size %u should exceed array length %u", ndr_get_array_size(ndr, &r->gecos), ndr_get_array_length(ndr, &r->gecos));
2051 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->gecos), sizeof(uint8_t)));
2052 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->gecos, ndr_get_array_length(ndr, &r->gecos), sizeof(uint8_t), CH_UTF8));
2053 NDR_CHECK(ndr_pull_array_size(ndr, &r->homedir));
2054 NDR_CHECK(ndr_pull_array_length(ndr, &r->homedir));
2055 if (ndr_get_array_length(ndr, &r->homedir) > ndr_get_array_size(ndr, &r->homedir)) {
2056 return ndr_pull_error(ndr, NDR_ERR_ARRAY_SIZE, "Bad array size %u should exceed array length %u", ndr_get_array_size(ndr, &r->homedir), ndr_get_array_length(ndr, &r->homedir));
2058 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->homedir), sizeof(uint8_t)));
2059 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->homedir, ndr_get_array_length(ndr, &r->homedir), sizeof(uint8_t), CH_UTF8));
2060 NDR_CHECK(ndr_pull_array_size(ndr, &r->shell));
2061 NDR_CHECK(ndr_pull_array_length(ndr, &r->shell));
2062 if (ndr_get_array_length(ndr, &r->shell) > ndr_get_array_size(ndr, &r->shell)) {
2063 return ndr_pull_error(ndr, NDR_ERR_ARRAY_SIZE, "Bad array size %u should exceed array length %u", ndr_get_array_size(ndr, &r->shell), ndr_get_array_length(ndr, &r->shell));
2065 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->shell), sizeof(uint8_t)));
2066 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->shell, ndr_get_array_length(ndr, &r->shell), sizeof(uint8_t), CH_UTF8));
2067 NDR_CHECK(ndr_pull_hyper(ndr, NDR_SCALARS, &r->primary_gid));
2068 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->primary_rid));
2070 if (ndr_flags & NDR_BUFFERS) {
2072 return NDR_ERR_SUCCESS;
2075 _PUBLIC_ void ndr_print_STRUCT_winbind_lookup_user_info(struct ndr_print *ndr, const char *name, const struct winbind_lookup_user_info *r)
2077 ndr_print_struct(ndr, name, "winbind_lookup_user_info");
2079 ndr_print_string(ndr, "account", r->account);
2080 ndr_print_string(ndr, "gecos", r->gecos);
2081 ndr_print_string(ndr, "homedir", r->homedir);
2082 ndr_print_string(ndr, "shell", r->shell);
2083 ndr_print_hyper(ndr, "primary_gid", r->primary_gid);
2084 ndr_print_uint32(ndr, "primary_rid", r->primary_rid);
2088 static enum ndr_err_code ndr_push_STRUCT_winbind_lookup_sid_info_array(struct ndr_push *ndr, int ndr_flags, const struct winbind_lookup_sid_info_array *r)
2090 uint32_t cntr_sids_0;
2091 if (ndr_flags & NDR_SCALARS) {
2092 NDR_CHECK(ndr_push_align(ndr, 4));
2093 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->num_sids));
2094 for (cntr_sids_0 = 0; cntr_sids_0 < r->num_sids; cntr_sids_0++) {
2095 NDR_CHECK(ndr_push_STRUCT_winbind_lookup_sid_info(ndr, NDR_SCALARS, &r->sids[cntr_sids_0]));
2098 if (ndr_flags & NDR_BUFFERS) {
2099 for (cntr_sids_0 = 0; cntr_sids_0 < r->num_sids; cntr_sids_0++) {
2100 NDR_CHECK(ndr_push_STRUCT_winbind_lookup_sid_info(ndr, NDR_BUFFERS, &r->sids[cntr_sids_0]));
2103 return NDR_ERR_SUCCESS;
2106 static enum ndr_err_code ndr_pull_STRUCT_winbind_lookup_sid_info_array(struct ndr_pull *ndr, int ndr_flags, struct winbind_lookup_sid_info_array *r)
2108 uint32_t cntr_sids_0;
2109 TALLOC_CTX *_mem_save_sids_0;
2110 if (ndr_flags & NDR_SCALARS) {
2111 NDR_CHECK(ndr_pull_align(ndr, 4));
2112 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->num_sids));
2113 NDR_PULL_ALLOC_N(ndr, r->sids, r->num_sids);
2114 _mem_save_sids_0 = NDR_PULL_GET_MEM_CTX(ndr);
2115 NDR_PULL_SET_MEM_CTX(ndr, r->sids, 0);
2116 for (cntr_sids_0 = 0; cntr_sids_0 < r->num_sids; cntr_sids_0++) {
2117 NDR_CHECK(ndr_pull_STRUCT_winbind_lookup_sid_info(ndr, NDR_SCALARS, &r->sids[cntr_sids_0]));
2119 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_sids_0, 0);
2121 if (ndr_flags & NDR_BUFFERS) {
2122 _mem_save_sids_0 = NDR_PULL_GET_MEM_CTX(ndr);
2123 NDR_PULL_SET_MEM_CTX(ndr, r->sids, 0);
2124 for (cntr_sids_0 = 0; cntr_sids_0 < r->num_sids; cntr_sids_0++) {
2125 NDR_CHECK(ndr_pull_STRUCT_winbind_lookup_sid_info(ndr, NDR_BUFFERS, &r->sids[cntr_sids_0]));
2127 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_sids_0, 0);
2129 return NDR_ERR_SUCCESS;
2132 _PUBLIC_ void ndr_print_STRUCT_winbind_lookup_sid_info_array(struct ndr_print *ndr, const char *name, const struct winbind_lookup_sid_info_array *r)
2134 uint32_t cntr_sids_0;
2135 ndr_print_struct(ndr, name, "winbind_lookup_sid_info_array");
2137 ndr_print_uint32(ndr, "num_sids", r->num_sids);
2138 ndr->print(ndr, "%s: ARRAY(%d)", "sids", r->num_sids);
2140 for (cntr_sids_0=0;cntr_sids_0<r->num_sids;cntr_sids_0++) {
2142 if (asprintf(&idx_0, "[%d]", cntr_sids_0) != -1) {
2143 ndr_print_STRUCT_winbind_lookup_sid_info(ndr, "sids", &r->sids[cntr_sids_0]);
2151 static enum ndr_err_code ndr_push_winbind_lookup_req(struct ndr_push *ndr, int ndr_flags, const union winbind_lookup_req *r)
2153 if (ndr_flags & NDR_SCALARS) {
2154 int level = ndr_push_get_switch_value(ndr, r);
2155 NDR_CHECK(ndr_push_winbind_lookup_level(ndr, NDR_SCALARS, level));
2157 case WINBIND_LOOKUP_LEVEL_SID2NAME: {
2158 NDR_CHECK(ndr_push_unique_ptr(ndr, r->sid));
2161 case WINBIND_LOOKUP_LEVEL_NAME2SID: {
2162 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->name, CH_UTF8)));
2163 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0));
2164 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->name, CH_UTF8)));
2165 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->name, ndr_charset_length(r->name, CH_UTF8), sizeof(uint8_t), CH_UTF8));
2168 case WINBIND_LOOKUP_LEVEL_RIDS2NAMES: {
2169 NDR_CHECK(ndr_push_STRUCT_winbind_lookup_req_rids(ndr, NDR_SCALARS, &r->rids));
2172 case WINBIND_LOOKUP_LEVEL_SID2USERINFO: {
2173 NDR_CHECK(ndr_push_unique_ptr(ndr, r->sid));
2176 case WINBIND_LOOKUP_LEVEL_SID2DOMGROUPS: {
2177 NDR_CHECK(ndr_push_unique_ptr(ndr, r->sid));
2180 case WINBIND_LOOKUP_LEVEL_EXPANDALIASES: {
2181 NDR_CHECK(ndr_push_STRUCT_winbind_lookup_sid_info_array(ndr, NDR_SCALARS, &r->sid_array));
2189 if (ndr_flags & NDR_BUFFERS) {
2190 int level = ndr_push_get_switch_value(ndr, r);
2192 case WINBIND_LOOKUP_LEVEL_SID2NAME:
2194 NDR_CHECK(ndr_push_dom_sid(ndr, NDR_SCALARS|NDR_BUFFERS, r->sid));
2198 case WINBIND_LOOKUP_LEVEL_NAME2SID:
2201 case WINBIND_LOOKUP_LEVEL_RIDS2NAMES:
2202 NDR_CHECK(ndr_push_STRUCT_winbind_lookup_req_rids(ndr, NDR_BUFFERS, &r->rids));
2205 case WINBIND_LOOKUP_LEVEL_SID2USERINFO:
2207 NDR_CHECK(ndr_push_dom_sid(ndr, NDR_SCALARS|NDR_BUFFERS, r->sid));
2211 case WINBIND_LOOKUP_LEVEL_SID2DOMGROUPS:
2213 NDR_CHECK(ndr_push_dom_sid(ndr, NDR_SCALARS|NDR_BUFFERS, r->sid));
2217 case WINBIND_LOOKUP_LEVEL_EXPANDALIASES:
2218 NDR_CHECK(ndr_push_STRUCT_winbind_lookup_sid_info_array(ndr, NDR_BUFFERS, &r->sid_array));
2226 return NDR_ERR_SUCCESS;
2229 static enum ndr_err_code ndr_pull_winbind_lookup_req(struct ndr_pull *ndr, int ndr_flags, union winbind_lookup_req *r)
2233 TALLOC_CTX *_mem_save_sid_0;
2234 level = ndr_pull_get_switch_value(ndr, r);
2235 if (ndr_flags & NDR_SCALARS) {
2236 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &_level));
2237 if (_level != level) {
2238 return ndr_pull_error(ndr, NDR_ERR_BAD_SWITCH, "Bad switch value %u for r", _level);
2241 case WINBIND_LOOKUP_LEVEL_SID2NAME: {
2243 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_sid));
2245 NDR_PULL_ALLOC(ndr, r->sid);
2251 case WINBIND_LOOKUP_LEVEL_NAME2SID: {
2252 NDR_CHECK(ndr_pull_array_size(ndr, &r->name));
2253 NDR_CHECK(ndr_pull_array_length(ndr, &r->name));
2254 if (ndr_get_array_length(ndr, &r->name) > ndr_get_array_size(ndr, &r->name)) {
2255 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));
2257 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->name), sizeof(uint8_t)));
2258 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->name, ndr_get_array_length(ndr, &r->name), sizeof(uint8_t), CH_UTF8));
2261 case WINBIND_LOOKUP_LEVEL_RIDS2NAMES: {
2262 NDR_CHECK(ndr_pull_STRUCT_winbind_lookup_req_rids(ndr, NDR_SCALARS, &r->rids));
2265 case WINBIND_LOOKUP_LEVEL_SID2USERINFO: {
2267 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_sid));
2269 NDR_PULL_ALLOC(ndr, r->sid);
2275 case WINBIND_LOOKUP_LEVEL_SID2DOMGROUPS: {
2277 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_sid));
2279 NDR_PULL_ALLOC(ndr, r->sid);
2285 case WINBIND_LOOKUP_LEVEL_EXPANDALIASES: {
2286 NDR_CHECK(ndr_pull_STRUCT_winbind_lookup_sid_info_array(ndr, NDR_SCALARS, &r->sid_array));
2294 if (ndr_flags & NDR_BUFFERS) {
2296 case WINBIND_LOOKUP_LEVEL_SID2NAME:
2298 _mem_save_sid_0 = NDR_PULL_GET_MEM_CTX(ndr);
2299 NDR_PULL_SET_MEM_CTX(ndr, r->sid, 0);
2300 NDR_CHECK(ndr_pull_dom_sid(ndr, NDR_SCALARS|NDR_BUFFERS, r->sid));
2301 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_sid_0, 0);
2305 case WINBIND_LOOKUP_LEVEL_NAME2SID:
2308 case WINBIND_LOOKUP_LEVEL_RIDS2NAMES:
2309 NDR_CHECK(ndr_pull_STRUCT_winbind_lookup_req_rids(ndr, NDR_BUFFERS, &r->rids));
2312 case WINBIND_LOOKUP_LEVEL_SID2USERINFO:
2314 _mem_save_sid_0 = NDR_PULL_GET_MEM_CTX(ndr);
2315 NDR_PULL_SET_MEM_CTX(ndr, r->sid, 0);
2316 NDR_CHECK(ndr_pull_dom_sid(ndr, NDR_SCALARS|NDR_BUFFERS, r->sid));
2317 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_sid_0, 0);
2321 case WINBIND_LOOKUP_LEVEL_SID2DOMGROUPS:
2323 _mem_save_sid_0 = NDR_PULL_GET_MEM_CTX(ndr);
2324 NDR_PULL_SET_MEM_CTX(ndr, r->sid, 0);
2325 NDR_CHECK(ndr_pull_dom_sid(ndr, NDR_SCALARS|NDR_BUFFERS, r->sid));
2326 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_sid_0, 0);
2330 case WINBIND_LOOKUP_LEVEL_EXPANDALIASES:
2331 NDR_CHECK(ndr_pull_STRUCT_winbind_lookup_sid_info_array(ndr, NDR_BUFFERS, &r->sid_array));
2339 return NDR_ERR_SUCCESS;
2342 _PUBLIC_ void ndr_print_winbind_lookup_req(struct ndr_print *ndr, const char *name, const union winbind_lookup_req *r)
2345 level = ndr_print_get_switch_value(ndr, r);
2346 ndr_print_union(ndr, name, level, "winbind_lookup_req");
2348 case WINBIND_LOOKUP_LEVEL_SID2NAME:
2349 ndr_print_ptr(ndr, "sid", r->sid);
2352 ndr_print_dom_sid(ndr, "sid", r->sid);
2357 case WINBIND_LOOKUP_LEVEL_NAME2SID:
2358 ndr_print_string(ndr, "name", r->name);
2361 case WINBIND_LOOKUP_LEVEL_RIDS2NAMES:
2362 ndr_print_STRUCT_winbind_lookup_req_rids(ndr, "rids", &r->rids);
2365 case WINBIND_LOOKUP_LEVEL_SID2USERINFO:
2366 ndr_print_ptr(ndr, "sid", r->sid);
2369 ndr_print_dom_sid(ndr, "sid", r->sid);
2374 case WINBIND_LOOKUP_LEVEL_SID2DOMGROUPS:
2375 ndr_print_ptr(ndr, "sid", r->sid);
2378 ndr_print_dom_sid(ndr, "sid", r->sid);
2383 case WINBIND_LOOKUP_LEVEL_EXPANDALIASES:
2384 ndr_print_STRUCT_winbind_lookup_sid_info_array(ndr, "sid_array", &r->sid_array);
2393 static enum ndr_err_code ndr_push_winbind_lookup_rep(struct ndr_push *ndr, int ndr_flags, const union winbind_lookup_rep *r)
2395 if (ndr_flags & NDR_SCALARS) {
2396 int level = ndr_push_get_switch_value(ndr, r);
2397 NDR_CHECK(ndr_push_winbind_lookup_level(ndr, NDR_SCALARS, level));
2399 case WINBIND_LOOKUP_LEVEL_SID2NAME: {
2400 NDR_CHECK(ndr_push_STRUCT_winbind_lookup_name_info(ndr, NDR_SCALARS, &r->name_info));
2403 case WINBIND_LOOKUP_LEVEL_NAME2SID: {
2404 NDR_CHECK(ndr_push_STRUCT_winbind_lookup_sid_info(ndr, NDR_SCALARS, &r->sid_info));
2407 case WINBIND_LOOKUP_LEVEL_RIDS2NAMES: {
2408 NDR_CHECK(ndr_push_STRUCT_winbind_lookup_name_info_array(ndr, NDR_SCALARS, &r->name_array));
2411 case WINBIND_LOOKUP_LEVEL_SID2USERINFO: {
2412 NDR_CHECK(ndr_push_STRUCT_winbind_lookup_user_info(ndr, NDR_SCALARS, &r->user_info));
2415 case WINBIND_LOOKUP_LEVEL_SID2DOMGROUPS: {
2416 NDR_CHECK(ndr_push_STRUCT_winbind_lookup_sid_info_array(ndr, NDR_SCALARS, &r->sid_array));
2419 case WINBIND_LOOKUP_LEVEL_EXPANDALIASES: {
2420 NDR_CHECK(ndr_push_STRUCT_winbind_lookup_sid_info_array(ndr, NDR_SCALARS, &r->sid_array));
2428 if (ndr_flags & NDR_BUFFERS) {
2429 int level = ndr_push_get_switch_value(ndr, r);
2431 case WINBIND_LOOKUP_LEVEL_SID2NAME:
2434 case WINBIND_LOOKUP_LEVEL_NAME2SID:
2435 NDR_CHECK(ndr_push_STRUCT_winbind_lookup_sid_info(ndr, NDR_BUFFERS, &r->sid_info));
2438 case WINBIND_LOOKUP_LEVEL_RIDS2NAMES:
2441 case WINBIND_LOOKUP_LEVEL_SID2USERINFO:
2444 case WINBIND_LOOKUP_LEVEL_SID2DOMGROUPS:
2445 NDR_CHECK(ndr_push_STRUCT_winbind_lookup_sid_info_array(ndr, NDR_BUFFERS, &r->sid_array));
2448 case WINBIND_LOOKUP_LEVEL_EXPANDALIASES:
2449 NDR_CHECK(ndr_push_STRUCT_winbind_lookup_sid_info_array(ndr, NDR_BUFFERS, &r->sid_array));
2457 return NDR_ERR_SUCCESS;
2460 static enum ndr_err_code ndr_pull_winbind_lookup_rep(struct ndr_pull *ndr, int ndr_flags, union winbind_lookup_rep *r)
2464 level = ndr_pull_get_switch_value(ndr, r);
2465 if (ndr_flags & NDR_SCALARS) {
2466 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &_level));
2467 if (_level != level) {
2468 return ndr_pull_error(ndr, NDR_ERR_BAD_SWITCH, "Bad switch value %u for r", _level);
2471 case WINBIND_LOOKUP_LEVEL_SID2NAME: {
2472 NDR_CHECK(ndr_pull_STRUCT_winbind_lookup_name_info(ndr, NDR_SCALARS, &r->name_info));
2475 case WINBIND_LOOKUP_LEVEL_NAME2SID: {
2476 NDR_CHECK(ndr_pull_STRUCT_winbind_lookup_sid_info(ndr, NDR_SCALARS, &r->sid_info));
2479 case WINBIND_LOOKUP_LEVEL_RIDS2NAMES: {
2480 NDR_CHECK(ndr_pull_STRUCT_winbind_lookup_name_info_array(ndr, NDR_SCALARS, &r->name_array));
2483 case WINBIND_LOOKUP_LEVEL_SID2USERINFO: {
2484 NDR_CHECK(ndr_pull_STRUCT_winbind_lookup_user_info(ndr, NDR_SCALARS, &r->user_info));
2487 case WINBIND_LOOKUP_LEVEL_SID2DOMGROUPS: {
2488 NDR_CHECK(ndr_pull_STRUCT_winbind_lookup_sid_info_array(ndr, NDR_SCALARS, &r->sid_array));
2491 case WINBIND_LOOKUP_LEVEL_EXPANDALIASES: {
2492 NDR_CHECK(ndr_pull_STRUCT_winbind_lookup_sid_info_array(ndr, NDR_SCALARS, &r->sid_array));
2500 if (ndr_flags & NDR_BUFFERS) {
2502 case WINBIND_LOOKUP_LEVEL_SID2NAME:
2505 case WINBIND_LOOKUP_LEVEL_NAME2SID:
2506 NDR_CHECK(ndr_pull_STRUCT_winbind_lookup_sid_info(ndr, NDR_BUFFERS, &r->sid_info));
2509 case WINBIND_LOOKUP_LEVEL_RIDS2NAMES:
2512 case WINBIND_LOOKUP_LEVEL_SID2USERINFO:
2515 case WINBIND_LOOKUP_LEVEL_SID2DOMGROUPS:
2516 NDR_CHECK(ndr_pull_STRUCT_winbind_lookup_sid_info_array(ndr, NDR_BUFFERS, &r->sid_array));
2519 case WINBIND_LOOKUP_LEVEL_EXPANDALIASES:
2520 NDR_CHECK(ndr_pull_STRUCT_winbind_lookup_sid_info_array(ndr, NDR_BUFFERS, &r->sid_array));
2528 return NDR_ERR_SUCCESS;
2531 _PUBLIC_ void ndr_print_winbind_lookup_rep(struct ndr_print *ndr, const char *name, const union winbind_lookup_rep *r)
2534 level = ndr_print_get_switch_value(ndr, r);
2535 ndr_print_union(ndr, name, level, "winbind_lookup_rep");
2537 case WINBIND_LOOKUP_LEVEL_SID2NAME:
2538 ndr_print_STRUCT_winbind_lookup_name_info(ndr, "name_info", &r->name_info);
2541 case WINBIND_LOOKUP_LEVEL_NAME2SID:
2542 ndr_print_STRUCT_winbind_lookup_sid_info(ndr, "sid_info", &r->sid_info);
2545 case WINBIND_LOOKUP_LEVEL_RIDS2NAMES:
2546 ndr_print_STRUCT_winbind_lookup_name_info_array(ndr, "name_array", &r->name_array);
2549 case WINBIND_LOOKUP_LEVEL_SID2USERINFO:
2550 ndr_print_STRUCT_winbind_lookup_user_info(ndr, "user_info", &r->user_info);
2553 case WINBIND_LOOKUP_LEVEL_SID2DOMGROUPS:
2554 ndr_print_STRUCT_winbind_lookup_sid_info_array(ndr, "sid_array", &r->sid_array);
2557 case WINBIND_LOOKUP_LEVEL_EXPANDALIASES:
2558 ndr_print_STRUCT_winbind_lookup_sid_info_array(ndr, "sid_array", &r->sid_array);
2567 static enum ndr_err_code ndr_push_winbind_get_idmap_level(struct ndr_push *ndr, int ndr_flags, enum winbind_get_idmap_level r)
2569 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r));
2570 return NDR_ERR_SUCCESS;
2573 static enum ndr_err_code ndr_pull_winbind_get_idmap_level(struct ndr_pull *ndr, int ndr_flags, enum winbind_get_idmap_level *r)
2576 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &v));
2578 return NDR_ERR_SUCCESS;
2581 _PUBLIC_ void ndr_print_winbind_get_idmap_level(struct ndr_print *ndr, const char *name, enum winbind_get_idmap_level r)
2583 const char *val = NULL;
2586 case WINBIND_IDMAP_LEVEL_SID_TO_UID: val = "WINBIND_IDMAP_LEVEL_SID_TO_UID"; break;
2587 case WINBIND_IDMAP_LEVEL_SID_TO_GID: val = "WINBIND_IDMAP_LEVEL_SID_TO_GID"; break;
2588 case WINBIND_IDMAP_LEVEL_UID_TO_SID: val = "WINBIND_IDMAP_LEVEL_UID_TO_SID"; break;
2589 case WINBIND_IDMAP_LEVEL_GID_TO_SID: val = "WINBIND_IDMAP_LEVEL_GID_TO_SID"; break;
2591 ndr_print_enum(ndr, name, "ENUM", val, r);
2594 static enum ndr_err_code ndr_push_winbind_get_idmap_req(struct ndr_push *ndr, int ndr_flags, const union winbind_get_idmap_req *r)
2596 if (ndr_flags & NDR_SCALARS) {
2597 int level = ndr_push_get_switch_value(ndr, r);
2598 NDR_CHECK(ndr_push_winbind_get_idmap_level(ndr, NDR_SCALARS, level));
2600 case WINBIND_IDMAP_LEVEL_SID_TO_UID: {
2601 NDR_CHECK(ndr_push_unique_ptr(ndr, r->sid));
2604 case WINBIND_IDMAP_LEVEL_SID_TO_GID: {
2605 NDR_CHECK(ndr_push_unique_ptr(ndr, r->sid));
2608 case WINBIND_IDMAP_LEVEL_UID_TO_SID: {
2609 NDR_CHECK(ndr_push_hyper(ndr, NDR_SCALARS, r->uid));
2612 case WINBIND_IDMAP_LEVEL_GID_TO_SID: {
2613 NDR_CHECK(ndr_push_hyper(ndr, NDR_SCALARS, r->gid));
2617 return ndr_push_error(ndr, NDR_ERR_BAD_SWITCH, "Bad switch value %u", level);
2620 if (ndr_flags & NDR_BUFFERS) {
2621 int level = ndr_push_get_switch_value(ndr, r);
2623 case WINBIND_IDMAP_LEVEL_SID_TO_UID:
2625 NDR_CHECK(ndr_push_dom_sid(ndr, NDR_SCALARS|NDR_BUFFERS, r->sid));
2629 case WINBIND_IDMAP_LEVEL_SID_TO_GID:
2631 NDR_CHECK(ndr_push_dom_sid(ndr, NDR_SCALARS|NDR_BUFFERS, r->sid));
2635 case WINBIND_IDMAP_LEVEL_UID_TO_SID:
2638 case WINBIND_IDMAP_LEVEL_GID_TO_SID:
2642 return ndr_push_error(ndr, NDR_ERR_BAD_SWITCH, "Bad switch value %u", level);
2645 return NDR_ERR_SUCCESS;
2648 static enum ndr_err_code ndr_pull_winbind_get_idmap_req(struct ndr_pull *ndr, int ndr_flags, union winbind_get_idmap_req *r)
2652 TALLOC_CTX *_mem_save_sid_0;
2653 level = ndr_pull_get_switch_value(ndr, r);
2654 if (ndr_flags & NDR_SCALARS) {
2655 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &_level));
2656 if (_level != level) {
2657 return ndr_pull_error(ndr, NDR_ERR_BAD_SWITCH, "Bad switch value %u for r", _level);
2660 case WINBIND_IDMAP_LEVEL_SID_TO_UID: {
2662 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_sid));
2664 NDR_PULL_ALLOC(ndr, r->sid);
2670 case WINBIND_IDMAP_LEVEL_SID_TO_GID: {
2672 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_sid));
2674 NDR_PULL_ALLOC(ndr, r->sid);
2680 case WINBIND_IDMAP_LEVEL_UID_TO_SID: {
2681 NDR_CHECK(ndr_pull_hyper(ndr, NDR_SCALARS, &r->uid));
2684 case WINBIND_IDMAP_LEVEL_GID_TO_SID: {
2685 NDR_CHECK(ndr_pull_hyper(ndr, NDR_SCALARS, &r->gid));
2689 return ndr_pull_error(ndr, NDR_ERR_BAD_SWITCH, "Bad switch value %u", level);
2692 if (ndr_flags & NDR_BUFFERS) {
2694 case WINBIND_IDMAP_LEVEL_SID_TO_UID:
2696 _mem_save_sid_0 = NDR_PULL_GET_MEM_CTX(ndr);
2697 NDR_PULL_SET_MEM_CTX(ndr, r->sid, 0);
2698 NDR_CHECK(ndr_pull_dom_sid(ndr, NDR_SCALARS|NDR_BUFFERS, r->sid));
2699 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_sid_0, 0);
2703 case WINBIND_IDMAP_LEVEL_SID_TO_GID:
2705 _mem_save_sid_0 = NDR_PULL_GET_MEM_CTX(ndr);
2706 NDR_PULL_SET_MEM_CTX(ndr, r->sid, 0);
2707 NDR_CHECK(ndr_pull_dom_sid(ndr, NDR_SCALARS|NDR_BUFFERS, r->sid));
2708 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_sid_0, 0);
2712 case WINBIND_IDMAP_LEVEL_UID_TO_SID:
2715 case WINBIND_IDMAP_LEVEL_GID_TO_SID:
2719 return ndr_pull_error(ndr, NDR_ERR_BAD_SWITCH, "Bad switch value %u", level);
2722 return NDR_ERR_SUCCESS;
2725 _PUBLIC_ void ndr_print_winbind_get_idmap_req(struct ndr_print *ndr, const char *name, const union winbind_get_idmap_req *r)
2728 level = ndr_print_get_switch_value(ndr, r);
2729 ndr_print_union(ndr, name, level, "winbind_get_idmap_req");
2731 case WINBIND_IDMAP_LEVEL_SID_TO_UID:
2732 ndr_print_ptr(ndr, "sid", r->sid);
2735 ndr_print_dom_sid(ndr, "sid", r->sid);
2740 case WINBIND_IDMAP_LEVEL_SID_TO_GID:
2741 ndr_print_ptr(ndr, "sid", r->sid);
2744 ndr_print_dom_sid(ndr, "sid", r->sid);
2749 case WINBIND_IDMAP_LEVEL_UID_TO_SID:
2750 ndr_print_hyper(ndr, "uid", r->uid);
2753 case WINBIND_IDMAP_LEVEL_GID_TO_SID:
2754 ndr_print_hyper(ndr, "gid", r->gid);
2758 ndr_print_bad_level(ndr, name, level);
2762 static enum ndr_err_code ndr_push_winbind_get_idmap_rep(struct ndr_push *ndr, int ndr_flags, const union winbind_get_idmap_rep *r)
2764 if (ndr_flags & NDR_SCALARS) {
2765 int level = ndr_push_get_switch_value(ndr, r);
2766 NDR_CHECK(ndr_push_winbind_get_idmap_level(ndr, NDR_SCALARS, level));
2768 case WINBIND_IDMAP_LEVEL_SID_TO_UID: {
2769 NDR_CHECK(ndr_push_hyper(ndr, NDR_SCALARS, r->uid));
2772 case WINBIND_IDMAP_LEVEL_SID_TO_GID: {
2773 NDR_CHECK(ndr_push_hyper(ndr, NDR_SCALARS, r->gid));
2776 case WINBIND_IDMAP_LEVEL_UID_TO_SID: {
2777 NDR_CHECK(ndr_push_unique_ptr(ndr, r->sid));
2780 case WINBIND_IDMAP_LEVEL_GID_TO_SID: {
2781 NDR_CHECK(ndr_push_unique_ptr(ndr, r->sid));
2785 return ndr_push_error(ndr, NDR_ERR_BAD_SWITCH, "Bad switch value %u", level);
2788 if (ndr_flags & NDR_BUFFERS) {
2789 int level = ndr_push_get_switch_value(ndr, r);
2791 case WINBIND_IDMAP_LEVEL_SID_TO_UID:
2794 case WINBIND_IDMAP_LEVEL_SID_TO_GID:
2797 case WINBIND_IDMAP_LEVEL_UID_TO_SID:
2799 NDR_CHECK(ndr_push_dom_sid(ndr, NDR_SCALARS|NDR_BUFFERS, r->sid));
2803 case WINBIND_IDMAP_LEVEL_GID_TO_SID:
2805 NDR_CHECK(ndr_push_dom_sid(ndr, NDR_SCALARS|NDR_BUFFERS, r->sid));
2810 return ndr_push_error(ndr, NDR_ERR_BAD_SWITCH, "Bad switch value %u", level);
2813 return NDR_ERR_SUCCESS;
2816 static enum ndr_err_code ndr_pull_winbind_get_idmap_rep(struct ndr_pull *ndr, int ndr_flags, union winbind_get_idmap_rep *r)
2820 TALLOC_CTX *_mem_save_sid_0;
2821 level = ndr_pull_get_switch_value(ndr, r);
2822 if (ndr_flags & NDR_SCALARS) {
2823 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &_level));
2824 if (_level != level) {
2825 return ndr_pull_error(ndr, NDR_ERR_BAD_SWITCH, "Bad switch value %u for r", _level);
2828 case WINBIND_IDMAP_LEVEL_SID_TO_UID: {
2829 NDR_CHECK(ndr_pull_hyper(ndr, NDR_SCALARS, &r->uid));
2832 case WINBIND_IDMAP_LEVEL_SID_TO_GID: {
2833 NDR_CHECK(ndr_pull_hyper(ndr, NDR_SCALARS, &r->gid));
2836 case WINBIND_IDMAP_LEVEL_UID_TO_SID: {
2838 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_sid));
2840 NDR_PULL_ALLOC(ndr, r->sid);
2846 case WINBIND_IDMAP_LEVEL_GID_TO_SID: {
2848 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_sid));
2850 NDR_PULL_ALLOC(ndr, r->sid);
2857 return ndr_pull_error(ndr, NDR_ERR_BAD_SWITCH, "Bad switch value %u", level);
2860 if (ndr_flags & NDR_BUFFERS) {
2862 case WINBIND_IDMAP_LEVEL_SID_TO_UID:
2865 case WINBIND_IDMAP_LEVEL_SID_TO_GID:
2868 case WINBIND_IDMAP_LEVEL_UID_TO_SID:
2870 _mem_save_sid_0 = NDR_PULL_GET_MEM_CTX(ndr);
2871 NDR_PULL_SET_MEM_CTX(ndr, r->sid, 0);
2872 NDR_CHECK(ndr_pull_dom_sid(ndr, NDR_SCALARS|NDR_BUFFERS, r->sid));
2873 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_sid_0, 0);
2877 case WINBIND_IDMAP_LEVEL_GID_TO_SID:
2879 _mem_save_sid_0 = NDR_PULL_GET_MEM_CTX(ndr);
2880 NDR_PULL_SET_MEM_CTX(ndr, r->sid, 0);
2881 NDR_CHECK(ndr_pull_dom_sid(ndr, NDR_SCALARS|NDR_BUFFERS, r->sid));
2882 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_sid_0, 0);
2887 return ndr_pull_error(ndr, NDR_ERR_BAD_SWITCH, "Bad switch value %u", level);
2890 return NDR_ERR_SUCCESS;
2893 _PUBLIC_ void ndr_print_winbind_get_idmap_rep(struct ndr_print *ndr, const char *name, const union winbind_get_idmap_rep *r)
2896 level = ndr_print_get_switch_value(ndr, r);
2897 ndr_print_union(ndr, name, level, "winbind_get_idmap_rep");
2899 case WINBIND_IDMAP_LEVEL_SID_TO_UID:
2900 ndr_print_hyper(ndr, "uid", r->uid);
2903 case WINBIND_IDMAP_LEVEL_SID_TO_GID:
2904 ndr_print_hyper(ndr, "gid", r->gid);
2907 case WINBIND_IDMAP_LEVEL_UID_TO_SID:
2908 ndr_print_ptr(ndr, "sid", r->sid);
2911 ndr_print_dom_sid(ndr, "sid", r->sid);
2916 case WINBIND_IDMAP_LEVEL_GID_TO_SID:
2917 ndr_print_ptr(ndr, "sid", r->sid);
2920 ndr_print_dom_sid(ndr, "sid", r->sid);
2926 ndr_print_bad_level(ndr, name, level);
2930 static enum ndr_err_code ndr_push_winbind_set_idmap_level(struct ndr_push *ndr, int ndr_flags, enum winbind_set_idmap_level r)
2932 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r));
2933 return NDR_ERR_SUCCESS;
2936 static enum ndr_err_code ndr_pull_winbind_set_idmap_level(struct ndr_pull *ndr, int ndr_flags, enum winbind_set_idmap_level *r)
2939 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &v));
2941 return NDR_ERR_SUCCESS;
2944 _PUBLIC_ void ndr_print_winbind_set_idmap_level(struct ndr_print *ndr, const char *name, enum winbind_set_idmap_level r)
2946 const char *val = NULL;
2949 case WINBIND_SET_IDMAP_LEVEL_ALLOCATE_UID: val = "WINBIND_SET_IDMAP_LEVEL_ALLOCATE_UID"; break;
2950 case WINBIND_SET_IDMAP_LEVEL_ALLOCATE_GID: val = "WINBIND_SET_IDMAP_LEVEL_ALLOCATE_GID"; break;
2951 case WINBIND_SET_IDMAP_LEVEL_SET_MAPPING: val = "WINBIND_SET_IDMAP_LEVEL_SET_MAPPING"; break;
2952 case WINBIND_SET_IDMAP_LEVEL_SET_HWM: val = "WINBIND_SET_IDMAP_LEVEL_SET_HWM"; break;
2954 ndr_print_enum(ndr, name, "ENUM", val, r);
2957 static enum ndr_err_code ndr_push_winbind_set_idmap_req(struct ndr_push *ndr, int ndr_flags, const union winbind_set_idmap_req *r)
2959 if (ndr_flags & NDR_SCALARS) {
2960 int level = ndr_push_get_switch_value(ndr, r);
2961 NDR_CHECK(ndr_push_winbind_set_idmap_level(ndr, NDR_SCALARS, level));
2963 case WINBIND_SET_IDMAP_LEVEL_ALLOCATE_UID: {
2966 case WINBIND_SET_IDMAP_LEVEL_ALLOCATE_GID: {
2969 case WINBIND_SET_IDMAP_LEVEL_SET_MAPPING: {
2970 NDR_CHECK(ndr_push_id_map(ndr, NDR_SCALARS, &r->mapping));
2973 case WINBIND_SET_IDMAP_LEVEL_SET_HWM: {
2974 NDR_CHECK(ndr_push_unixid(ndr, NDR_SCALARS, &r->hwm));
2978 return ndr_push_error(ndr, NDR_ERR_BAD_SWITCH, "Bad switch value %u", level);
2981 if (ndr_flags & NDR_BUFFERS) {
2982 int level = ndr_push_get_switch_value(ndr, r);
2984 case WINBIND_SET_IDMAP_LEVEL_ALLOCATE_UID:
2987 case WINBIND_SET_IDMAP_LEVEL_ALLOCATE_GID:
2990 case WINBIND_SET_IDMAP_LEVEL_SET_MAPPING:
2991 NDR_CHECK(ndr_push_id_map(ndr, NDR_BUFFERS, &r->mapping));
2994 case WINBIND_SET_IDMAP_LEVEL_SET_HWM:
2995 NDR_CHECK(ndr_push_unixid(ndr, NDR_BUFFERS, &r->hwm));
2999 return ndr_push_error(ndr, NDR_ERR_BAD_SWITCH, "Bad switch value %u", level);
3002 return NDR_ERR_SUCCESS;
3005 static enum ndr_err_code ndr_pull_winbind_set_idmap_req(struct ndr_pull *ndr, int ndr_flags, union winbind_set_idmap_req *r)
3009 level = ndr_pull_get_switch_value(ndr, r);
3010 if (ndr_flags & NDR_SCALARS) {
3011 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &_level));
3012 if (_level != level) {
3013 return ndr_pull_error(ndr, NDR_ERR_BAD_SWITCH, "Bad switch value %u for r", _level);
3016 case WINBIND_SET_IDMAP_LEVEL_ALLOCATE_UID: {
3019 case WINBIND_SET_IDMAP_LEVEL_ALLOCATE_GID: {
3022 case WINBIND_SET_IDMAP_LEVEL_SET_MAPPING: {
3023 NDR_CHECK(ndr_pull_id_map(ndr, NDR_SCALARS, &r->mapping));
3026 case WINBIND_SET_IDMAP_LEVEL_SET_HWM: {
3027 NDR_CHECK(ndr_pull_unixid(ndr, NDR_SCALARS, &r->hwm));
3031 return ndr_pull_error(ndr, NDR_ERR_BAD_SWITCH, "Bad switch value %u", level);
3034 if (ndr_flags & NDR_BUFFERS) {
3036 case WINBIND_SET_IDMAP_LEVEL_ALLOCATE_UID:
3039 case WINBIND_SET_IDMAP_LEVEL_ALLOCATE_GID:
3042 case WINBIND_SET_IDMAP_LEVEL_SET_MAPPING:
3043 NDR_CHECK(ndr_pull_id_map(ndr, NDR_BUFFERS, &r->mapping));
3046 case WINBIND_SET_IDMAP_LEVEL_SET_HWM:
3047 NDR_CHECK(ndr_pull_unixid(ndr, NDR_BUFFERS, &r->hwm));
3051 return ndr_pull_error(ndr, NDR_ERR_BAD_SWITCH, "Bad switch value %u", level);
3054 return NDR_ERR_SUCCESS;
3057 _PUBLIC_ void ndr_print_winbind_set_idmap_req(struct ndr_print *ndr, const char *name, const union winbind_set_idmap_req *r)
3060 level = ndr_print_get_switch_value(ndr, r);
3061 ndr_print_union(ndr, name, level, "winbind_set_idmap_req");
3063 case WINBIND_SET_IDMAP_LEVEL_ALLOCATE_UID:
3066 case WINBIND_SET_IDMAP_LEVEL_ALLOCATE_GID:
3069 case WINBIND_SET_IDMAP_LEVEL_SET_MAPPING:
3070 ndr_print_id_map(ndr, "mapping", &r->mapping);
3073 case WINBIND_SET_IDMAP_LEVEL_SET_HWM:
3074 ndr_print_unixid(ndr, "hwm", &r->hwm);
3078 ndr_print_bad_level(ndr, name, level);
3082 static enum ndr_err_code ndr_push_winbind_set_idmap_rep(struct ndr_push *ndr, int ndr_flags, const union winbind_set_idmap_rep *r)
3084 if (ndr_flags & NDR_SCALARS) {
3085 int level = ndr_push_get_switch_value(ndr, r);
3086 NDR_CHECK(ndr_push_winbind_set_idmap_level(ndr, NDR_SCALARS, level));
3088 case WINBIND_SET_IDMAP_LEVEL_ALLOCATE_UID: {
3089 NDR_CHECK(ndr_push_hyper(ndr, NDR_SCALARS, r->uid));
3092 case WINBIND_SET_IDMAP_LEVEL_ALLOCATE_GID: {
3093 NDR_CHECK(ndr_push_hyper(ndr, NDR_SCALARS, r->gid));
3096 case WINBIND_SET_IDMAP_LEVEL_SET_MAPPING: {
3099 case WINBIND_SET_IDMAP_LEVEL_SET_HWM: {
3103 return ndr_push_error(ndr, NDR_ERR_BAD_SWITCH, "Bad switch value %u", level);
3106 if (ndr_flags & NDR_BUFFERS) {
3107 int level = ndr_push_get_switch_value(ndr, r);
3109 case WINBIND_SET_IDMAP_LEVEL_ALLOCATE_UID:
3112 case WINBIND_SET_IDMAP_LEVEL_ALLOCATE_GID:
3115 case WINBIND_SET_IDMAP_LEVEL_SET_MAPPING:
3118 case WINBIND_SET_IDMAP_LEVEL_SET_HWM:
3122 return ndr_push_error(ndr, NDR_ERR_BAD_SWITCH, "Bad switch value %u", level);
3125 return NDR_ERR_SUCCESS;
3128 static enum ndr_err_code ndr_pull_winbind_set_idmap_rep(struct ndr_pull *ndr, int ndr_flags, union winbind_set_idmap_rep *r)
3132 level = ndr_pull_get_switch_value(ndr, r);
3133 if (ndr_flags & NDR_SCALARS) {
3134 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &_level));
3135 if (_level != level) {
3136 return ndr_pull_error(ndr, NDR_ERR_BAD_SWITCH, "Bad switch value %u for r", _level);
3139 case WINBIND_SET_IDMAP_LEVEL_ALLOCATE_UID: {
3140 NDR_CHECK(ndr_pull_hyper(ndr, NDR_SCALARS, &r->uid));
3143 case WINBIND_SET_IDMAP_LEVEL_ALLOCATE_GID: {
3144 NDR_CHECK(ndr_pull_hyper(ndr, NDR_SCALARS, &r->gid));
3147 case WINBIND_SET_IDMAP_LEVEL_SET_MAPPING: {
3150 case WINBIND_SET_IDMAP_LEVEL_SET_HWM: {
3154 return ndr_pull_error(ndr, NDR_ERR_BAD_SWITCH, "Bad switch value %u", level);
3157 if (ndr_flags & NDR_BUFFERS) {
3159 case WINBIND_SET_IDMAP_LEVEL_ALLOCATE_UID:
3162 case WINBIND_SET_IDMAP_LEVEL_ALLOCATE_GID:
3165 case WINBIND_SET_IDMAP_LEVEL_SET_MAPPING:
3168 case WINBIND_SET_IDMAP_LEVEL_SET_HWM:
3172 return ndr_pull_error(ndr, NDR_ERR_BAD_SWITCH, "Bad switch value %u", level);
3175 return NDR_ERR_SUCCESS;
3178 _PUBLIC_ void ndr_print_winbind_set_idmap_rep(struct ndr_print *ndr, const char *name, const union winbind_set_idmap_rep *r)
3181 level = ndr_print_get_switch_value(ndr, r);
3182 ndr_print_union(ndr, name, level, "winbind_set_idmap_rep");
3184 case WINBIND_SET_IDMAP_LEVEL_ALLOCATE_UID:
3185 ndr_print_hyper(ndr, "uid", r->uid);
3188 case WINBIND_SET_IDMAP_LEVEL_ALLOCATE_GID:
3189 ndr_print_hyper(ndr, "gid", r->gid);
3192 case WINBIND_SET_IDMAP_LEVEL_SET_MAPPING:
3195 case WINBIND_SET_IDMAP_LEVEL_SET_HWM:
3199 ndr_print_bad_level(ndr, name, level);
3203 static enum ndr_err_code ndr_push_winbind_domain_info_level(struct ndr_push *ndr, int ndr_flags, enum winbind_domain_info_level r)
3205 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r));
3206 return NDR_ERR_SUCCESS;
3209 static enum ndr_err_code ndr_pull_winbind_domain_info_level(struct ndr_pull *ndr, int ndr_flags, enum winbind_domain_info_level *r)
3212 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &v));
3214 return NDR_ERR_SUCCESS;
3217 _PUBLIC_ void ndr_print_winbind_domain_info_level(struct ndr_print *ndr, const char *name, enum winbind_domain_info_level r)
3219 const char *val = NULL;
3222 case WINBIND_DOMAIN_INFO_LEVEL_COMPAT: val = "WINBIND_DOMAIN_INFO_LEVEL_COMPAT"; break;
3223 case WINBIND_DOMAIN_INFO_LEVEL_SEQNUM: val = "WINBIND_DOMAIN_INFO_LEVEL_SEQNUM"; break;
3225 ndr_print_enum(ndr, name, "ENUM", val, r);
3228 static enum ndr_err_code ndr_push_winbind_domain_info(struct ndr_push *ndr, int ndr_flags, const union winbind_domain_info *r)
3230 if (ndr_flags & NDR_SCALARS) {
3231 int level = ndr_push_get_switch_value(ndr, r);
3232 NDR_CHECK(ndr_push_winbind_domain_info_level(ndr, NDR_SCALARS, level));
3234 case WINBIND_DOMAIN_INFO_LEVEL_COMPAT: {
3235 NDR_CHECK(ndr_push_STRUCT_winbind_domain_info_compat(ndr, NDR_SCALARS, &r->compat));
3238 case WINBIND_DOMAIN_INFO_LEVEL_SEQNUM: {
3239 NDR_CHECK(ndr_push_hyper(ndr, NDR_SCALARS, r->seqnum));
3243 return ndr_push_error(ndr, NDR_ERR_BAD_SWITCH, "Bad switch value %u", level);
3246 if (ndr_flags & NDR_BUFFERS) {
3247 int level = ndr_push_get_switch_value(ndr, r);
3249 case WINBIND_DOMAIN_INFO_LEVEL_COMPAT:
3250 NDR_CHECK(ndr_push_STRUCT_winbind_domain_info_compat(ndr, NDR_BUFFERS, &r->compat));
3253 case WINBIND_DOMAIN_INFO_LEVEL_SEQNUM:
3257 return ndr_push_error(ndr, NDR_ERR_BAD_SWITCH, "Bad switch value %u", level);
3260 return NDR_ERR_SUCCESS;
3263 static enum ndr_err_code ndr_pull_winbind_domain_info(struct ndr_pull *ndr, int ndr_flags, union winbind_domain_info *r)
3267 level = ndr_pull_get_switch_value(ndr, r);
3268 if (ndr_flags & NDR_SCALARS) {
3269 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &_level));
3270 if (_level != level) {
3271 return ndr_pull_error(ndr, NDR_ERR_BAD_SWITCH, "Bad switch value %u for r", _level);
3274 case WINBIND_DOMAIN_INFO_LEVEL_COMPAT: {
3275 NDR_CHECK(ndr_pull_STRUCT_winbind_domain_info_compat(ndr, NDR_SCALARS, &r->compat));
3278 case WINBIND_DOMAIN_INFO_LEVEL_SEQNUM: {
3279 NDR_CHECK(ndr_pull_hyper(ndr, NDR_SCALARS, &r->seqnum));
3283 return ndr_pull_error(ndr, NDR_ERR_BAD_SWITCH, "Bad switch value %u", level);
3286 if (ndr_flags & NDR_BUFFERS) {
3288 case WINBIND_DOMAIN_INFO_LEVEL_COMPAT:
3289 NDR_CHECK(ndr_pull_STRUCT_winbind_domain_info_compat(ndr, NDR_BUFFERS, &r->compat));
3292 case WINBIND_DOMAIN_INFO_LEVEL_SEQNUM:
3296 return ndr_pull_error(ndr, NDR_ERR_BAD_SWITCH, "Bad switch value %u", level);
3299 return NDR_ERR_SUCCESS;
3302 _PUBLIC_ void ndr_print_winbind_domain_info(struct ndr_print *ndr, const char *name, const union winbind_domain_info *r)
3305 level = ndr_print_get_switch_value(ndr, r);
3306 ndr_print_union(ndr, name, level, "winbind_domain_info");
3308 case WINBIND_DOMAIN_INFO_LEVEL_COMPAT:
3309 ndr_print_STRUCT_winbind_domain_info_compat(ndr, "compat", &r->compat);
3312 case WINBIND_DOMAIN_INFO_LEVEL_SEQNUM:
3313 ndr_print_hyper(ndr, "seqnum", r->seqnum);
3317 ndr_print_bad_level(ndr, name, level);
3321 static enum ndr_err_code ndr_push_winbind_dc_info_level(struct ndr_push *ndr, int ndr_flags, enum winbind_dc_info_level r)
3323 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r));
3324 return NDR_ERR_SUCCESS;
3327 static enum ndr_err_code ndr_pull_winbind_dc_info_level(struct ndr_pull *ndr, int ndr_flags, enum winbind_dc_info_level *r)
3330 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &v));
3332 return NDR_ERR_SUCCESS;
3335 _PUBLIC_ void ndr_print_winbind_dc_info_level(struct ndr_print *ndr, const char *name, enum winbind_dc_info_level r)
3337 const char *val = NULL;
3340 case WINBIND_DC_INFO_LEVEL_COMPAT_NT4: val = "WINBIND_DC_INFO_LEVEL_COMPAT_NT4"; break;
3341 case WINBIND_DC_INFO_LEVEL_COMPAT_DS: val = "WINBIND_DC_INFO_LEVEL_COMPAT_DS"; break;
3343 ndr_print_enum(ndr, name, "ENUM", val, r);
3346 static enum ndr_err_code ndr_push_winbind_dc_info_params(struct ndr_push *ndr, int ndr_flags, const union winbind_dc_info_params *r)
3348 if (ndr_flags & NDR_SCALARS) {
3349 int level = ndr_push_get_switch_value(ndr, r);
3350 NDR_CHECK(ndr_push_winbind_dc_info_level(ndr, NDR_SCALARS, level));
3352 case WINBIND_DC_INFO_LEVEL_COMPAT_NT4: {
3355 case WINBIND_DC_INFO_LEVEL_COMPAT_DS: {
3356 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->flags));
3360 return ndr_push_error(ndr, NDR_ERR_BAD_SWITCH, "Bad switch value %u", level);
3363 if (ndr_flags & NDR_BUFFERS) {
3364 int level = ndr_push_get_switch_value(ndr, r);
3366 case WINBIND_DC_INFO_LEVEL_COMPAT_NT4:
3369 case WINBIND_DC_INFO_LEVEL_COMPAT_DS:
3373 return ndr_push_error(ndr, NDR_ERR_BAD_SWITCH, "Bad switch value %u", level);
3376 return NDR_ERR_SUCCESS;
3379 static enum ndr_err_code ndr_pull_winbind_dc_info_params(struct ndr_pull *ndr, int ndr_flags, union winbind_dc_info_params *r)
3383 level = ndr_pull_get_switch_value(ndr, r);
3384 if (ndr_flags & NDR_SCALARS) {
3385 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &_level));
3386 if (_level != level) {
3387 return ndr_pull_error(ndr, NDR_ERR_BAD_SWITCH, "Bad switch value %u for r", _level);
3390 case WINBIND_DC_INFO_LEVEL_COMPAT_NT4: {
3393 case WINBIND_DC_INFO_LEVEL_COMPAT_DS: {
3394 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->flags));
3398 return ndr_pull_error(ndr, NDR_ERR_BAD_SWITCH, "Bad switch value %u", level);
3401 if (ndr_flags & NDR_BUFFERS) {
3403 case WINBIND_DC_INFO_LEVEL_COMPAT_NT4:
3406 case WINBIND_DC_INFO_LEVEL_COMPAT_DS:
3410 return ndr_pull_error(ndr, NDR_ERR_BAD_SWITCH, "Bad switch value %u", level);
3413 return NDR_ERR_SUCCESS;
3416 _PUBLIC_ void ndr_print_winbind_dc_info_params(struct ndr_print *ndr, const char *name, const union winbind_dc_info_params *r)
3419 level = ndr_print_get_switch_value(ndr, r);
3420 ndr_print_union(ndr, name, level, "winbind_dc_info_params");
3422 case WINBIND_DC_INFO_LEVEL_COMPAT_NT4:
3425 case WINBIND_DC_INFO_LEVEL_COMPAT_DS:
3426 ndr_print_uint32(ndr, "flags", r->flags);
3430 ndr_print_bad_level(ndr, name, level);
3434 static enum ndr_err_code ndr_push_winbind_dc_info(struct ndr_push *ndr, int ndr_flags, const union winbind_dc_info *r)
3436 if (ndr_flags & NDR_SCALARS) {
3437 int level = ndr_push_get_switch_value(ndr, r);
3438 NDR_CHECK(ndr_push_winbind_dc_info_level(ndr, NDR_SCALARS, level));
3440 case WINBIND_DC_INFO_LEVEL_COMPAT_NT4: {
3441 NDR_CHECK(ndr_push_unique_ptr(ndr, r->name));
3444 case WINBIND_DC_INFO_LEVEL_COMPAT_DS: {
3445 NDR_CHECK(ndr_push_unique_ptr(ndr, r->name));
3449 return ndr_push_error(ndr, NDR_ERR_BAD_SWITCH, "Bad switch value %u", level);
3452 if (ndr_flags & NDR_BUFFERS) {
3453 int level = ndr_push_get_switch_value(ndr, r);
3455 case WINBIND_DC_INFO_LEVEL_COMPAT_NT4:
3457 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->name, CH_UTF8)));
3458 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0));
3459 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->name, CH_UTF8)));
3460 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->name, ndr_charset_length(r->name, CH_UTF8), sizeof(uint8_t), CH_UTF8));
3464 case WINBIND_DC_INFO_LEVEL_COMPAT_DS:
3466 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->name, CH_UTF8)));
3467 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0));
3468 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->name, CH_UTF8)));
3469 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->name, ndr_charset_length(r->name, CH_UTF8), sizeof(uint8_t), CH_UTF8));
3474 return ndr_push_error(ndr, NDR_ERR_BAD_SWITCH, "Bad switch value %u", level);
3477 return NDR_ERR_SUCCESS;
3480 static enum ndr_err_code ndr_pull_winbind_dc_info(struct ndr_pull *ndr, int ndr_flags, union winbind_dc_info *r)
3484 TALLOC_CTX *_mem_save_name_0;
3485 level = ndr_pull_get_switch_value(ndr, r);
3486 if (ndr_flags & NDR_SCALARS) {
3487 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &_level));
3488 if (_level != level) {
3489 return ndr_pull_error(ndr, NDR_ERR_BAD_SWITCH, "Bad switch value %u for r", _level);
3492 case WINBIND_DC_INFO_LEVEL_COMPAT_NT4: {
3494 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_name));
3496 NDR_PULL_ALLOC(ndr, r->name);
3502 case WINBIND_DC_INFO_LEVEL_COMPAT_DS: {
3504 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_name));
3506 NDR_PULL_ALLOC(ndr, r->name);
3513 return ndr_pull_error(ndr, NDR_ERR_BAD_SWITCH, "Bad switch value %u", level);
3516 if (ndr_flags & NDR_BUFFERS) {
3518 case WINBIND_DC_INFO_LEVEL_COMPAT_NT4:
3520 _mem_save_name_0 = NDR_PULL_GET_MEM_CTX(ndr);
3521 NDR_PULL_SET_MEM_CTX(ndr, r->name, 0);
3522 NDR_CHECK(ndr_pull_array_size(ndr, &r->name));
3523 NDR_CHECK(ndr_pull_array_length(ndr, &r->name));
3524 if (ndr_get_array_length(ndr, &r->name) > ndr_get_array_size(ndr, &r->name)) {
3525 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));
3527 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->name), sizeof(uint8_t)));
3528 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->name, ndr_get_array_length(ndr, &r->name), sizeof(uint8_t), CH_UTF8));
3529 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_name_0, 0);
3533 case WINBIND_DC_INFO_LEVEL_COMPAT_DS:
3535 _mem_save_name_0 = NDR_PULL_GET_MEM_CTX(ndr);
3536 NDR_PULL_SET_MEM_CTX(ndr, r->name, 0);
3537 NDR_CHECK(ndr_pull_array_size(ndr, &r->name));
3538 NDR_CHECK(ndr_pull_array_length(ndr, &r->name));
3539 if (ndr_get_array_length(ndr, &r->name) > ndr_get_array_size(ndr, &r->name)) {
3540 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));
3542 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->name), sizeof(uint8_t)));
3543 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->name, ndr_get_array_length(ndr, &r->name), sizeof(uint8_t), CH_UTF8));
3544 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_name_0, 0);
3549 return ndr_pull_error(ndr, NDR_ERR_BAD_SWITCH, "Bad switch value %u", level);
3552 return NDR_ERR_SUCCESS;
3555 _PUBLIC_ void ndr_print_winbind_dc_info(struct ndr_print *ndr, const char *name, const union winbind_dc_info *r)
3558 level = ndr_print_get_switch_value(ndr, r);
3559 ndr_print_union(ndr, name, level, "winbind_dc_info");
3561 case WINBIND_DC_INFO_LEVEL_COMPAT_NT4:
3562 ndr_print_ptr(ndr, "name", r->name);
3565 ndr_print_string(ndr, "name", r->name);
3570 case WINBIND_DC_INFO_LEVEL_COMPAT_DS:
3571 ndr_print_ptr(ndr, "name", r->name);
3574 ndr_print_string(ndr, "name", r->name);
3580 ndr_print_bad_level(ndr, name, level);
3584 static enum ndr_err_code ndr_push_winbind_ping(struct ndr_push *ndr, int flags, const struct winbind_ping *r)
3586 if (flags & NDR_IN) {
3588 if (flags & NDR_OUT) {
3589 NDR_CHECK(ndr_push_winbind_status(ndr, NDR_SCALARS, r->out.result));
3591 return NDR_ERR_SUCCESS;
3594 static enum ndr_err_code ndr_pull_winbind_ping(struct ndr_pull *ndr, int flags, struct winbind_ping *r)
3596 if (flags & NDR_IN) {
3598 if (flags & NDR_OUT) {
3599 NDR_CHECK(ndr_pull_winbind_status(ndr, NDR_SCALARS, &r->out.result));
3601 return NDR_ERR_SUCCESS;
3604 _PUBLIC_ void ndr_print_winbind_ping(struct ndr_print *ndr, const char *name, int flags, const struct winbind_ping *r)
3606 ndr_print_struct(ndr, name, "winbind_ping");
3608 if (flags & NDR_SET_VALUES) {
3609 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
3611 if (flags & NDR_IN) {
3612 ndr_print_struct(ndr, "in", "winbind_ping");
3616 if (flags & NDR_OUT) {
3617 ndr_print_struct(ndr, "out", "winbind_ping");
3619 ndr_print_winbind_status(ndr, "result", r->out.result);
3625 static enum ndr_err_code ndr_push_winbind_interface_details(struct ndr_push *ndr, int flags, const struct winbind_interface_details *r)
3627 if (flags & NDR_IN) {
3629 if (flags & NDR_OUT) {
3630 NDR_CHECK(ndr_push_winbind_status(ndr, NDR_SCALARS, r->out.result));
3632 return NDR_ERR_SUCCESS;
3635 static enum ndr_err_code ndr_pull_winbind_interface_details(struct ndr_pull *ndr, int flags, struct winbind_interface_details *r)
3637 if (flags & NDR_IN) {
3639 if (flags & NDR_OUT) {
3640 NDR_CHECK(ndr_pull_winbind_status(ndr, NDR_SCALARS, &r->out.result));
3642 return NDR_ERR_SUCCESS;
3645 _PUBLIC_ void ndr_print_winbind_interface_details(struct ndr_print *ndr, const char *name, int flags, const struct winbind_interface_details *r)
3647 ndr_print_struct(ndr, name, "winbind_interface_details");
3649 if (flags & NDR_SET_VALUES) {
3650 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
3652 if (flags & NDR_IN) {
3653 ndr_print_struct(ndr, "in", "winbind_interface_details");
3657 if (flags & NDR_OUT) {
3658 ndr_print_struct(ndr, "out", "winbind_interface_details");
3660 ndr_print_winbind_status(ndr, "result", r->out.result);
3666 static enum ndr_err_code ndr_push_winbind_getpwnam(struct ndr_push *ndr, int flags, const struct winbind_getpwnam *r)
3668 if (flags & NDR_IN) {
3670 if (flags & NDR_OUT) {
3671 NDR_CHECK(ndr_push_winbind_status(ndr, NDR_SCALARS, r->out.result));
3673 return NDR_ERR_SUCCESS;
3676 static enum ndr_err_code ndr_pull_winbind_getpwnam(struct ndr_pull *ndr, int flags, struct winbind_getpwnam *r)
3678 if (flags & NDR_IN) {
3680 if (flags & NDR_OUT) {
3681 NDR_CHECK(ndr_pull_winbind_status(ndr, NDR_SCALARS, &r->out.result));
3683 return NDR_ERR_SUCCESS;
3686 _PUBLIC_ void ndr_print_winbind_getpwnam(struct ndr_print *ndr, const char *name, int flags, const struct winbind_getpwnam *r)
3688 ndr_print_struct(ndr, name, "winbind_getpwnam");
3690 if (flags & NDR_SET_VALUES) {
3691 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
3693 if (flags & NDR_IN) {
3694 ndr_print_struct(ndr, "in", "winbind_getpwnam");
3698 if (flags & NDR_OUT) {
3699 ndr_print_struct(ndr, "out", "winbind_getpwnam");
3701 ndr_print_winbind_status(ndr, "result", r->out.result);
3707 static enum ndr_err_code ndr_push_winbind_getpwuid(struct ndr_push *ndr, int flags, const struct winbind_getpwuid *r)
3709 if (flags & NDR_IN) {
3711 if (flags & NDR_OUT) {
3712 NDR_CHECK(ndr_push_winbind_status(ndr, NDR_SCALARS, r->out.result));
3714 return NDR_ERR_SUCCESS;
3717 static enum ndr_err_code ndr_pull_winbind_getpwuid(struct ndr_pull *ndr, int flags, struct winbind_getpwuid *r)
3719 if (flags & NDR_IN) {
3721 if (flags & NDR_OUT) {
3722 NDR_CHECK(ndr_pull_winbind_status(ndr, NDR_SCALARS, &r->out.result));
3724 return NDR_ERR_SUCCESS;
3727 _PUBLIC_ void ndr_print_winbind_getpwuid(struct ndr_print *ndr, const char *name, int flags, const struct winbind_getpwuid *r)
3729 ndr_print_struct(ndr, name, "winbind_getpwuid");
3731 if (flags & NDR_SET_VALUES) {
3732 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
3734 if (flags & NDR_IN) {
3735 ndr_print_struct(ndr, "in", "winbind_getpwuid");
3739 if (flags & NDR_OUT) {
3740 ndr_print_struct(ndr, "out", "winbind_getpwuid");
3742 ndr_print_winbind_status(ndr, "result", r->out.result);
3748 static enum ndr_err_code ndr_push_winbind_getgrnam(struct ndr_push *ndr, int flags, const struct winbind_getgrnam *r)
3750 if (flags & NDR_IN) {
3752 if (flags & NDR_OUT) {
3753 NDR_CHECK(ndr_push_winbind_status(ndr, NDR_SCALARS, r->out.result));
3755 return NDR_ERR_SUCCESS;
3758 static enum ndr_err_code ndr_pull_winbind_getgrnam(struct ndr_pull *ndr, int flags, struct winbind_getgrnam *r)
3760 if (flags & NDR_IN) {
3762 if (flags & NDR_OUT) {
3763 NDR_CHECK(ndr_pull_winbind_status(ndr, NDR_SCALARS, &r->out.result));
3765 return NDR_ERR_SUCCESS;
3768 _PUBLIC_ void ndr_print_winbind_getgrnam(struct ndr_print *ndr, const char *name, int flags, const struct winbind_getgrnam *r)
3770 ndr_print_struct(ndr, name, "winbind_getgrnam");
3772 if (flags & NDR_SET_VALUES) {
3773 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
3775 if (flags & NDR_IN) {
3776 ndr_print_struct(ndr, "in", "winbind_getgrnam");
3780 if (flags & NDR_OUT) {
3781 ndr_print_struct(ndr, "out", "winbind_getgrnam");
3783 ndr_print_winbind_status(ndr, "result", r->out.result);
3789 static enum ndr_err_code ndr_push_winbind_getgrgid(struct ndr_push *ndr, int flags, const struct winbind_getgrgid *r)
3791 if (flags & NDR_IN) {
3793 if (flags & NDR_OUT) {
3794 NDR_CHECK(ndr_push_winbind_status(ndr, NDR_SCALARS, r->out.result));
3796 return NDR_ERR_SUCCESS;
3799 static enum ndr_err_code ndr_pull_winbind_getgrgid(struct ndr_pull *ndr, int flags, struct winbind_getgrgid *r)
3801 if (flags & NDR_IN) {
3803 if (flags & NDR_OUT) {
3804 NDR_CHECK(ndr_pull_winbind_status(ndr, NDR_SCALARS, &r->out.result));
3806 return NDR_ERR_SUCCESS;
3809 _PUBLIC_ void ndr_print_winbind_getgrgid(struct ndr_print *ndr, const char *name, int flags, const struct winbind_getgrgid *r)
3811 ndr_print_struct(ndr, name, "winbind_getgrgid");
3813 if (flags & NDR_SET_VALUES) {
3814 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
3816 if (flags & NDR_IN) {
3817 ndr_print_struct(ndr, "in", "winbind_getgrgid");
3821 if (flags & NDR_OUT) {
3822 ndr_print_struct(ndr, "out", "winbind_getgrgid");
3824 ndr_print_winbind_status(ndr, "result", r->out.result);
3830 static enum ndr_err_code ndr_push_winbind_getgroups(struct ndr_push *ndr, int flags, const struct winbind_getgroups *r)
3832 if (flags & NDR_IN) {
3834 if (flags & NDR_OUT) {
3835 NDR_CHECK(ndr_push_winbind_status(ndr, NDR_SCALARS, r->out.result));
3837 return NDR_ERR_SUCCESS;
3840 static enum ndr_err_code ndr_pull_winbind_getgroups(struct ndr_pull *ndr, int flags, struct winbind_getgroups *r)
3842 if (flags & NDR_IN) {
3844 if (flags & NDR_OUT) {
3845 NDR_CHECK(ndr_pull_winbind_status(ndr, NDR_SCALARS, &r->out.result));
3847 return NDR_ERR_SUCCESS;
3850 _PUBLIC_ void ndr_print_winbind_getgroups(struct ndr_print *ndr, const char *name, int flags, const struct winbind_getgroups *r)
3852 ndr_print_struct(ndr, name, "winbind_getgroups");
3854 if (flags & NDR_SET_VALUES) {
3855 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
3857 if (flags & NDR_IN) {
3858 ndr_print_struct(ndr, "in", "winbind_getgroups");
3862 if (flags & NDR_OUT) {
3863 ndr_print_struct(ndr, "out", "winbind_getgroups");
3865 ndr_print_winbind_status(ndr, "result", r->out.result);
3871 static enum ndr_err_code ndr_push_winbind_setpwent(struct ndr_push *ndr, int flags, const struct winbind_setpwent *r)
3873 if (flags & NDR_IN) {
3875 if (flags & NDR_OUT) {
3876 NDR_CHECK(ndr_push_winbind_status(ndr, NDR_SCALARS, r->out.result));
3878 return NDR_ERR_SUCCESS;
3881 static enum ndr_err_code ndr_pull_winbind_setpwent(struct ndr_pull *ndr, int flags, struct winbind_setpwent *r)
3883 if (flags & NDR_IN) {
3885 if (flags & NDR_OUT) {
3886 NDR_CHECK(ndr_pull_winbind_status(ndr, NDR_SCALARS, &r->out.result));
3888 return NDR_ERR_SUCCESS;
3891 _PUBLIC_ void ndr_print_winbind_setpwent(struct ndr_print *ndr, const char *name, int flags, const struct winbind_setpwent *r)
3893 ndr_print_struct(ndr, name, "winbind_setpwent");
3895 if (flags & NDR_SET_VALUES) {
3896 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
3898 if (flags & NDR_IN) {
3899 ndr_print_struct(ndr, "in", "winbind_setpwent");
3903 if (flags & NDR_OUT) {
3904 ndr_print_struct(ndr, "out", "winbind_setpwent");
3906 ndr_print_winbind_status(ndr, "result", r->out.result);
3912 static enum ndr_err_code ndr_push_winbind_endpwent(struct ndr_push *ndr, int flags, const struct winbind_endpwent *r)
3914 if (flags & NDR_IN) {
3916 if (flags & NDR_OUT) {
3917 NDR_CHECK(ndr_push_winbind_status(ndr, NDR_SCALARS, r->out.result));
3919 return NDR_ERR_SUCCESS;
3922 static enum ndr_err_code ndr_pull_winbind_endpwent(struct ndr_pull *ndr, int flags, struct winbind_endpwent *r)
3924 if (flags & NDR_IN) {
3926 if (flags & NDR_OUT) {
3927 NDR_CHECK(ndr_pull_winbind_status(ndr, NDR_SCALARS, &r->out.result));
3929 return NDR_ERR_SUCCESS;
3932 _PUBLIC_ void ndr_print_winbind_endpwent(struct ndr_print *ndr, const char *name, int flags, const struct winbind_endpwent *r)
3934 ndr_print_struct(ndr, name, "winbind_endpwent");
3936 if (flags & NDR_SET_VALUES) {
3937 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
3939 if (flags & NDR_IN) {
3940 ndr_print_struct(ndr, "in", "winbind_endpwent");
3944 if (flags & NDR_OUT) {
3945 ndr_print_struct(ndr, "out", "winbind_endpwent");
3947 ndr_print_winbind_status(ndr, "result", r->out.result);
3953 static enum ndr_err_code ndr_push_winbind_getpwent(struct ndr_push *ndr, int flags, const struct winbind_getpwent *r)
3955 if (flags & NDR_IN) {
3957 if (flags & NDR_OUT) {
3958 NDR_CHECK(ndr_push_winbind_status(ndr, NDR_SCALARS, r->out.result));
3960 return NDR_ERR_SUCCESS;
3963 static enum ndr_err_code ndr_pull_winbind_getpwent(struct ndr_pull *ndr, int flags, struct winbind_getpwent *r)
3965 if (flags & NDR_IN) {
3967 if (flags & NDR_OUT) {
3968 NDR_CHECK(ndr_pull_winbind_status(ndr, NDR_SCALARS, &r->out.result));
3970 return NDR_ERR_SUCCESS;
3973 _PUBLIC_ void ndr_print_winbind_getpwent(struct ndr_print *ndr, const char *name, int flags, const struct winbind_getpwent *r)
3975 ndr_print_struct(ndr, name, "winbind_getpwent");
3977 if (flags & NDR_SET_VALUES) {
3978 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
3980 if (flags & NDR_IN) {
3981 ndr_print_struct(ndr, "in", "winbind_getpwent");
3985 if (flags & NDR_OUT) {
3986 ndr_print_struct(ndr, "out", "winbind_getpwent");
3988 ndr_print_winbind_status(ndr, "result", r->out.result);
3994 static enum ndr_err_code ndr_push_winbind_setgrent(struct ndr_push *ndr, int flags, const struct winbind_setgrent *r)
3996 if (flags & NDR_IN) {
3998 if (flags & NDR_OUT) {
3999 NDR_CHECK(ndr_push_winbind_status(ndr, NDR_SCALARS, r->out.result));
4001 return NDR_ERR_SUCCESS;
4004 static enum ndr_err_code ndr_pull_winbind_setgrent(struct ndr_pull *ndr, int flags, struct winbind_setgrent *r)
4006 if (flags & NDR_IN) {
4008 if (flags & NDR_OUT) {
4009 NDR_CHECK(ndr_pull_winbind_status(ndr, NDR_SCALARS, &r->out.result));
4011 return NDR_ERR_SUCCESS;
4014 _PUBLIC_ void ndr_print_winbind_setgrent(struct ndr_print *ndr, const char *name, int flags, const struct winbind_setgrent *r)
4016 ndr_print_struct(ndr, name, "winbind_setgrent");
4018 if (flags & NDR_SET_VALUES) {
4019 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
4021 if (flags & NDR_IN) {
4022 ndr_print_struct(ndr, "in", "winbind_setgrent");
4026 if (flags & NDR_OUT) {
4027 ndr_print_struct(ndr, "out", "winbind_setgrent");
4029 ndr_print_winbind_status(ndr, "result", r->out.result);
4035 static enum ndr_err_code ndr_push_winbind_endgrent(struct ndr_push *ndr, int flags, const struct winbind_endgrent *r)
4037 if (flags & NDR_IN) {
4039 if (flags & NDR_OUT) {
4040 NDR_CHECK(ndr_push_winbind_status(ndr, NDR_SCALARS, r->out.result));
4042 return NDR_ERR_SUCCESS;
4045 static enum ndr_err_code ndr_pull_winbind_endgrent(struct ndr_pull *ndr, int flags, struct winbind_endgrent *r)
4047 if (flags & NDR_IN) {
4049 if (flags & NDR_OUT) {
4050 NDR_CHECK(ndr_pull_winbind_status(ndr, NDR_SCALARS, &r->out.result));
4052 return NDR_ERR_SUCCESS;
4055 _PUBLIC_ void ndr_print_winbind_endgrent(struct ndr_print *ndr, const char *name, int flags, const struct winbind_endgrent *r)
4057 ndr_print_struct(ndr, name, "winbind_endgrent");
4059 if (flags & NDR_SET_VALUES) {
4060 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
4062 if (flags & NDR_IN) {
4063 ndr_print_struct(ndr, "in", "winbind_endgrent");
4067 if (flags & NDR_OUT) {
4068 ndr_print_struct(ndr, "out", "winbind_endgrent");
4070 ndr_print_winbind_status(ndr, "result", r->out.result);
4076 static enum ndr_err_code ndr_push_winbind_getgrent(struct ndr_push *ndr, int flags, const struct winbind_getgrent *r)
4078 if (flags & NDR_IN) {
4080 if (flags & NDR_OUT) {
4081 NDR_CHECK(ndr_push_winbind_status(ndr, NDR_SCALARS, r->out.result));
4083 return NDR_ERR_SUCCESS;
4086 static enum ndr_err_code ndr_pull_winbind_getgrent(struct ndr_pull *ndr, int flags, struct winbind_getgrent *r)
4088 if (flags & NDR_IN) {
4090 if (flags & NDR_OUT) {
4091 NDR_CHECK(ndr_pull_winbind_status(ndr, NDR_SCALARS, &r->out.result));
4093 return NDR_ERR_SUCCESS;
4096 _PUBLIC_ void ndr_print_winbind_getgrent(struct ndr_print *ndr, const char *name, int flags, const struct winbind_getgrent *r)
4098 ndr_print_struct(ndr, name, "winbind_getgrent");
4100 if (flags & NDR_SET_VALUES) {
4101 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
4103 if (flags & NDR_IN) {
4104 ndr_print_struct(ndr, "in", "winbind_getgrent");
4108 if (flags & NDR_OUT) {
4109 ndr_print_struct(ndr, "out", "winbind_getgrent");
4111 ndr_print_winbind_status(ndr, "result", r->out.result);
4117 static enum ndr_err_code ndr_push_winbind_auth(struct ndr_push *ndr, int flags, const struct winbind_auth *r)
4119 if (flags & NDR_IN) {
4120 if (r->in.level == NULL) {
4121 return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
4123 NDR_CHECK(ndr_push_winbind_auth_level(ndr, NDR_SCALARS, *r->in.level));
4124 NDR_CHECK(ndr_push_set_switch_value(ndr, &r->in.req, *r->in.level));
4125 NDR_CHECK(ndr_push_winbind_auth_req(ndr, NDR_SCALARS|NDR_BUFFERS, &r->in.req));
4127 if (flags & NDR_OUT) {
4128 if (r->out.rep == NULL) {
4129 return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
4131 NDR_CHECK(ndr_push_set_switch_value(ndr, r->out.rep, *r->in.level));
4132 NDR_CHECK(ndr_push_winbind_auth_rep(ndr, NDR_SCALARS|NDR_BUFFERS, r->out.rep));
4133 NDR_CHECK(ndr_push_winbind_status(ndr, NDR_SCALARS, r->out.result));
4135 return NDR_ERR_SUCCESS;
4138 static enum ndr_err_code ndr_pull_winbind_auth(struct ndr_pull *ndr, int flags, struct winbind_auth *r)
4140 TALLOC_CTX *_mem_save_level_0;
4141 TALLOC_CTX *_mem_save_rep_0;
4142 if (flags & NDR_IN) {
4143 ZERO_STRUCT(r->out);
4145 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
4146 NDR_PULL_ALLOC(ndr, r->in.level);
4148 _mem_save_level_0 = NDR_PULL_GET_MEM_CTX(ndr);
4149 NDR_PULL_SET_MEM_CTX(ndr, r->in.level, LIBNDR_FLAG_REF_ALLOC);
4150 NDR_CHECK(ndr_pull_winbind_auth_level(ndr, NDR_SCALARS, r->in.level));
4151 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_level_0, LIBNDR_FLAG_REF_ALLOC);
4152 NDR_CHECK(ndr_pull_set_switch_value(ndr, &r->in.req, *r->in.level));
4153 NDR_CHECK(ndr_pull_winbind_auth_req(ndr, NDR_SCALARS|NDR_BUFFERS, &r->in.req));
4154 NDR_PULL_ALLOC(ndr, r->out.rep);
4155 ZERO_STRUCTP(r->out.rep);
4157 if (flags & NDR_OUT) {
4158 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
4159 NDR_PULL_ALLOC(ndr, r->out.rep);
4161 _mem_save_rep_0 = NDR_PULL_GET_MEM_CTX(ndr);
4162 NDR_PULL_SET_MEM_CTX(ndr, r->out.rep, LIBNDR_FLAG_REF_ALLOC);
4163 NDR_CHECK(ndr_pull_set_switch_value(ndr, r->out.rep, *r->in.level));
4164 NDR_CHECK(ndr_pull_winbind_auth_rep(ndr, NDR_SCALARS|NDR_BUFFERS, r->out.rep));
4165 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_rep_0, LIBNDR_FLAG_REF_ALLOC);
4166 NDR_CHECK(ndr_pull_winbind_status(ndr, NDR_SCALARS, &r->out.result));
4168 return NDR_ERR_SUCCESS;
4171 _PUBLIC_ void ndr_print_winbind_auth(struct ndr_print *ndr, const char *name, int flags, const struct winbind_auth *r)
4173 ndr_print_struct(ndr, name, "winbind_auth");
4175 if (flags & NDR_SET_VALUES) {
4176 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
4178 if (flags & NDR_IN) {
4179 ndr_print_struct(ndr, "in", "winbind_auth");
4181 ndr_print_ptr(ndr, "level", r->in.level);
4183 ndr_print_winbind_auth_level(ndr, "level", *r->in.level);
4185 ndr_print_set_switch_value(ndr, &r->in.req, *r->in.level);
4186 ndr_print_winbind_auth_req(ndr, "req", &r->in.req);
4189 if (flags & NDR_OUT) {
4190 ndr_print_struct(ndr, "out", "winbind_auth");
4192 ndr_print_ptr(ndr, "rep", r->out.rep);
4194 ndr_print_set_switch_value(ndr, r->out.rep, *r->in.level);
4195 ndr_print_winbind_auth_rep(ndr, "rep", r->out.rep);
4197 ndr_print_winbind_status(ndr, "result", r->out.result);
4203 static enum ndr_err_code ndr_push_winbind_list_users(struct ndr_push *ndr, int flags, const struct winbind_list_users *r)
4205 if (flags & NDR_IN) {
4207 if (flags & NDR_OUT) {
4208 NDR_CHECK(ndr_push_winbind_status(ndr, NDR_SCALARS, r->out.result));
4210 return NDR_ERR_SUCCESS;
4213 static enum ndr_err_code ndr_pull_winbind_list_users(struct ndr_pull *ndr, int flags, struct winbind_list_users *r)
4215 if (flags & NDR_IN) {
4217 if (flags & NDR_OUT) {
4218 NDR_CHECK(ndr_pull_winbind_status(ndr, NDR_SCALARS, &r->out.result));
4220 return NDR_ERR_SUCCESS;
4223 _PUBLIC_ void ndr_print_winbind_list_users(struct ndr_print *ndr, const char *name, int flags, const struct winbind_list_users *r)
4225 ndr_print_struct(ndr, name, "winbind_list_users");
4227 if (flags & NDR_SET_VALUES) {
4228 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
4230 if (flags & NDR_IN) {
4231 ndr_print_struct(ndr, "in", "winbind_list_users");
4235 if (flags & NDR_OUT) {
4236 ndr_print_struct(ndr, "out", "winbind_list_users");
4238 ndr_print_winbind_status(ndr, "result", r->out.result);
4244 static enum ndr_err_code ndr_push_winbind_list_groups(struct ndr_push *ndr, int flags, const struct winbind_list_groups *r)
4246 if (flags & NDR_IN) {
4248 if (flags & NDR_OUT) {
4249 NDR_CHECK(ndr_push_winbind_status(ndr, NDR_SCALARS, r->out.result));
4251 return NDR_ERR_SUCCESS;
4254 static enum ndr_err_code ndr_pull_winbind_list_groups(struct ndr_pull *ndr, int flags, struct winbind_list_groups *r)
4256 if (flags & NDR_IN) {
4258 if (flags & NDR_OUT) {
4259 NDR_CHECK(ndr_pull_winbind_status(ndr, NDR_SCALARS, &r->out.result));
4261 return NDR_ERR_SUCCESS;
4264 _PUBLIC_ void ndr_print_winbind_list_groups(struct ndr_print *ndr, const char *name, int flags, const struct winbind_list_groups *r)
4266 ndr_print_struct(ndr, name, "winbind_list_groups");
4268 if (flags & NDR_SET_VALUES) {
4269 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
4271 if (flags & NDR_IN) {
4272 ndr_print_struct(ndr, "in", "winbind_list_groups");
4276 if (flags & NDR_OUT) {
4277 ndr_print_struct(ndr, "out", "winbind_list_groups");
4279 ndr_print_winbind_status(ndr, "result", r->out.result);
4285 static enum ndr_err_code ndr_push_winbind_trust(struct ndr_push *ndr, int flags, const struct winbind_trust *r)
4287 if (flags & NDR_IN) {
4288 if (r->in.level == NULL) {
4289 return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
4291 NDR_CHECK(ndr_push_winbind_trust_level(ndr, NDR_SCALARS, *r->in.level));
4292 NDR_CHECK(ndr_push_set_switch_value(ndr, &r->in.req, *r->in.level));
4293 NDR_CHECK(ndr_push_winbind_trust_req(ndr, NDR_SCALARS|NDR_BUFFERS, &r->in.req));
4295 if (flags & NDR_OUT) {
4296 if (r->out.rep == NULL) {
4297 return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
4299 NDR_CHECK(ndr_push_set_switch_value(ndr, r->out.rep, *r->in.level));
4300 NDR_CHECK(ndr_push_winbind_trust_rep(ndr, NDR_SCALARS|NDR_BUFFERS, r->out.rep));
4301 NDR_CHECK(ndr_push_winbind_status(ndr, NDR_SCALARS, r->out.result));
4303 return NDR_ERR_SUCCESS;
4306 static enum ndr_err_code ndr_pull_winbind_trust(struct ndr_pull *ndr, int flags, struct winbind_trust *r)
4308 TALLOC_CTX *_mem_save_level_0;
4309 TALLOC_CTX *_mem_save_rep_0;
4310 if (flags & NDR_IN) {
4311 ZERO_STRUCT(r->out);
4313 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
4314 NDR_PULL_ALLOC(ndr, r->in.level);
4316 _mem_save_level_0 = NDR_PULL_GET_MEM_CTX(ndr);
4317 NDR_PULL_SET_MEM_CTX(ndr, r->in.level, LIBNDR_FLAG_REF_ALLOC);
4318 NDR_CHECK(ndr_pull_winbind_trust_level(ndr, NDR_SCALARS, r->in.level));
4319 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_level_0, LIBNDR_FLAG_REF_ALLOC);
4320 NDR_CHECK(ndr_pull_set_switch_value(ndr, &r->in.req, *r->in.level));
4321 NDR_CHECK(ndr_pull_winbind_trust_req(ndr, NDR_SCALARS|NDR_BUFFERS, &r->in.req));
4322 NDR_PULL_ALLOC(ndr, r->out.rep);
4323 ZERO_STRUCTP(r->out.rep);
4325 if (flags & NDR_OUT) {
4326 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
4327 NDR_PULL_ALLOC(ndr, r->out.rep);
4329 _mem_save_rep_0 = NDR_PULL_GET_MEM_CTX(ndr);
4330 NDR_PULL_SET_MEM_CTX(ndr, r->out.rep, LIBNDR_FLAG_REF_ALLOC);
4331 NDR_CHECK(ndr_pull_set_switch_value(ndr, r->out.rep, *r->in.level));
4332 NDR_CHECK(ndr_pull_winbind_trust_rep(ndr, NDR_SCALARS|NDR_BUFFERS, r->out.rep));
4333 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_rep_0, LIBNDR_FLAG_REF_ALLOC);
4334 NDR_CHECK(ndr_pull_winbind_status(ndr, NDR_SCALARS, &r->out.result));
4336 return NDR_ERR_SUCCESS;
4339 _PUBLIC_ void ndr_print_winbind_trust(struct ndr_print *ndr, const char *name, int flags, const struct winbind_trust *r)
4341 ndr_print_struct(ndr, name, "winbind_trust");
4343 if (flags & NDR_SET_VALUES) {
4344 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
4346 if (flags & NDR_IN) {
4347 ndr_print_struct(ndr, "in", "winbind_trust");
4349 ndr_print_ptr(ndr, "level", r->in.level);
4351 ndr_print_winbind_trust_level(ndr, "level", *r->in.level);
4353 ndr_print_set_switch_value(ndr, &r->in.req, *r->in.level);
4354 ndr_print_winbind_trust_req(ndr, "req", &r->in.req);
4357 if (flags & NDR_OUT) {
4358 ndr_print_struct(ndr, "out", "winbind_trust");
4360 ndr_print_ptr(ndr, "rep", r->out.rep);
4362 ndr_print_set_switch_value(ndr, r->out.rep, *r->in.level);
4363 ndr_print_winbind_trust_rep(ndr, "rep", r->out.rep);
4365 ndr_print_winbind_status(ndr, "result", r->out.result);
4371 static enum ndr_err_code ndr_push_winbind_lookup(struct ndr_push *ndr, int flags, const struct winbind_lookup *r)
4373 if (flags & NDR_IN) {
4374 if (r->in.level == NULL) {
4375 return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
4377 NDR_CHECK(ndr_push_winbind_lookup_level(ndr, NDR_SCALARS, *r->in.level));
4378 NDR_CHECK(ndr_push_set_switch_value(ndr, &r->in.req, *r->in.level));
4379 NDR_CHECK(ndr_push_winbind_lookup_req(ndr, NDR_SCALARS|NDR_BUFFERS, &r->in.req));
4381 if (flags & NDR_OUT) {
4382 if (r->out.rep == NULL) {
4383 return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
4385 NDR_CHECK(ndr_push_set_switch_value(ndr, r->out.rep, *r->in.level));
4386 NDR_CHECK(ndr_push_winbind_lookup_rep(ndr, NDR_SCALARS|NDR_BUFFERS, r->out.rep));
4387 NDR_CHECK(ndr_push_winbind_status(ndr, NDR_SCALARS, r->out.result));
4389 return NDR_ERR_SUCCESS;
4392 static enum ndr_err_code ndr_pull_winbind_lookup(struct ndr_pull *ndr, int flags, struct winbind_lookup *r)
4394 TALLOC_CTX *_mem_save_level_0;
4395 TALLOC_CTX *_mem_save_rep_0;
4396 if (flags & NDR_IN) {
4397 ZERO_STRUCT(r->out);
4399 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
4400 NDR_PULL_ALLOC(ndr, r->in.level);
4402 _mem_save_level_0 = NDR_PULL_GET_MEM_CTX(ndr);
4403 NDR_PULL_SET_MEM_CTX(ndr, r->in.level, LIBNDR_FLAG_REF_ALLOC);
4404 NDR_CHECK(ndr_pull_winbind_lookup_level(ndr, NDR_SCALARS, r->in.level));
4405 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_level_0, LIBNDR_FLAG_REF_ALLOC);
4406 NDR_CHECK(ndr_pull_set_switch_value(ndr, &r->in.req, *r->in.level));
4407 NDR_CHECK(ndr_pull_winbind_lookup_req(ndr, NDR_SCALARS|NDR_BUFFERS, &r->in.req));
4408 NDR_PULL_ALLOC(ndr, r->out.rep);
4409 ZERO_STRUCTP(r->out.rep);
4411 if (flags & NDR_OUT) {
4412 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
4413 NDR_PULL_ALLOC(ndr, r->out.rep);
4415 _mem_save_rep_0 = NDR_PULL_GET_MEM_CTX(ndr);
4416 NDR_PULL_SET_MEM_CTX(ndr, r->out.rep, LIBNDR_FLAG_REF_ALLOC);
4417 NDR_CHECK(ndr_pull_set_switch_value(ndr, r->out.rep, *r->in.level));
4418 NDR_CHECK(ndr_pull_winbind_lookup_rep(ndr, NDR_SCALARS|NDR_BUFFERS, r->out.rep));
4419 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_rep_0, LIBNDR_FLAG_REF_ALLOC);
4420 NDR_CHECK(ndr_pull_winbind_status(ndr, NDR_SCALARS, &r->out.result));
4422 return NDR_ERR_SUCCESS;
4425 _PUBLIC_ void ndr_print_winbind_lookup(struct ndr_print *ndr, const char *name, int flags, const struct winbind_lookup *r)
4427 ndr_print_struct(ndr, name, "winbind_lookup");
4429 if (flags & NDR_SET_VALUES) {
4430 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
4432 if (flags & NDR_IN) {
4433 ndr_print_struct(ndr, "in", "winbind_lookup");
4435 ndr_print_ptr(ndr, "level", r->in.level);
4437 ndr_print_winbind_lookup_level(ndr, "level", *r->in.level);
4439 ndr_print_set_switch_value(ndr, &r->in.req, *r->in.level);
4440 ndr_print_winbind_lookup_req(ndr, "req", &r->in.req);
4443 if (flags & NDR_OUT) {
4444 ndr_print_struct(ndr, "out", "winbind_lookup");
4446 ndr_print_ptr(ndr, "rep", r->out.rep);
4448 ndr_print_set_switch_value(ndr, r->out.rep, *r->in.level);
4449 ndr_print_winbind_lookup_rep(ndr, "rep", r->out.rep);
4451 ndr_print_winbind_status(ndr, "result", r->out.result);
4457 static enum ndr_err_code ndr_push_winbind_get_idmap(struct ndr_push *ndr, int flags, const struct winbind_get_idmap *r)
4459 if (flags & NDR_IN) {
4460 if (r->in.level == NULL) {
4461 return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
4463 NDR_CHECK(ndr_push_winbind_get_idmap_level(ndr, NDR_SCALARS, *r->in.level));
4464 NDR_CHECK(ndr_push_set_switch_value(ndr, &r->in.req, *r->in.level));
4465 NDR_CHECK(ndr_push_winbind_get_idmap_req(ndr, NDR_SCALARS|NDR_BUFFERS, &r->in.req));
4467 if (flags & NDR_OUT) {
4468 if (r->out.level == NULL) {
4469 return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
4471 NDR_CHECK(ndr_push_winbind_get_idmap_level(ndr, NDR_SCALARS, *r->out.level));
4472 if (r->out.rep == NULL) {
4473 return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
4475 NDR_CHECK(ndr_push_set_switch_value(ndr, r->out.rep, *r->out.level));
4476 NDR_CHECK(ndr_push_winbind_get_idmap_rep(ndr, NDR_SCALARS|NDR_BUFFERS, r->out.rep));
4477 NDR_CHECK(ndr_push_winbind_status(ndr, NDR_SCALARS, r->out.result));
4479 return NDR_ERR_SUCCESS;
4482 static enum ndr_err_code ndr_pull_winbind_get_idmap(struct ndr_pull *ndr, int flags, struct winbind_get_idmap *r)
4484 TALLOC_CTX *_mem_save_level_0;
4485 TALLOC_CTX *_mem_save_rep_0;
4486 if (flags & NDR_IN) {
4487 ZERO_STRUCT(r->out);
4489 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
4490 NDR_PULL_ALLOC(ndr, r->in.level);
4492 _mem_save_level_0 = NDR_PULL_GET_MEM_CTX(ndr);
4493 NDR_PULL_SET_MEM_CTX(ndr, r->in.level, LIBNDR_FLAG_REF_ALLOC);
4494 NDR_CHECK(ndr_pull_winbind_get_idmap_level(ndr, NDR_SCALARS, r->in.level));
4495 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_level_0, LIBNDR_FLAG_REF_ALLOC);
4496 NDR_CHECK(ndr_pull_set_switch_value(ndr, &r->in.req, *r->in.level));
4497 NDR_CHECK(ndr_pull_winbind_get_idmap_req(ndr, NDR_SCALARS|NDR_BUFFERS, &r->in.req));
4498 NDR_PULL_ALLOC(ndr, r->out.level);
4499 *r->out.level = *r->in.level;
4500 NDR_PULL_ALLOC(ndr, r->out.rep);
4501 ZERO_STRUCTP(r->out.rep);
4503 if (flags & NDR_OUT) {
4504 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
4505 NDR_PULL_ALLOC(ndr, r->out.level);
4507 _mem_save_level_0 = NDR_PULL_GET_MEM_CTX(ndr);
4508 NDR_PULL_SET_MEM_CTX(ndr, r->out.level, LIBNDR_FLAG_REF_ALLOC);
4509 NDR_CHECK(ndr_pull_winbind_get_idmap_level(ndr, NDR_SCALARS, r->out.level));
4510 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_level_0, LIBNDR_FLAG_REF_ALLOC);
4511 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
4512 NDR_PULL_ALLOC(ndr, r->out.rep);
4514 _mem_save_rep_0 = NDR_PULL_GET_MEM_CTX(ndr);
4515 NDR_PULL_SET_MEM_CTX(ndr, r->out.rep, LIBNDR_FLAG_REF_ALLOC);
4516 NDR_CHECK(ndr_pull_set_switch_value(ndr, r->out.rep, *r->out.level));
4517 NDR_CHECK(ndr_pull_winbind_get_idmap_rep(ndr, NDR_SCALARS|NDR_BUFFERS, r->out.rep));
4518 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_rep_0, LIBNDR_FLAG_REF_ALLOC);
4519 NDR_CHECK(ndr_pull_winbind_status(ndr, NDR_SCALARS, &r->out.result));
4521 return NDR_ERR_SUCCESS;
4524 _PUBLIC_ void ndr_print_winbind_get_idmap(struct ndr_print *ndr, const char *name, int flags, const struct winbind_get_idmap *r)
4526 ndr_print_struct(ndr, name, "winbind_get_idmap");
4528 if (flags & NDR_SET_VALUES) {
4529 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
4531 if (flags & NDR_IN) {
4532 ndr_print_struct(ndr, "in", "winbind_get_idmap");
4534 ndr_print_ptr(ndr, "level", r->in.level);
4536 ndr_print_winbind_get_idmap_level(ndr, "level", *r->in.level);
4538 ndr_print_set_switch_value(ndr, &r->in.req, *r->in.level);
4539 ndr_print_winbind_get_idmap_req(ndr, "req", &r->in.req);
4542 if (flags & NDR_OUT) {
4543 ndr_print_struct(ndr, "out", "winbind_get_idmap");
4545 ndr_print_ptr(ndr, "level", r->out.level);
4547 ndr_print_winbind_get_idmap_level(ndr, "level", *r->out.level);
4549 ndr_print_ptr(ndr, "rep", r->out.rep);
4551 ndr_print_set_switch_value(ndr, r->out.rep, *r->out.level);
4552 ndr_print_winbind_get_idmap_rep(ndr, "rep", r->out.rep);
4554 ndr_print_winbind_status(ndr, "result", r->out.result);
4560 static enum ndr_err_code ndr_push_winbind_set_idmap(struct ndr_push *ndr, int flags, const struct winbind_set_idmap *r)
4562 if (flags & NDR_IN) {
4563 if (r->in.level == NULL) {
4564 return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
4566 NDR_CHECK(ndr_push_winbind_set_idmap_level(ndr, NDR_SCALARS, *r->in.level));
4567 NDR_CHECK(ndr_push_set_switch_value(ndr, &r->in.req, *r->in.level));
4568 NDR_CHECK(ndr_push_winbind_set_idmap_req(ndr, NDR_SCALARS|NDR_BUFFERS, &r->in.req));
4570 if (flags & NDR_OUT) {
4571 if (r->out.level == NULL) {
4572 return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
4574 NDR_CHECK(ndr_push_winbind_set_idmap_level(ndr, NDR_SCALARS, *r->out.level));
4575 if (r->out.rep == NULL) {
4576 return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
4578 NDR_CHECK(ndr_push_set_switch_value(ndr, r->out.rep, *r->out.level));
4579 NDR_CHECK(ndr_push_winbind_set_idmap_rep(ndr, NDR_SCALARS|NDR_BUFFERS, r->out.rep));
4580 NDR_CHECK(ndr_push_winbind_status(ndr, NDR_SCALARS, r->out.result));
4582 return NDR_ERR_SUCCESS;
4585 static enum ndr_err_code ndr_pull_winbind_set_idmap(struct ndr_pull *ndr, int flags, struct winbind_set_idmap *r)
4587 TALLOC_CTX *_mem_save_level_0;
4588 TALLOC_CTX *_mem_save_rep_0;
4589 if (flags & NDR_IN) {
4590 ZERO_STRUCT(r->out);
4592 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
4593 NDR_PULL_ALLOC(ndr, r->in.level);
4595 _mem_save_level_0 = NDR_PULL_GET_MEM_CTX(ndr);
4596 NDR_PULL_SET_MEM_CTX(ndr, r->in.level, LIBNDR_FLAG_REF_ALLOC);
4597 NDR_CHECK(ndr_pull_winbind_set_idmap_level(ndr, NDR_SCALARS, r->in.level));
4598 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_level_0, LIBNDR_FLAG_REF_ALLOC);
4599 NDR_CHECK(ndr_pull_set_switch_value(ndr, &r->in.req, *r->in.level));
4600 NDR_CHECK(ndr_pull_winbind_set_idmap_req(ndr, NDR_SCALARS|NDR_BUFFERS, &r->in.req));
4601 NDR_PULL_ALLOC(ndr, r->out.level);
4602 *r->out.level = *r->in.level;
4603 NDR_PULL_ALLOC(ndr, r->out.rep);
4604 ZERO_STRUCTP(r->out.rep);
4606 if (flags & NDR_OUT) {
4607 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
4608 NDR_PULL_ALLOC(ndr, r->out.level);
4610 _mem_save_level_0 = NDR_PULL_GET_MEM_CTX(ndr);
4611 NDR_PULL_SET_MEM_CTX(ndr, r->out.level, LIBNDR_FLAG_REF_ALLOC);
4612 NDR_CHECK(ndr_pull_winbind_set_idmap_level(ndr, NDR_SCALARS, r->out.level));
4613 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_level_0, LIBNDR_FLAG_REF_ALLOC);
4614 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
4615 NDR_PULL_ALLOC(ndr, r->out.rep);
4617 _mem_save_rep_0 = NDR_PULL_GET_MEM_CTX(ndr);
4618 NDR_PULL_SET_MEM_CTX(ndr, r->out.rep, LIBNDR_FLAG_REF_ALLOC);
4619 NDR_CHECK(ndr_pull_set_switch_value(ndr, r->out.rep, *r->out.level));
4620 NDR_CHECK(ndr_pull_winbind_set_idmap_rep(ndr, NDR_SCALARS|NDR_BUFFERS, r->out.rep));
4621 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_rep_0, LIBNDR_FLAG_REF_ALLOC);
4622 NDR_CHECK(ndr_pull_winbind_status(ndr, NDR_SCALARS, &r->out.result));
4624 return NDR_ERR_SUCCESS;
4627 _PUBLIC_ void ndr_print_winbind_set_idmap(struct ndr_print *ndr, const char *name, int flags, const struct winbind_set_idmap *r)
4629 ndr_print_struct(ndr, name, "winbind_set_idmap");
4631 if (flags & NDR_SET_VALUES) {
4632 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
4634 if (flags & NDR_IN) {
4635 ndr_print_struct(ndr, "in", "winbind_set_idmap");
4637 ndr_print_ptr(ndr, "level", r->in.level);
4639 ndr_print_winbind_set_idmap_level(ndr, "level", *r->in.level);
4641 ndr_print_set_switch_value(ndr, &r->in.req, *r->in.level);
4642 ndr_print_winbind_set_idmap_req(ndr, "req", &r->in.req);
4645 if (flags & NDR_OUT) {
4646 ndr_print_struct(ndr, "out", "winbind_set_idmap");
4648 ndr_print_ptr(ndr, "level", r->out.level);
4650 ndr_print_winbind_set_idmap_level(ndr, "level", *r->out.level);
4652 ndr_print_ptr(ndr, "rep", r->out.rep);
4654 ndr_print_set_switch_value(ndr, r->out.rep, *r->out.level);
4655 ndr_print_winbind_set_idmap_rep(ndr, "rep", r->out.rep);
4657 ndr_print_winbind_status(ndr, "result", r->out.result);
4663 static enum ndr_err_code ndr_push_winbind_info_fixname(struct ndr_push *ndr, int flags, const struct winbind_info_fixname *r)
4665 if (flags & NDR_IN) {
4667 if (flags & NDR_OUT) {
4668 NDR_CHECK(ndr_push_winbind_status(ndr, NDR_SCALARS, r->out.result));
4670 return NDR_ERR_SUCCESS;
4673 static enum ndr_err_code ndr_pull_winbind_info_fixname(struct ndr_pull *ndr, int flags, struct winbind_info_fixname *r)
4675 if (flags & NDR_IN) {
4677 if (flags & NDR_OUT) {
4678 NDR_CHECK(ndr_pull_winbind_status(ndr, NDR_SCALARS, &r->out.result));
4680 return NDR_ERR_SUCCESS;
4683 _PUBLIC_ void ndr_print_winbind_info_fixname(struct ndr_print *ndr, const char *name, int flags, const struct winbind_info_fixname *r)
4685 ndr_print_struct(ndr, name, "winbind_info_fixname");
4687 if (flags & NDR_SET_VALUES) {
4688 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
4690 if (flags & NDR_IN) {
4691 ndr_print_struct(ndr, "in", "winbind_info_fixname");
4695 if (flags & NDR_OUT) {
4696 ndr_print_struct(ndr, "out", "winbind_info_fixname");
4698 ndr_print_winbind_status(ndr, "result", r->out.result);
4704 static enum ndr_err_code ndr_push_winbind_domain_name(struct ndr_push *ndr, int flags, const struct winbind_domain_name *r)
4706 if (flags & NDR_IN) {
4708 if (flags & NDR_OUT) {
4709 NDR_CHECK(ndr_push_winbind_status(ndr, NDR_SCALARS, r->out.result));
4711 return NDR_ERR_SUCCESS;
4714 static enum ndr_err_code ndr_pull_winbind_domain_name(struct ndr_pull *ndr, int flags, struct winbind_domain_name *r)
4716 if (flags & NDR_IN) {
4718 if (flags & NDR_OUT) {
4719 NDR_CHECK(ndr_pull_winbind_status(ndr, NDR_SCALARS, &r->out.result));
4721 return NDR_ERR_SUCCESS;
4724 _PUBLIC_ void ndr_print_winbind_domain_name(struct ndr_print *ndr, const char *name, int flags, const struct winbind_domain_name *r)
4726 ndr_print_struct(ndr, name, "winbind_domain_name");
4728 if (flags & NDR_SET_VALUES) {
4729 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
4731 if (flags & NDR_IN) {
4732 ndr_print_struct(ndr, "in", "winbind_domain_name");
4736 if (flags & NDR_OUT) {
4737 ndr_print_struct(ndr, "out", "winbind_domain_name");
4739 ndr_print_winbind_status(ndr, "result", r->out.result);
4745 static enum ndr_err_code ndr_push_winbind_get_domain_info(struct ndr_push *ndr, int flags, const struct winbind_get_domain_info *r)
4747 if (flags & NDR_IN) {
4748 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.domain_name, CH_UTF8)));
4749 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0));
4750 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.domain_name, CH_UTF8)));
4751 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->in.domain_name, ndr_charset_length(r->in.domain_name, CH_UTF8), sizeof(uint8_t), CH_UTF8));
4752 NDR_CHECK(ndr_push_unique_ptr(ndr, r->in.dc_name));
4753 if (r->in.dc_name) {
4754 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.dc_name, CH_UTF8)));
4755 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0));
4756 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.dc_name, CH_UTF8)));
4757 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->in.dc_name, ndr_charset_length(r->in.dc_name, CH_UTF8), sizeof(uint8_t), CH_UTF8));
4759 if (r->in.level == NULL) {
4760 return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
4762 NDR_CHECK(ndr_push_winbind_domain_info_level(ndr, NDR_SCALARS, *r->in.level));
4764 if (flags & NDR_OUT) {
4765 if (r->out.level == NULL) {
4766 return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
4768 NDR_CHECK(ndr_push_winbind_domain_info_level(ndr, NDR_SCALARS, *r->out.level));
4769 if (r->out.domain_info == NULL) {
4770 return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
4772 NDR_CHECK(ndr_push_set_switch_value(ndr, r->out.domain_info, *r->out.level));
4773 NDR_CHECK(ndr_push_winbind_domain_info(ndr, NDR_SCALARS|NDR_BUFFERS, r->out.domain_info));
4774 NDR_CHECK(ndr_push_winbind_status(ndr, NDR_SCALARS, r->out.result));
4776 return NDR_ERR_SUCCESS;
4779 static enum ndr_err_code ndr_pull_winbind_get_domain_info(struct ndr_pull *ndr, int flags, struct winbind_get_domain_info *r)
4781 uint32_t _ptr_dc_name;
4782 TALLOC_CTX *_mem_save_dc_name_0;
4783 TALLOC_CTX *_mem_save_level_0;
4784 TALLOC_CTX *_mem_save_domain_info_0;
4785 if (flags & NDR_IN) {
4786 ZERO_STRUCT(r->out);
4788 NDR_CHECK(ndr_pull_array_size(ndr, &r->in.domain_name));
4789 NDR_CHECK(ndr_pull_array_length(ndr, &r->in.domain_name));
4790 if (ndr_get_array_length(ndr, &r->in.domain_name) > ndr_get_array_size(ndr, &r->in.domain_name)) {
4791 return 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));
4793 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->in.domain_name), sizeof(uint8_t)));
4794 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->in.domain_name, ndr_get_array_length(ndr, &r->in.domain_name), sizeof(uint8_t), CH_UTF8));
4795 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_dc_name));
4797 NDR_PULL_ALLOC(ndr, r->in.dc_name);
4799 r->in.dc_name = NULL;
4801 if (r->in.dc_name) {
4802 _mem_save_dc_name_0 = NDR_PULL_GET_MEM_CTX(ndr);
4803 NDR_PULL_SET_MEM_CTX(ndr, r->in.dc_name, 0);
4804 NDR_CHECK(ndr_pull_array_size(ndr, &r->in.dc_name));
4805 NDR_CHECK(ndr_pull_array_length(ndr, &r->in.dc_name));
4806 if (ndr_get_array_length(ndr, &r->in.dc_name) > ndr_get_array_size(ndr, &r->in.dc_name)) {
4807 return ndr_pull_error(ndr, NDR_ERR_ARRAY_SIZE, "Bad array size %u should exceed array length %u", ndr_get_array_size(ndr, &r->in.dc_name), ndr_get_array_length(ndr, &r->in.dc_name));
4809 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->in.dc_name), sizeof(uint8_t)));
4810 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->in.dc_name, ndr_get_array_length(ndr, &r->in.dc_name), sizeof(uint8_t), CH_UTF8));
4811 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_dc_name_0, 0);
4813 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
4814 NDR_PULL_ALLOC(ndr, r->in.level);
4816 _mem_save_level_0 = NDR_PULL_GET_MEM_CTX(ndr);
4817 NDR_PULL_SET_MEM_CTX(ndr, r->in.level, LIBNDR_FLAG_REF_ALLOC);
4818 NDR_CHECK(ndr_pull_winbind_domain_info_level(ndr, NDR_SCALARS, r->in.level));
4819 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_level_0, LIBNDR_FLAG_REF_ALLOC);
4820 NDR_PULL_ALLOC(ndr, r->out.level);
4821 *r->out.level = *r->in.level;
4822 NDR_PULL_ALLOC(ndr, r->out.domain_info);
4823 ZERO_STRUCTP(r->out.domain_info);
4825 if (flags & NDR_OUT) {
4826 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
4827 NDR_PULL_ALLOC(ndr, r->out.level);
4829 _mem_save_level_0 = NDR_PULL_GET_MEM_CTX(ndr);
4830 NDR_PULL_SET_MEM_CTX(ndr, r->out.level, LIBNDR_FLAG_REF_ALLOC);
4831 NDR_CHECK(ndr_pull_winbind_domain_info_level(ndr, NDR_SCALARS, r->out.level));
4832 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_level_0, LIBNDR_FLAG_REF_ALLOC);
4833 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
4834 NDR_PULL_ALLOC(ndr, r->out.domain_info);
4836 _mem_save_domain_info_0 = NDR_PULL_GET_MEM_CTX(ndr);
4837 NDR_PULL_SET_MEM_CTX(ndr, r->out.domain_info, LIBNDR_FLAG_REF_ALLOC);
4838 NDR_CHECK(ndr_pull_set_switch_value(ndr, r->out.domain_info, *r->out.level));
4839 NDR_CHECK(ndr_pull_winbind_domain_info(ndr, NDR_SCALARS|NDR_BUFFERS, r->out.domain_info));
4840 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_domain_info_0, LIBNDR_FLAG_REF_ALLOC);
4841 NDR_CHECK(ndr_pull_winbind_status(ndr, NDR_SCALARS, &r->out.result));
4843 return NDR_ERR_SUCCESS;
4846 _PUBLIC_ void ndr_print_winbind_get_domain_info(struct ndr_print *ndr, const char *name, int flags, const struct winbind_get_domain_info *r)
4848 ndr_print_struct(ndr, name, "winbind_get_domain_info");
4850 if (flags & NDR_SET_VALUES) {
4851 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
4853 if (flags & NDR_IN) {
4854 ndr_print_struct(ndr, "in", "winbind_get_domain_info");
4856 ndr_print_string(ndr, "domain_name", r->in.domain_name);
4857 ndr_print_ptr(ndr, "dc_name", r->in.dc_name);
4859 if (r->in.dc_name) {
4860 ndr_print_string(ndr, "dc_name", r->in.dc_name);
4863 ndr_print_ptr(ndr, "level", r->in.level);
4865 ndr_print_winbind_domain_info_level(ndr, "level", *r->in.level);
4869 if (flags & NDR_OUT) {
4870 ndr_print_struct(ndr, "out", "winbind_get_domain_info");
4872 ndr_print_ptr(ndr, "level", r->out.level);
4874 ndr_print_winbind_domain_info_level(ndr, "level", *r->out.level);
4876 ndr_print_ptr(ndr, "domain_info", r->out.domain_info);
4878 ndr_print_set_switch_value(ndr, r->out.domain_info, *r->out.level);
4879 ndr_print_winbind_domain_info(ndr, "domain_info", r->out.domain_info);
4881 ndr_print_winbind_status(ndr, "result", r->out.result);
4887 static enum ndr_err_code ndr_push_winbind_get_dc_info(struct ndr_push *ndr, int flags, const struct winbind_get_dc_info *r)
4889 if (flags & NDR_IN) {
4890 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.domain_name, CH_UTF8)));
4891 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0));
4892 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.domain_name, CH_UTF8)));
4893 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->in.domain_name, ndr_charset_length(r->in.domain_name, CH_UTF8), sizeof(uint8_t), CH_UTF8));
4894 if (r->in.level == NULL) {
4895 return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
4897 NDR_CHECK(ndr_push_winbind_dc_info_level(ndr, NDR_SCALARS, *r->in.level));
4898 NDR_CHECK(ndr_push_set_switch_value(ndr, &r->in.params, *r->in.level));
4899 NDR_CHECK(ndr_push_winbind_dc_info_params(ndr, NDR_SCALARS|NDR_BUFFERS, &r->in.params));
4901 if (flags & NDR_OUT) {
4902 if (r->out.level == NULL) {
4903 return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
4905 NDR_CHECK(ndr_push_winbind_dc_info_level(ndr, NDR_SCALARS, *r->out.level));
4906 if (r->out.dc_info == NULL) {
4907 return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
4909 NDR_CHECK(ndr_push_set_switch_value(ndr, r->out.dc_info, *r->out.level));
4910 NDR_CHECK(ndr_push_winbind_dc_info(ndr, NDR_SCALARS|NDR_BUFFERS, r->out.dc_info));
4911 NDR_CHECK(ndr_push_winbind_status(ndr, NDR_SCALARS, r->out.result));
4913 return NDR_ERR_SUCCESS;
4916 static enum ndr_err_code ndr_pull_winbind_get_dc_info(struct ndr_pull *ndr, int flags, struct winbind_get_dc_info *r)
4918 TALLOC_CTX *_mem_save_level_0;
4919 TALLOC_CTX *_mem_save_dc_info_0;
4920 if (flags & NDR_IN) {
4921 ZERO_STRUCT(r->out);
4923 NDR_CHECK(ndr_pull_array_size(ndr, &r->in.domain_name));
4924 NDR_CHECK(ndr_pull_array_length(ndr, &r->in.domain_name));
4925 if (ndr_get_array_length(ndr, &r->in.domain_name) > ndr_get_array_size(ndr, &r->in.domain_name)) {
4926 return 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));
4928 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->in.domain_name), sizeof(uint8_t)));
4929 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->in.domain_name, ndr_get_array_length(ndr, &r->in.domain_name), sizeof(uint8_t), CH_UTF8));
4930 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
4931 NDR_PULL_ALLOC(ndr, r->in.level);
4933 _mem_save_level_0 = NDR_PULL_GET_MEM_CTX(ndr);
4934 NDR_PULL_SET_MEM_CTX(ndr, r->in.level, LIBNDR_FLAG_REF_ALLOC);
4935 NDR_CHECK(ndr_pull_winbind_dc_info_level(ndr, NDR_SCALARS, r->in.level));
4936 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_level_0, LIBNDR_FLAG_REF_ALLOC);
4937 NDR_CHECK(ndr_pull_set_switch_value(ndr, &r->in.params, *r->in.level));
4938 NDR_CHECK(ndr_pull_winbind_dc_info_params(ndr, NDR_SCALARS|NDR_BUFFERS, &r->in.params));
4939 NDR_PULL_ALLOC(ndr, r->out.level);
4940 *r->out.level = *r->in.level;
4941 NDR_PULL_ALLOC(ndr, r->out.dc_info);
4942 ZERO_STRUCTP(r->out.dc_info);
4944 if (flags & NDR_OUT) {
4945 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
4946 NDR_PULL_ALLOC(ndr, r->out.level);
4948 _mem_save_level_0 = NDR_PULL_GET_MEM_CTX(ndr);
4949 NDR_PULL_SET_MEM_CTX(ndr, r->out.level, LIBNDR_FLAG_REF_ALLOC);
4950 NDR_CHECK(ndr_pull_winbind_dc_info_level(ndr, NDR_SCALARS, r->out.level));
4951 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_level_0, LIBNDR_FLAG_REF_ALLOC);
4952 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
4953 NDR_PULL_ALLOC(ndr, r->out.dc_info);
4955 _mem_save_dc_info_0 = NDR_PULL_GET_MEM_CTX(ndr);
4956 NDR_PULL_SET_MEM_CTX(ndr, r->out.dc_info, LIBNDR_FLAG_REF_ALLOC);
4957 NDR_CHECK(ndr_pull_set_switch_value(ndr, r->out.dc_info, *r->out.level));
4958 NDR_CHECK(ndr_pull_winbind_dc_info(ndr, NDR_SCALARS|NDR_BUFFERS, r->out.dc_info));
4959 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_dc_info_0, LIBNDR_FLAG_REF_ALLOC);
4960 NDR_CHECK(ndr_pull_winbind_status(ndr, NDR_SCALARS, &r->out.result));
4962 return NDR_ERR_SUCCESS;
4965 _PUBLIC_ void ndr_print_winbind_get_dc_info(struct ndr_print *ndr, const char *name, int flags, const struct winbind_get_dc_info *r)
4967 ndr_print_struct(ndr, name, "winbind_get_dc_info");
4969 if (flags & NDR_SET_VALUES) {
4970 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
4972 if (flags & NDR_IN) {
4973 ndr_print_struct(ndr, "in", "winbind_get_dc_info");
4975 ndr_print_string(ndr, "domain_name", r->in.domain_name);
4976 ndr_print_ptr(ndr, "level", r->in.level);
4978 ndr_print_winbind_dc_info_level(ndr, "level", *r->in.level);
4980 ndr_print_set_switch_value(ndr, &r->in.params, *r->in.level);
4981 ndr_print_winbind_dc_info_params(ndr, "params", &r->in.params);
4984 if (flags & NDR_OUT) {
4985 ndr_print_struct(ndr, "out", "winbind_get_dc_info");
4987 ndr_print_ptr(ndr, "level", r->out.level);
4989 ndr_print_winbind_dc_info_level(ndr, "level", *r->out.level);
4991 ndr_print_ptr(ndr, "dc_info", r->out.dc_info);
4993 ndr_print_set_switch_value(ndr, r->out.dc_info, *r->out.level);
4994 ndr_print_winbind_dc_info(ndr, "dc_info", r->out.dc_info);
4996 ndr_print_winbind_status(ndr, "result", r->out.result);
5002 static enum ndr_err_code ndr_push_winbind_wins_byip(struct ndr_push *ndr, int flags, const struct winbind_wins_byip *r)
5004 if (flags & NDR_IN) {
5006 if (flags & NDR_OUT) {
5007 NDR_CHECK(ndr_push_winbind_status(ndr, NDR_SCALARS, r->out.result));
5009 return NDR_ERR_SUCCESS;
5012 static enum ndr_err_code ndr_pull_winbind_wins_byip(struct ndr_pull *ndr, int flags, struct winbind_wins_byip *r)
5014 if (flags & NDR_IN) {
5016 if (flags & NDR_OUT) {
5017 NDR_CHECK(ndr_pull_winbind_status(ndr, NDR_SCALARS, &r->out.result));
5019 return NDR_ERR_SUCCESS;
5022 _PUBLIC_ void ndr_print_winbind_wins_byip(struct ndr_print *ndr, const char *name, int flags, const struct winbind_wins_byip *r)
5024 ndr_print_struct(ndr, name, "winbind_wins_byip");
5026 if (flags & NDR_SET_VALUES) {
5027 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
5029 if (flags & NDR_IN) {
5030 ndr_print_struct(ndr, "in", "winbind_wins_byip");
5034 if (flags & NDR_OUT) {
5035 ndr_print_struct(ndr, "out", "winbind_wins_byip");
5037 ndr_print_winbind_status(ndr, "result", r->out.result);
5043 static enum ndr_err_code ndr_push_winbind_wins_byname(struct ndr_push *ndr, int flags, const struct winbind_wins_byname *r)
5045 if (flags & NDR_IN) {
5047 if (flags & NDR_OUT) {
5048 NDR_CHECK(ndr_push_winbind_status(ndr, NDR_SCALARS, r->out.result));
5050 return NDR_ERR_SUCCESS;
5053 static enum ndr_err_code ndr_pull_winbind_wins_byname(struct ndr_pull *ndr, int flags, struct winbind_wins_byname *r)
5055 if (flags & NDR_IN) {
5057 if (flags & NDR_OUT) {
5058 NDR_CHECK(ndr_pull_winbind_status(ndr, NDR_SCALARS, &r->out.result));
5060 return NDR_ERR_SUCCESS;
5063 _PUBLIC_ void ndr_print_winbind_wins_byname(struct ndr_print *ndr, const char *name, int flags, const struct winbind_wins_byname *r)
5065 ndr_print_struct(ndr, name, "winbind_wins_byname");
5067 if (flags & NDR_SET_VALUES) {
5068 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
5070 if (flags & NDR_IN) {
5071 ndr_print_struct(ndr, "in", "winbind_wins_byname");
5075 if (flags & NDR_OUT) {
5076 ndr_print_struct(ndr, "out", "winbind_wins_byname");
5078 ndr_print_winbind_status(ndr, "result", r->out.result);
5084 static enum ndr_err_code ndr_push_winbind_getgrlist(struct ndr_push *ndr, int flags, const struct winbind_getgrlist *r)
5086 if (flags & NDR_IN) {
5088 if (flags & NDR_OUT) {
5089 NDR_CHECK(ndr_push_winbind_status(ndr, NDR_SCALARS, r->out.result));
5091 return NDR_ERR_SUCCESS;
5094 static enum ndr_err_code ndr_pull_winbind_getgrlist(struct ndr_pull *ndr, int flags, struct winbind_getgrlist *r)
5096 if (flags & NDR_IN) {
5098 if (flags & NDR_OUT) {
5099 NDR_CHECK(ndr_pull_winbind_status(ndr, NDR_SCALARS, &r->out.result));
5101 return NDR_ERR_SUCCESS;
5104 _PUBLIC_ void ndr_print_winbind_getgrlist(struct ndr_print *ndr, const char *name, int flags, const struct winbind_getgrlist *r)
5106 ndr_print_struct(ndr, name, "winbind_getgrlist");
5108 if (flags & NDR_SET_VALUES) {
5109 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
5111 if (flags & NDR_IN) {
5112 ndr_print_struct(ndr, "in", "winbind_getgrlist");
5116 if (flags & NDR_OUT) {
5117 ndr_print_struct(ndr, "out", "winbind_getgrlist");
5119 ndr_print_winbind_status(ndr, "result", r->out.result);
5125 static enum ndr_err_code ndr_push_winbind_netbios_name(struct ndr_push *ndr, int flags, const struct winbind_netbios_name *r)
5127 if (flags & NDR_IN) {
5129 if (flags & NDR_OUT) {
5130 NDR_CHECK(ndr_push_winbind_status(ndr, NDR_SCALARS, r->out.result));
5132 return NDR_ERR_SUCCESS;
5135 static enum ndr_err_code ndr_pull_winbind_netbios_name(struct ndr_pull *ndr, int flags, struct winbind_netbios_name *r)
5137 if (flags & NDR_IN) {
5139 if (flags & NDR_OUT) {
5140 NDR_CHECK(ndr_pull_winbind_status(ndr, NDR_SCALARS, &r->out.result));
5142 return NDR_ERR_SUCCESS;
5145 _PUBLIC_ void ndr_print_winbind_netbios_name(struct ndr_print *ndr, const char *name, int flags, const struct winbind_netbios_name *r)
5147 ndr_print_struct(ndr, name, "winbind_netbios_name");
5149 if (flags & NDR_SET_VALUES) {
5150 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
5152 if (flags & NDR_IN) {
5153 ndr_print_struct(ndr, "in", "winbind_netbios_name");
5157 if (flags & NDR_OUT) {
5158 ndr_print_struct(ndr, "out", "winbind_netbios_name");
5160 ndr_print_winbind_status(ndr, "result", r->out.result);
5166 static enum ndr_err_code ndr_push_winbind_getusersids(struct ndr_push *ndr, int flags, const struct winbind_getusersids *r)
5168 if (flags & NDR_IN) {
5170 if (flags & NDR_OUT) {
5171 NDR_CHECK(ndr_push_winbind_status(ndr, NDR_SCALARS, r->out.result));
5173 return NDR_ERR_SUCCESS;
5176 static enum ndr_err_code ndr_pull_winbind_getusersids(struct ndr_pull *ndr, int flags, struct winbind_getusersids *r)
5178 if (flags & NDR_IN) {
5180 if (flags & NDR_OUT) {
5181 NDR_CHECK(ndr_pull_winbind_status(ndr, NDR_SCALARS, &r->out.result));
5183 return NDR_ERR_SUCCESS;
5186 _PUBLIC_ void ndr_print_winbind_getusersids(struct ndr_print *ndr, const char *name, int flags, const struct winbind_getusersids *r)
5188 ndr_print_struct(ndr, name, "winbind_getusersids");
5190 if (flags & NDR_SET_VALUES) {
5191 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
5193 if (flags & NDR_IN) {
5194 ndr_print_struct(ndr, "in", "winbind_getusersids");
5198 if (flags & NDR_OUT) {
5199 ndr_print_struct(ndr, "out", "winbind_getusersids");
5201 ndr_print_winbind_status(ndr, "result", r->out.result);
5207 static enum ndr_err_code ndr_push_winbind_getuserdomgroups(struct ndr_push *ndr, int flags, const struct winbind_getuserdomgroups *r)
5209 if (flags & NDR_IN) {
5211 if (flags & NDR_OUT) {
5212 NDR_CHECK(ndr_push_winbind_status(ndr, NDR_SCALARS, r->out.result));
5214 return NDR_ERR_SUCCESS;
5217 static enum ndr_err_code ndr_pull_winbind_getuserdomgroups(struct ndr_pull *ndr, int flags, struct winbind_getuserdomgroups *r)
5219 if (flags & NDR_IN) {
5221 if (flags & NDR_OUT) {
5222 NDR_CHECK(ndr_pull_winbind_status(ndr, NDR_SCALARS, &r->out.result));
5224 return NDR_ERR_SUCCESS;
5227 _PUBLIC_ void ndr_print_winbind_getuserdomgroups(struct ndr_print *ndr, const char *name, int flags, const struct winbind_getuserdomgroups *r)
5229 ndr_print_struct(ndr, name, "winbind_getuserdomgroups");
5231 if (flags & NDR_SET_VALUES) {
5232 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
5234 if (flags & NDR_IN) {
5235 ndr_print_struct(ndr, "in", "winbind_getuserdomgroups");
5239 if (flags & NDR_OUT) {
5240 ndr_print_struct(ndr, "out", "winbind_getuserdomgroups");
5242 ndr_print_winbind_status(ndr, "result", r->out.result);
5248 static enum ndr_err_code ndr_push_winbind_dual_userinfo(struct ndr_push *ndr, int flags, const struct winbind_dual_userinfo *r)
5250 if (flags & NDR_IN) {
5252 if (flags & NDR_OUT) {
5253 NDR_CHECK(ndr_push_winbind_status(ndr, NDR_SCALARS, r->out.result));
5255 return NDR_ERR_SUCCESS;
5258 static enum ndr_err_code ndr_pull_winbind_dual_userinfo(struct ndr_pull *ndr, int flags, struct winbind_dual_userinfo *r)
5260 if (flags & NDR_IN) {
5262 if (flags & NDR_OUT) {
5263 NDR_CHECK(ndr_pull_winbind_status(ndr, NDR_SCALARS, &r->out.result));
5265 return NDR_ERR_SUCCESS;
5268 _PUBLIC_ void ndr_print_winbind_dual_userinfo(struct ndr_print *ndr, const char *name, int flags, const struct winbind_dual_userinfo *r)
5270 ndr_print_struct(ndr, name, "winbind_dual_userinfo");
5272 if (flags & NDR_SET_VALUES) {
5273 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
5275 if (flags & NDR_IN) {
5276 ndr_print_struct(ndr, "in", "winbind_dual_userinfo");
5280 if (flags & NDR_OUT) {
5281 ndr_print_struct(ndr, "out", "winbind_dual_userinfo");
5283 ndr_print_winbind_status(ndr, "result", r->out.result);
5289 static enum ndr_err_code ndr_push_winbind_dual_getsidaliases(struct ndr_push *ndr, int flags, const struct winbind_dual_getsidaliases *r)
5291 if (flags & NDR_IN) {
5293 if (flags & NDR_OUT) {
5294 NDR_CHECK(ndr_push_winbind_status(ndr, NDR_SCALARS, r->out.result));
5296 return NDR_ERR_SUCCESS;
5299 static enum ndr_err_code ndr_pull_winbind_dual_getsidaliases(struct ndr_pull *ndr, int flags, struct winbind_dual_getsidaliases *r)
5301 if (flags & NDR_IN) {
5303 if (flags & NDR_OUT) {
5304 NDR_CHECK(ndr_pull_winbind_status(ndr, NDR_SCALARS, &r->out.result));
5306 return NDR_ERR_SUCCESS;
5309 _PUBLIC_ void ndr_print_winbind_dual_getsidaliases(struct ndr_print *ndr, const char *name, int flags, const struct winbind_dual_getsidaliases *r)
5311 ndr_print_struct(ndr, name, "winbind_dual_getsidaliases");
5313 if (flags & NDR_SET_VALUES) {
5314 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
5316 if (flags & NDR_IN) {
5317 ndr_print_struct(ndr, "in", "winbind_dual_getsidaliases");
5321 if (flags & NDR_OUT) {
5322 ndr_print_struct(ndr, "out", "winbind_dual_getsidaliases");
5324 ndr_print_winbind_status(ndr, "result", r->out.result);
5330 static enum ndr_err_code ndr_push_winbind_ccache_ntlmauth(struct ndr_push *ndr, int flags, const struct winbind_ccache_ntlmauth *r)
5332 if (flags & NDR_IN) {
5334 if (flags & NDR_OUT) {
5335 NDR_CHECK(ndr_push_winbind_status(ndr, NDR_SCALARS, r->out.result));
5337 return NDR_ERR_SUCCESS;
5340 static enum ndr_err_code ndr_pull_winbind_ccache_ntlmauth(struct ndr_pull *ndr, int flags, struct winbind_ccache_ntlmauth *r)
5342 if (flags & NDR_IN) {
5344 if (flags & NDR_OUT) {
5345 NDR_CHECK(ndr_pull_winbind_status(ndr, NDR_SCALARS, &r->out.result));
5347 return NDR_ERR_SUCCESS;
5350 _PUBLIC_ void ndr_print_winbind_ccache_ntlmauth(struct ndr_print *ndr, const char *name, int flags, const struct winbind_ccache_ntlmauth *r)
5352 ndr_print_struct(ndr, name, "winbind_ccache_ntlmauth");
5354 if (flags & NDR_SET_VALUES) {
5355 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
5357 if (flags & NDR_IN) {
5358 ndr_print_struct(ndr, "in", "winbind_ccache_ntlmauth");
5362 if (flags & NDR_OUT) {
5363 ndr_print_struct(ndr, "out", "winbind_ccache_ntlmauth");
5365 ndr_print_winbind_status(ndr, "result", r->out.result);
5371 static const struct ndr_interface_call winbind_protocol_calls[] = {
5374 sizeof(struct winbind_ping),
5375 (ndr_push_flags_fn_t) ndr_push_winbind_ping,
5376 (ndr_pull_flags_fn_t) ndr_pull_winbind_ping,
5377 (ndr_print_function_t) ndr_print_winbind_ping,
5381 "winbind_interface_details",
5382 sizeof(struct winbind_interface_details),
5383 (ndr_push_flags_fn_t) ndr_push_winbind_interface_details,
5384 (ndr_pull_flags_fn_t) ndr_pull_winbind_interface_details,
5385 (ndr_print_function_t) ndr_print_winbind_interface_details,
5390 sizeof(struct winbind_getpwnam),
5391 (ndr_push_flags_fn_t) ndr_push_winbind_getpwnam,
5392 (ndr_pull_flags_fn_t) ndr_pull_winbind_getpwnam,
5393 (ndr_print_function_t) ndr_print_winbind_getpwnam,
5398 sizeof(struct winbind_getpwuid),
5399 (ndr_push_flags_fn_t) ndr_push_winbind_getpwuid,
5400 (ndr_pull_flags_fn_t) ndr_pull_winbind_getpwuid,
5401 (ndr_print_function_t) ndr_print_winbind_getpwuid,
5406 sizeof(struct winbind_getgrnam),
5407 (ndr_push_flags_fn_t) ndr_push_winbind_getgrnam,
5408 (ndr_pull_flags_fn_t) ndr_pull_winbind_getgrnam,
5409 (ndr_print_function_t) ndr_print_winbind_getgrnam,
5414 sizeof(struct winbind_getgrgid),
5415 (ndr_push_flags_fn_t) ndr_push_winbind_getgrgid,
5416 (ndr_pull_flags_fn_t) ndr_pull_winbind_getgrgid,
5417 (ndr_print_function_t) ndr_print_winbind_getgrgid,
5421 "winbind_getgroups",
5422 sizeof(struct winbind_getgroups),
5423 (ndr_push_flags_fn_t) ndr_push_winbind_getgroups,
5424 (ndr_pull_flags_fn_t) ndr_pull_winbind_getgroups,
5425 (ndr_print_function_t) ndr_print_winbind_getgroups,
5430 sizeof(struct winbind_setpwent),
5431 (ndr_push_flags_fn_t) ndr_push_winbind_setpwent,
5432 (ndr_pull_flags_fn_t) ndr_pull_winbind_setpwent,
5433 (ndr_print_function_t) ndr_print_winbind_setpwent,
5438 sizeof(struct winbind_endpwent),
5439 (ndr_push_flags_fn_t) ndr_push_winbind_endpwent,
5440 (ndr_pull_flags_fn_t) ndr_pull_winbind_endpwent,
5441 (ndr_print_function_t) ndr_print_winbind_endpwent,
5446 sizeof(struct winbind_getpwent),
5447 (ndr_push_flags_fn_t) ndr_push_winbind_getpwent,
5448 (ndr_pull_flags_fn_t) ndr_pull_winbind_getpwent,
5449 (ndr_print_function_t) ndr_print_winbind_getpwent,
5454 sizeof(struct winbind_setgrent),
5455 (ndr_push_flags_fn_t) ndr_push_winbind_setgrent,
5456 (ndr_pull_flags_fn_t) ndr_pull_winbind_setgrent,
5457 (ndr_print_function_t) ndr_print_winbind_setgrent,
5462 sizeof(struct winbind_endgrent),
5463 (ndr_push_flags_fn_t) ndr_push_winbind_endgrent,
5464 (ndr_pull_flags_fn_t) ndr_pull_winbind_endgrent,
5465 (ndr_print_function_t) ndr_print_winbind_endgrent,
5470 sizeof(struct winbind_getgrent),
5471 (ndr_push_flags_fn_t) ndr_push_winbind_getgrent,
5472 (ndr_pull_flags_fn_t) ndr_pull_winbind_getgrent,
5473 (ndr_print_function_t) ndr_print_winbind_getgrent,
5478 sizeof(struct winbind_auth),
5479 (ndr_push_flags_fn_t) ndr_push_winbind_auth,
5480 (ndr_pull_flags_fn_t) ndr_pull_winbind_auth,
5481 (ndr_print_function_t) ndr_print_winbind_auth,
5485 "winbind_list_users",
5486 sizeof(struct winbind_list_users),
5487 (ndr_push_flags_fn_t) ndr_push_winbind_list_users,
5488 (ndr_pull_flags_fn_t) ndr_pull_winbind_list_users,
5489 (ndr_print_function_t) ndr_print_winbind_list_users,
5493 "winbind_list_groups",
5494 sizeof(struct winbind_list_groups),
5495 (ndr_push_flags_fn_t) ndr_push_winbind_list_groups,
5496 (ndr_pull_flags_fn_t) ndr_pull_winbind_list_groups,
5497 (ndr_print_function_t) ndr_print_winbind_list_groups,
5502 sizeof(struct winbind_trust),
5503 (ndr_push_flags_fn_t) ndr_push_winbind_trust,
5504 (ndr_pull_flags_fn_t) ndr_pull_winbind_trust,
5505 (ndr_print_function_t) ndr_print_winbind_trust,
5510 sizeof(struct winbind_lookup),
5511 (ndr_push_flags_fn_t) ndr_push_winbind_lookup,
5512 (ndr_pull_flags_fn_t) ndr_pull_winbind_lookup,
5513 (ndr_print_function_t) ndr_print_winbind_lookup,
5517 "winbind_get_idmap",
5518 sizeof(struct winbind_get_idmap),
5519 (ndr_push_flags_fn_t) ndr_push_winbind_get_idmap,
5520 (ndr_pull_flags_fn_t) ndr_pull_winbind_get_idmap,
5521 (ndr_print_function_t) ndr_print_winbind_get_idmap,
5525 "winbind_set_idmap",
5526 sizeof(struct winbind_set_idmap),
5527 (ndr_push_flags_fn_t) ndr_push_winbind_set_idmap,
5528 (ndr_pull_flags_fn_t) ndr_pull_winbind_set_idmap,
5529 (ndr_print_function_t) ndr_print_winbind_set_idmap,
5533 "winbind_info_fixname",
5534 sizeof(struct winbind_info_fixname),
5535 (ndr_push_flags_fn_t) ndr_push_winbind_info_fixname,
5536 (ndr_pull_flags_fn_t) ndr_pull_winbind_info_fixname,
5537 (ndr_print_function_t) ndr_print_winbind_info_fixname,
5541 "winbind_domain_name",
5542 sizeof(struct winbind_domain_name),
5543 (ndr_push_flags_fn_t) ndr_push_winbind_domain_name,
5544 (ndr_pull_flags_fn_t) ndr_pull_winbind_domain_name,
5545 (ndr_print_function_t) ndr_print_winbind_domain_name,
5549 "winbind_get_domain_info",
5550 sizeof(struct winbind_get_domain_info),
5551 (ndr_push_flags_fn_t) ndr_push_winbind_get_domain_info,
5552 (ndr_pull_flags_fn_t) ndr_pull_winbind_get_domain_info,
5553 (ndr_print_function_t) ndr_print_winbind_get_domain_info,
5557 "winbind_get_dc_info",
5558 sizeof(struct winbind_get_dc_info),
5559 (ndr_push_flags_fn_t) ndr_push_winbind_get_dc_info,
5560 (ndr_pull_flags_fn_t) ndr_pull_winbind_get_dc_info,
5561 (ndr_print_function_t) ndr_print_winbind_get_dc_info,
5565 "winbind_wins_byip",
5566 sizeof(struct winbind_wins_byip),
5567 (ndr_push_flags_fn_t) ndr_push_winbind_wins_byip,
5568 (ndr_pull_flags_fn_t) ndr_pull_winbind_wins_byip,
5569 (ndr_print_function_t) ndr_print_winbind_wins_byip,
5573 "winbind_wins_byname",
5574 sizeof(struct winbind_wins_byname),
5575 (ndr_push_flags_fn_t) ndr_push_winbind_wins_byname,
5576 (ndr_pull_flags_fn_t) ndr_pull_winbind_wins_byname,
5577 (ndr_print_function_t) ndr_print_winbind_wins_byname,
5581 "winbind_getgrlist",
5582 sizeof(struct winbind_getgrlist),
5583 (ndr_push_flags_fn_t) ndr_push_winbind_getgrlist,
5584 (ndr_pull_flags_fn_t) ndr_pull_winbind_getgrlist,
5585 (ndr_print_function_t) ndr_print_winbind_getgrlist,
5589 "winbind_netbios_name",
5590 sizeof(struct winbind_netbios_name),
5591 (ndr_push_flags_fn_t) ndr_push_winbind_netbios_name,
5592 (ndr_pull_flags_fn_t) ndr_pull_winbind_netbios_name,
5593 (ndr_print_function_t) ndr_print_winbind_netbios_name,
5597 "winbind_getusersids",
5598 sizeof(struct winbind_getusersids),
5599 (ndr_push_flags_fn_t) ndr_push_winbind_getusersids,
5600 (ndr_pull_flags_fn_t) ndr_pull_winbind_getusersids,
5601 (ndr_print_function_t) ndr_print_winbind_getusersids,
5605 "winbind_getuserdomgroups",
5606 sizeof(struct winbind_getuserdomgroups),
5607 (ndr_push_flags_fn_t) ndr_push_winbind_getuserdomgroups,
5608 (ndr_pull_flags_fn_t) ndr_pull_winbind_getuserdomgroups,
5609 (ndr_print_function_t) ndr_print_winbind_getuserdomgroups,
5613 "winbind_dual_userinfo",
5614 sizeof(struct winbind_dual_userinfo),
5615 (ndr_push_flags_fn_t) ndr_push_winbind_dual_userinfo,
5616 (ndr_pull_flags_fn_t) ndr_pull_winbind_dual_userinfo,
5617 (ndr_print_function_t) ndr_print_winbind_dual_userinfo,
5621 "winbind_dual_getsidaliases",
5622 sizeof(struct winbind_dual_getsidaliases),
5623 (ndr_push_flags_fn_t) ndr_push_winbind_dual_getsidaliases,
5624 (ndr_pull_flags_fn_t) ndr_pull_winbind_dual_getsidaliases,
5625 (ndr_print_function_t) ndr_print_winbind_dual_getsidaliases,
5629 "winbind_ccache_ntlmauth",
5630 sizeof(struct winbind_ccache_ntlmauth),
5631 (ndr_push_flags_fn_t) ndr_push_winbind_ccache_ntlmauth,
5632 (ndr_pull_flags_fn_t) ndr_pull_winbind_ccache_ntlmauth,
5633 (ndr_print_function_t) ndr_print_winbind_ccache_ntlmauth,
5636 { NULL, 0, NULL, NULL, NULL, false }
5639 static const char * const winbind_protocol_endpoint_strings[] = {
5640 "ncacn_np:[\\pipe\\winbind_protocol]",
5643 static const struct ndr_interface_string_array winbind_protocol_endpoints = {
5645 .names = winbind_protocol_endpoint_strings
5648 static const char * const winbind_protocol_authservice_strings[] = {
5652 static const struct ndr_interface_string_array winbind_protocol_authservices = {
5654 .names = winbind_protocol_authservice_strings
5658 const struct ndr_interface_table ndr_table_winbind_protocol = {
5659 .name = "winbind_protocol",
5661 {0xb6608c99,0x0407,0x401b,{0x96,0xd3},{0x7b,0xcd,0xa6,0x72,0x32,0xaf}},
5662 NDR_WINBIND_PROTOCOL_VERSION
5664 .helpstring = NDR_WINBIND_PROTOCOL_HELPSTRING,
5666 .calls = winbind_protocol_calls,
5667 .endpoints = &winbind_protocol_endpoints,
5668 .authservices = &winbind_protocol_authservices