w3:winbind: Convert WINBINDD_LOOKUPRIDS to the new API
[Samba/aatanasov.git] / source3 / librpc / gen_ndr / ndr_wbint.c
blob681d1da492eed7aeff449c2fda5f4feaa922bb3f
1 /* parser auto-generated by pidl */
3 #include "includes.h"
4 #include "librpc/gen_ndr/ndr_wbint.h"
6 #include "librpc/gen_ndr/ndr_lsa.h"
7 _PUBLIC_ enum ndr_err_code ndr_push_wbint_userinfo(struct ndr_push *ndr, int ndr_flags, const struct wbint_userinfo *r)
9 if (ndr_flags & NDR_SCALARS) {
10 NDR_CHECK(ndr_push_align(ndr, 8));
11 NDR_CHECK(ndr_push_unique_ptr(ndr, r->acct_name));
12 NDR_CHECK(ndr_push_unique_ptr(ndr, r->full_name));
13 NDR_CHECK(ndr_push_unique_ptr(ndr, r->homedir));
14 NDR_CHECK(ndr_push_unique_ptr(ndr, r->shell));
15 NDR_CHECK(ndr_push_hyper(ndr, NDR_SCALARS, r->primary_gid));
16 NDR_CHECK(ndr_push_dom_sid(ndr, NDR_SCALARS, &r->user_sid));
17 NDR_CHECK(ndr_push_dom_sid(ndr, NDR_SCALARS, &r->group_sid));
19 if (ndr_flags & NDR_BUFFERS) {
20 if (r->acct_name) {
21 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->acct_name, CH_UTF8)));
22 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0));
23 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->acct_name, CH_UTF8)));
24 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->acct_name, ndr_charset_length(r->acct_name, CH_UTF8), sizeof(uint8_t), CH_UTF8));
26 if (r->full_name) {
27 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->full_name, CH_UTF8)));
28 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0));
29 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->full_name, CH_UTF8)));
30 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->full_name, ndr_charset_length(r->full_name, CH_UTF8), sizeof(uint8_t), CH_UTF8));
32 if (r->homedir) {
33 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->homedir, CH_UTF8)));
34 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0));
35 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->homedir, CH_UTF8)));
36 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->homedir, ndr_charset_length(r->homedir, CH_UTF8), sizeof(uint8_t), CH_UTF8));
38 if (r->shell) {
39 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->shell, CH_UTF8)));
40 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0));
41 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->shell, CH_UTF8)));
42 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->shell, ndr_charset_length(r->shell, CH_UTF8), sizeof(uint8_t), CH_UTF8));
45 return NDR_ERR_SUCCESS;
48 _PUBLIC_ enum ndr_err_code ndr_pull_wbint_userinfo(struct ndr_pull *ndr, int ndr_flags, struct wbint_userinfo *r)
50 uint32_t _ptr_acct_name;
51 TALLOC_CTX *_mem_save_acct_name_0;
52 uint32_t _ptr_full_name;
53 TALLOC_CTX *_mem_save_full_name_0;
54 uint32_t _ptr_homedir;
55 TALLOC_CTX *_mem_save_homedir_0;
56 uint32_t _ptr_shell;
57 TALLOC_CTX *_mem_save_shell_0;
58 if (ndr_flags & NDR_SCALARS) {
59 NDR_CHECK(ndr_pull_align(ndr, 8));
60 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_acct_name));
61 if (_ptr_acct_name) {
62 NDR_PULL_ALLOC(ndr, r->acct_name);
63 } else {
64 r->acct_name = NULL;
66 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_full_name));
67 if (_ptr_full_name) {
68 NDR_PULL_ALLOC(ndr, r->full_name);
69 } else {
70 r->full_name = NULL;
72 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_homedir));
73 if (_ptr_homedir) {
74 NDR_PULL_ALLOC(ndr, r->homedir);
75 } else {
76 r->homedir = NULL;
78 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_shell));
79 if (_ptr_shell) {
80 NDR_PULL_ALLOC(ndr, r->shell);
81 } else {
82 r->shell = NULL;
84 NDR_CHECK(ndr_pull_hyper(ndr, NDR_SCALARS, &r->primary_gid));
85 NDR_CHECK(ndr_pull_dom_sid(ndr, NDR_SCALARS, &r->user_sid));
86 NDR_CHECK(ndr_pull_dom_sid(ndr, NDR_SCALARS, &r->group_sid));
88 if (ndr_flags & NDR_BUFFERS) {
89 if (r->acct_name) {
90 _mem_save_acct_name_0 = NDR_PULL_GET_MEM_CTX(ndr);
91 NDR_PULL_SET_MEM_CTX(ndr, r->acct_name, 0);
92 NDR_CHECK(ndr_pull_array_size(ndr, &r->acct_name));
93 NDR_CHECK(ndr_pull_array_length(ndr, &r->acct_name));
94 if (ndr_get_array_length(ndr, &r->acct_name) > ndr_get_array_size(ndr, &r->acct_name)) {
95 return ndr_pull_error(ndr, NDR_ERR_ARRAY_SIZE, "Bad array size %u should exceed array length %u", ndr_get_array_size(ndr, &r->acct_name), ndr_get_array_length(ndr, &r->acct_name));
97 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->acct_name), sizeof(uint8_t)));
98 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->acct_name, ndr_get_array_length(ndr, &r->acct_name), sizeof(uint8_t), CH_UTF8));
99 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_acct_name_0, 0);
101 if (r->full_name) {
102 _mem_save_full_name_0 = NDR_PULL_GET_MEM_CTX(ndr);
103 NDR_PULL_SET_MEM_CTX(ndr, r->full_name, 0);
104 NDR_CHECK(ndr_pull_array_size(ndr, &r->full_name));
105 NDR_CHECK(ndr_pull_array_length(ndr, &r->full_name));
106 if (ndr_get_array_length(ndr, &r->full_name) > ndr_get_array_size(ndr, &r->full_name)) {
107 return ndr_pull_error(ndr, NDR_ERR_ARRAY_SIZE, "Bad array size %u should exceed array length %u", ndr_get_array_size(ndr, &r->full_name), ndr_get_array_length(ndr, &r->full_name));
109 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->full_name), sizeof(uint8_t)));
110 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->full_name, ndr_get_array_length(ndr, &r->full_name), sizeof(uint8_t), CH_UTF8));
111 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_full_name_0, 0);
113 if (r->homedir) {
114 _mem_save_homedir_0 = NDR_PULL_GET_MEM_CTX(ndr);
115 NDR_PULL_SET_MEM_CTX(ndr, r->homedir, 0);
116 NDR_CHECK(ndr_pull_array_size(ndr, &r->homedir));
117 NDR_CHECK(ndr_pull_array_length(ndr, &r->homedir));
118 if (ndr_get_array_length(ndr, &r->homedir) > ndr_get_array_size(ndr, &r->homedir)) {
119 return ndr_pull_error(ndr, NDR_ERR_ARRAY_SIZE, "Bad array size %u should exceed array length %u", ndr_get_array_size(ndr, &r->homedir), ndr_get_array_length(ndr, &r->homedir));
121 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->homedir), sizeof(uint8_t)));
122 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->homedir, ndr_get_array_length(ndr, &r->homedir), sizeof(uint8_t), CH_UTF8));
123 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_homedir_0, 0);
125 if (r->shell) {
126 _mem_save_shell_0 = NDR_PULL_GET_MEM_CTX(ndr);
127 NDR_PULL_SET_MEM_CTX(ndr, r->shell, 0);
128 NDR_CHECK(ndr_pull_array_size(ndr, &r->shell));
129 NDR_CHECK(ndr_pull_array_length(ndr, &r->shell));
130 if (ndr_get_array_length(ndr, &r->shell) > ndr_get_array_size(ndr, &r->shell)) {
131 return ndr_pull_error(ndr, NDR_ERR_ARRAY_SIZE, "Bad array size %u should exceed array length %u", ndr_get_array_size(ndr, &r->shell), ndr_get_array_length(ndr, &r->shell));
133 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->shell), sizeof(uint8_t)));
134 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->shell, ndr_get_array_length(ndr, &r->shell), sizeof(uint8_t), CH_UTF8));
135 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_shell_0, 0);
138 return NDR_ERR_SUCCESS;
141 _PUBLIC_ void ndr_print_wbint_userinfo(struct ndr_print *ndr, const char *name, const struct wbint_userinfo *r)
143 ndr_print_struct(ndr, name, "wbint_userinfo");
144 ndr->depth++;
145 ndr_print_ptr(ndr, "acct_name", r->acct_name);
146 ndr->depth++;
147 if (r->acct_name) {
148 ndr_print_string(ndr, "acct_name", r->acct_name);
150 ndr->depth--;
151 ndr_print_ptr(ndr, "full_name", r->full_name);
152 ndr->depth++;
153 if (r->full_name) {
154 ndr_print_string(ndr, "full_name", r->full_name);
156 ndr->depth--;
157 ndr_print_ptr(ndr, "homedir", r->homedir);
158 ndr->depth++;
159 if (r->homedir) {
160 ndr_print_string(ndr, "homedir", r->homedir);
162 ndr->depth--;
163 ndr_print_ptr(ndr, "shell", r->shell);
164 ndr->depth++;
165 if (r->shell) {
166 ndr_print_string(ndr, "shell", r->shell);
168 ndr->depth--;
169 ndr_print_hyper(ndr, "primary_gid", r->primary_gid);
170 ndr_print_dom_sid(ndr, "user_sid", &r->user_sid);
171 ndr_print_dom_sid(ndr, "group_sid", &r->group_sid);
172 ndr->depth--;
175 _PUBLIC_ enum ndr_err_code ndr_push_wbint_SidArray(struct ndr_push *ndr, int ndr_flags, const struct wbint_SidArray *r)
177 uint32_t cntr_sids_0;
178 if (ndr_flags & NDR_SCALARS) {
179 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->num_sids));
180 NDR_CHECK(ndr_push_align(ndr, 4));
181 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->num_sids));
182 for (cntr_sids_0 = 0; cntr_sids_0 < r->num_sids; cntr_sids_0++) {
183 NDR_CHECK(ndr_push_dom_sid(ndr, NDR_SCALARS, &r->sids[cntr_sids_0]));
186 if (ndr_flags & NDR_BUFFERS) {
188 return NDR_ERR_SUCCESS;
191 _PUBLIC_ enum ndr_err_code ndr_pull_wbint_SidArray(struct ndr_pull *ndr, int ndr_flags, struct wbint_SidArray *r)
193 uint32_t cntr_sids_0;
194 TALLOC_CTX *_mem_save_sids_0;
195 if (ndr_flags & NDR_SCALARS) {
196 NDR_CHECK(ndr_pull_array_size(ndr, &r->sids));
197 NDR_CHECK(ndr_pull_align(ndr, 4));
198 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->num_sids));
199 NDR_PULL_ALLOC_N(ndr, r->sids, ndr_get_array_size(ndr, &r->sids));
200 _mem_save_sids_0 = NDR_PULL_GET_MEM_CTX(ndr);
201 NDR_PULL_SET_MEM_CTX(ndr, r->sids, 0);
202 for (cntr_sids_0 = 0; cntr_sids_0 < r->num_sids; cntr_sids_0++) {
203 NDR_CHECK(ndr_pull_dom_sid(ndr, NDR_SCALARS, &r->sids[cntr_sids_0]));
205 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_sids_0, 0);
206 if (r->sids) {
207 NDR_CHECK(ndr_check_array_size(ndr, (void*)&r->sids, r->num_sids));
210 if (ndr_flags & NDR_BUFFERS) {
212 return NDR_ERR_SUCCESS;
215 _PUBLIC_ void ndr_print_wbint_SidArray(struct ndr_print *ndr, const char *name, const struct wbint_SidArray *r)
217 uint32_t cntr_sids_0;
218 ndr_print_struct(ndr, name, "wbint_SidArray");
219 ndr->depth++;
220 ndr_print_uint32(ndr, "num_sids", r->num_sids);
221 ndr->print(ndr, "%s: ARRAY(%d)", "sids", (int)r->num_sids);
222 ndr->depth++;
223 for (cntr_sids_0=0;cntr_sids_0<r->num_sids;cntr_sids_0++) {
224 char *idx_0=NULL;
225 if (asprintf(&idx_0, "[%d]", cntr_sids_0) != -1) {
226 ndr_print_dom_sid(ndr, "sids", &r->sids[cntr_sids_0]);
227 free(idx_0);
230 ndr->depth--;
231 ndr->depth--;
234 _PUBLIC_ enum ndr_err_code ndr_push_wbint_RidArray(struct ndr_push *ndr, int ndr_flags, const struct wbint_RidArray *r)
236 uint32_t cntr_rids_0;
237 if (ndr_flags & NDR_SCALARS) {
238 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->num_rids));
239 NDR_CHECK(ndr_push_align(ndr, 4));
240 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->num_rids));
241 for (cntr_rids_0 = 0; cntr_rids_0 < r->num_rids; cntr_rids_0++) {
242 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->rids[cntr_rids_0]));
245 if (ndr_flags & NDR_BUFFERS) {
247 return NDR_ERR_SUCCESS;
250 _PUBLIC_ enum ndr_err_code ndr_pull_wbint_RidArray(struct ndr_pull *ndr, int ndr_flags, struct wbint_RidArray *r)
252 uint32_t cntr_rids_0;
253 TALLOC_CTX *_mem_save_rids_0;
254 if (ndr_flags & NDR_SCALARS) {
255 NDR_CHECK(ndr_pull_array_size(ndr, &r->rids));
256 NDR_CHECK(ndr_pull_align(ndr, 4));
257 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->num_rids));
258 NDR_PULL_ALLOC_N(ndr, r->rids, ndr_get_array_size(ndr, &r->rids));
259 _mem_save_rids_0 = NDR_PULL_GET_MEM_CTX(ndr);
260 NDR_PULL_SET_MEM_CTX(ndr, r->rids, 0);
261 for (cntr_rids_0 = 0; cntr_rids_0 < r->num_rids; cntr_rids_0++) {
262 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->rids[cntr_rids_0]));
264 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_rids_0, 0);
265 if (r->rids) {
266 NDR_CHECK(ndr_check_array_size(ndr, (void*)&r->rids, r->num_rids));
269 if (ndr_flags & NDR_BUFFERS) {
271 return NDR_ERR_SUCCESS;
274 _PUBLIC_ void ndr_print_wbint_RidArray(struct ndr_print *ndr, const char *name, const struct wbint_RidArray *r)
276 uint32_t cntr_rids_0;
277 ndr_print_struct(ndr, name, "wbint_RidArray");
278 ndr->depth++;
279 ndr_print_uint32(ndr, "num_rids", r->num_rids);
280 ndr->print(ndr, "%s: ARRAY(%d)", "rids", (int)r->num_rids);
281 ndr->depth++;
282 for (cntr_rids_0=0;cntr_rids_0<r->num_rids;cntr_rids_0++) {
283 char *idx_0=NULL;
284 if (asprintf(&idx_0, "[%d]", cntr_rids_0) != -1) {
285 ndr_print_uint32(ndr, "rids", r->rids[cntr_rids_0]);
286 free(idx_0);
289 ndr->depth--;
290 ndr->depth--;
293 _PUBLIC_ enum ndr_err_code ndr_push_wbint_Principal(struct ndr_push *ndr, int ndr_flags, const struct wbint_Principal *r)
295 if (ndr_flags & NDR_SCALARS) {
296 NDR_CHECK(ndr_push_align(ndr, 4));
297 NDR_CHECK(ndr_push_dom_sid(ndr, NDR_SCALARS, &r->sid));
298 NDR_CHECK(ndr_push_lsa_SidType(ndr, NDR_SCALARS, r->type));
299 NDR_CHECK(ndr_push_unique_ptr(ndr, r->name));
301 if (ndr_flags & NDR_BUFFERS) {
302 if (r->name) {
303 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->name, CH_UTF8)));
304 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0));
305 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->name, CH_UTF8)));
306 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->name, ndr_charset_length(r->name, CH_UTF8), sizeof(uint8_t), CH_UTF8));
309 return NDR_ERR_SUCCESS;
312 _PUBLIC_ enum ndr_err_code ndr_pull_wbint_Principal(struct ndr_pull *ndr, int ndr_flags, struct wbint_Principal *r)
314 uint32_t _ptr_name;
315 TALLOC_CTX *_mem_save_name_0;
316 if (ndr_flags & NDR_SCALARS) {
317 NDR_CHECK(ndr_pull_align(ndr, 4));
318 NDR_CHECK(ndr_pull_dom_sid(ndr, NDR_SCALARS, &r->sid));
319 NDR_CHECK(ndr_pull_lsa_SidType(ndr, NDR_SCALARS, &r->type));
320 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_name));
321 if (_ptr_name) {
322 NDR_PULL_ALLOC(ndr, r->name);
323 } else {
324 r->name = NULL;
327 if (ndr_flags & NDR_BUFFERS) {
328 if (r->name) {
329 _mem_save_name_0 = NDR_PULL_GET_MEM_CTX(ndr);
330 NDR_PULL_SET_MEM_CTX(ndr, r->name, 0);
331 NDR_CHECK(ndr_pull_array_size(ndr, &r->name));
332 NDR_CHECK(ndr_pull_array_length(ndr, &r->name));
333 if (ndr_get_array_length(ndr, &r->name) > ndr_get_array_size(ndr, &r->name)) {
334 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));
336 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->name), sizeof(uint8_t)));
337 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->name, ndr_get_array_length(ndr, &r->name), sizeof(uint8_t), CH_UTF8));
338 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_name_0, 0);
341 return NDR_ERR_SUCCESS;
344 _PUBLIC_ void ndr_print_wbint_Principal(struct ndr_print *ndr, const char *name, const struct wbint_Principal *r)
346 ndr_print_struct(ndr, name, "wbint_Principal");
347 ndr->depth++;
348 ndr_print_dom_sid(ndr, "sid", &r->sid);
349 ndr_print_lsa_SidType(ndr, "type", r->type);
350 ndr_print_ptr(ndr, "name", r->name);
351 ndr->depth++;
352 if (r->name) {
353 ndr_print_string(ndr, "name", r->name);
355 ndr->depth--;
356 ndr->depth--;
359 _PUBLIC_ enum ndr_err_code ndr_push_wbint_Principals(struct ndr_push *ndr, int ndr_flags, const struct wbint_Principals *r)
361 uint32_t cntr_principals_0;
362 if (ndr_flags & NDR_SCALARS) {
363 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->num_principals));
364 NDR_CHECK(ndr_push_align(ndr, 4));
365 NDR_CHECK(ndr_push_int32(ndr, NDR_SCALARS, r->num_principals));
366 for (cntr_principals_0 = 0; cntr_principals_0 < r->num_principals; cntr_principals_0++) {
367 NDR_CHECK(ndr_push_wbint_Principal(ndr, NDR_SCALARS, &r->principals[cntr_principals_0]));
370 if (ndr_flags & NDR_BUFFERS) {
371 for (cntr_principals_0 = 0; cntr_principals_0 < r->num_principals; cntr_principals_0++) {
372 NDR_CHECK(ndr_push_wbint_Principal(ndr, NDR_BUFFERS, &r->principals[cntr_principals_0]));
375 return NDR_ERR_SUCCESS;
378 _PUBLIC_ enum ndr_err_code ndr_pull_wbint_Principals(struct ndr_pull *ndr, int ndr_flags, struct wbint_Principals *r)
380 uint32_t cntr_principals_0;
381 TALLOC_CTX *_mem_save_principals_0;
382 if (ndr_flags & NDR_SCALARS) {
383 NDR_CHECK(ndr_pull_array_size(ndr, &r->principals));
384 NDR_CHECK(ndr_pull_align(ndr, 4));
385 NDR_CHECK(ndr_pull_int32(ndr, NDR_SCALARS, &r->num_principals));
386 NDR_PULL_ALLOC_N(ndr, r->principals, ndr_get_array_size(ndr, &r->principals));
387 _mem_save_principals_0 = NDR_PULL_GET_MEM_CTX(ndr);
388 NDR_PULL_SET_MEM_CTX(ndr, r->principals, 0);
389 for (cntr_principals_0 = 0; cntr_principals_0 < r->num_principals; cntr_principals_0++) {
390 NDR_CHECK(ndr_pull_wbint_Principal(ndr, NDR_SCALARS, &r->principals[cntr_principals_0]));
392 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_principals_0, 0);
393 if (r->principals) {
394 NDR_CHECK(ndr_check_array_size(ndr, (void*)&r->principals, r->num_principals));
397 if (ndr_flags & NDR_BUFFERS) {
398 _mem_save_principals_0 = NDR_PULL_GET_MEM_CTX(ndr);
399 NDR_PULL_SET_MEM_CTX(ndr, r->principals, 0);
400 for (cntr_principals_0 = 0; cntr_principals_0 < r->num_principals; cntr_principals_0++) {
401 NDR_CHECK(ndr_pull_wbint_Principal(ndr, NDR_BUFFERS, &r->principals[cntr_principals_0]));
403 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_principals_0, 0);
405 return NDR_ERR_SUCCESS;
408 _PUBLIC_ void ndr_print_wbint_Principals(struct ndr_print *ndr, const char *name, const struct wbint_Principals *r)
410 uint32_t cntr_principals_0;
411 ndr_print_struct(ndr, name, "wbint_Principals");
412 ndr->depth++;
413 ndr_print_int32(ndr, "num_principals", r->num_principals);
414 ndr->print(ndr, "%s: ARRAY(%d)", "principals", (int)r->num_principals);
415 ndr->depth++;
416 for (cntr_principals_0=0;cntr_principals_0<r->num_principals;cntr_principals_0++) {
417 char *idx_0=NULL;
418 if (asprintf(&idx_0, "[%d]", cntr_principals_0) != -1) {
419 ndr_print_wbint_Principal(ndr, "principals", &r->principals[cntr_principals_0]);
420 free(idx_0);
423 ndr->depth--;
424 ndr->depth--;
427 _PUBLIC_ enum ndr_err_code ndr_push_wbint_userinfos(struct ndr_push *ndr, int ndr_flags, const struct wbint_userinfos *r)
429 uint32_t cntr_userinfos_0;
430 if (ndr_flags & NDR_SCALARS) {
431 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->num_userinfos));
432 NDR_CHECK(ndr_push_align(ndr, 8));
433 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->num_userinfos));
434 for (cntr_userinfos_0 = 0; cntr_userinfos_0 < r->num_userinfos; cntr_userinfos_0++) {
435 NDR_CHECK(ndr_push_wbint_userinfo(ndr, NDR_SCALARS, &r->userinfos[cntr_userinfos_0]));
438 if (ndr_flags & NDR_BUFFERS) {
439 for (cntr_userinfos_0 = 0; cntr_userinfos_0 < r->num_userinfos; cntr_userinfos_0++) {
440 NDR_CHECK(ndr_push_wbint_userinfo(ndr, NDR_BUFFERS, &r->userinfos[cntr_userinfos_0]));
443 return NDR_ERR_SUCCESS;
446 _PUBLIC_ enum ndr_err_code ndr_pull_wbint_userinfos(struct ndr_pull *ndr, int ndr_flags, struct wbint_userinfos *r)
448 uint32_t cntr_userinfos_0;
449 TALLOC_CTX *_mem_save_userinfos_0;
450 if (ndr_flags & NDR_SCALARS) {
451 NDR_CHECK(ndr_pull_array_size(ndr, &r->userinfos));
452 NDR_CHECK(ndr_pull_align(ndr, 8));
453 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->num_userinfos));
454 NDR_PULL_ALLOC_N(ndr, r->userinfos, ndr_get_array_size(ndr, &r->userinfos));
455 _mem_save_userinfos_0 = NDR_PULL_GET_MEM_CTX(ndr);
456 NDR_PULL_SET_MEM_CTX(ndr, r->userinfos, 0);
457 for (cntr_userinfos_0 = 0; cntr_userinfos_0 < r->num_userinfos; cntr_userinfos_0++) {
458 NDR_CHECK(ndr_pull_wbint_userinfo(ndr, NDR_SCALARS, &r->userinfos[cntr_userinfos_0]));
460 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_userinfos_0, 0);
461 if (r->userinfos) {
462 NDR_CHECK(ndr_check_array_size(ndr, (void*)&r->userinfos, r->num_userinfos));
465 if (ndr_flags & NDR_BUFFERS) {
466 _mem_save_userinfos_0 = NDR_PULL_GET_MEM_CTX(ndr);
467 NDR_PULL_SET_MEM_CTX(ndr, r->userinfos, 0);
468 for (cntr_userinfos_0 = 0; cntr_userinfos_0 < r->num_userinfos; cntr_userinfos_0++) {
469 NDR_CHECK(ndr_pull_wbint_userinfo(ndr, NDR_BUFFERS, &r->userinfos[cntr_userinfos_0]));
471 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_userinfos_0, 0);
473 return NDR_ERR_SUCCESS;
476 _PUBLIC_ void ndr_print_wbint_userinfos(struct ndr_print *ndr, const char *name, const struct wbint_userinfos *r)
478 uint32_t cntr_userinfos_0;
479 ndr_print_struct(ndr, name, "wbint_userinfos");
480 ndr->depth++;
481 ndr_print_uint32(ndr, "num_userinfos", r->num_userinfos);
482 ndr->print(ndr, "%s: ARRAY(%d)", "userinfos", (int)r->num_userinfos);
483 ndr->depth++;
484 for (cntr_userinfos_0=0;cntr_userinfos_0<r->num_userinfos;cntr_userinfos_0++) {
485 char *idx_0=NULL;
486 if (asprintf(&idx_0, "[%d]", cntr_userinfos_0) != -1) {
487 ndr_print_wbint_userinfo(ndr, "userinfos", &r->userinfos[cntr_userinfos_0]);
488 free(idx_0);
491 ndr->depth--;
492 ndr->depth--;
495 static enum ndr_err_code ndr_push_wbint_Ping(struct ndr_push *ndr, int flags, const struct wbint_Ping *r)
497 if (flags & NDR_IN) {
498 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->in.in_data));
500 if (flags & NDR_OUT) {
501 if (r->out.out_data == NULL) {
502 return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
504 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, *r->out.out_data));
506 return NDR_ERR_SUCCESS;
509 static enum ndr_err_code ndr_pull_wbint_Ping(struct ndr_pull *ndr, int flags, struct wbint_Ping *r)
511 TALLOC_CTX *_mem_save_out_data_0;
512 if (flags & NDR_IN) {
513 ZERO_STRUCT(r->out);
515 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->in.in_data));
516 NDR_PULL_ALLOC(ndr, r->out.out_data);
517 ZERO_STRUCTP(r->out.out_data);
519 if (flags & NDR_OUT) {
520 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
521 NDR_PULL_ALLOC(ndr, r->out.out_data);
523 _mem_save_out_data_0 = NDR_PULL_GET_MEM_CTX(ndr);
524 NDR_PULL_SET_MEM_CTX(ndr, r->out.out_data, LIBNDR_FLAG_REF_ALLOC);
525 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, r->out.out_data));
526 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_out_data_0, LIBNDR_FLAG_REF_ALLOC);
528 return NDR_ERR_SUCCESS;
531 _PUBLIC_ void ndr_print_wbint_Ping(struct ndr_print *ndr, const char *name, int flags, const struct wbint_Ping *r)
533 ndr_print_struct(ndr, name, "wbint_Ping");
534 ndr->depth++;
535 if (flags & NDR_SET_VALUES) {
536 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
538 if (flags & NDR_IN) {
539 ndr_print_struct(ndr, "in", "wbint_Ping");
540 ndr->depth++;
541 ndr_print_uint32(ndr, "in_data", r->in.in_data);
542 ndr->depth--;
544 if (flags & NDR_OUT) {
545 ndr_print_struct(ndr, "out", "wbint_Ping");
546 ndr->depth++;
547 ndr_print_ptr(ndr, "out_data", r->out.out_data);
548 ndr->depth++;
549 ndr_print_uint32(ndr, "out_data", *r->out.out_data);
550 ndr->depth--;
551 ndr->depth--;
553 ndr->depth--;
556 static enum ndr_err_code ndr_push_wbint_LookupSid(struct ndr_push *ndr, int flags, const struct wbint_LookupSid *r)
558 if (flags & NDR_IN) {
559 if (r->in.sid == NULL) {
560 return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
562 NDR_CHECK(ndr_push_dom_sid(ndr, NDR_SCALARS, r->in.sid));
564 if (flags & NDR_OUT) {
565 if (r->out.type == NULL) {
566 return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
568 NDR_CHECK(ndr_push_lsa_SidType(ndr, NDR_SCALARS, *r->out.type));
569 if (r->out.domain == NULL) {
570 return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
572 NDR_CHECK(ndr_push_unique_ptr(ndr, *r->out.domain));
573 if (*r->out.domain) {
574 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(*r->out.domain, CH_UTF8)));
575 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0));
576 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(*r->out.domain, CH_UTF8)));
577 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, *r->out.domain, ndr_charset_length(*r->out.domain, CH_UTF8), sizeof(uint8_t), CH_UTF8));
579 if (r->out.name == NULL) {
580 return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
582 NDR_CHECK(ndr_push_unique_ptr(ndr, *r->out.name));
583 if (*r->out.name) {
584 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(*r->out.name, CH_UTF8)));
585 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0));
586 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(*r->out.name, CH_UTF8)));
587 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, *r->out.name, ndr_charset_length(*r->out.name, CH_UTF8), sizeof(uint8_t), CH_UTF8));
589 NDR_CHECK(ndr_push_NTSTATUS(ndr, NDR_SCALARS, r->out.result));
591 return NDR_ERR_SUCCESS;
594 static enum ndr_err_code ndr_pull_wbint_LookupSid(struct ndr_pull *ndr, int flags, struct wbint_LookupSid *r)
596 uint32_t _ptr_domain;
597 uint32_t _ptr_name;
598 TALLOC_CTX *_mem_save_sid_0;
599 TALLOC_CTX *_mem_save_type_0;
600 TALLOC_CTX *_mem_save_domain_0;
601 TALLOC_CTX *_mem_save_domain_1;
602 TALLOC_CTX *_mem_save_name_0;
603 TALLOC_CTX *_mem_save_name_1;
604 if (flags & NDR_IN) {
605 ZERO_STRUCT(r->out);
607 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
608 NDR_PULL_ALLOC(ndr, r->in.sid);
610 _mem_save_sid_0 = NDR_PULL_GET_MEM_CTX(ndr);
611 NDR_PULL_SET_MEM_CTX(ndr, r->in.sid, LIBNDR_FLAG_REF_ALLOC);
612 NDR_CHECK(ndr_pull_dom_sid(ndr, NDR_SCALARS, r->in.sid));
613 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_sid_0, LIBNDR_FLAG_REF_ALLOC);
614 NDR_PULL_ALLOC(ndr, r->out.type);
615 ZERO_STRUCTP(r->out.type);
616 NDR_PULL_ALLOC(ndr, r->out.domain);
617 ZERO_STRUCTP(r->out.domain);
618 NDR_PULL_ALLOC(ndr, r->out.name);
619 ZERO_STRUCTP(r->out.name);
621 if (flags & NDR_OUT) {
622 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
623 NDR_PULL_ALLOC(ndr, r->out.type);
625 _mem_save_type_0 = NDR_PULL_GET_MEM_CTX(ndr);
626 NDR_PULL_SET_MEM_CTX(ndr, r->out.type, LIBNDR_FLAG_REF_ALLOC);
627 NDR_CHECK(ndr_pull_lsa_SidType(ndr, NDR_SCALARS, r->out.type));
628 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_type_0, LIBNDR_FLAG_REF_ALLOC);
629 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
630 NDR_PULL_ALLOC(ndr, r->out.domain);
632 _mem_save_domain_0 = NDR_PULL_GET_MEM_CTX(ndr);
633 NDR_PULL_SET_MEM_CTX(ndr, r->out.domain, LIBNDR_FLAG_REF_ALLOC);
634 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_domain));
635 if (_ptr_domain) {
636 NDR_PULL_ALLOC(ndr, *r->out.domain);
637 } else {
638 *r->out.domain = NULL;
640 if (*r->out.domain) {
641 _mem_save_domain_1 = NDR_PULL_GET_MEM_CTX(ndr);
642 NDR_PULL_SET_MEM_CTX(ndr, *r->out.domain, 0);
643 NDR_CHECK(ndr_pull_array_size(ndr, r->out.domain));
644 NDR_CHECK(ndr_pull_array_length(ndr, r->out.domain));
645 if (ndr_get_array_length(ndr, r->out.domain) > ndr_get_array_size(ndr, r->out.domain)) {
646 return ndr_pull_error(ndr, NDR_ERR_ARRAY_SIZE, "Bad array size %u should exceed array length %u", ndr_get_array_size(ndr, r->out.domain), ndr_get_array_length(ndr, r->out.domain));
648 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, r->out.domain), sizeof(uint8_t)));
649 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, r->out.domain, ndr_get_array_length(ndr, r->out.domain), sizeof(uint8_t), CH_UTF8));
650 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_domain_1, 0);
652 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_domain_0, LIBNDR_FLAG_REF_ALLOC);
653 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
654 NDR_PULL_ALLOC(ndr, r->out.name);
656 _mem_save_name_0 = NDR_PULL_GET_MEM_CTX(ndr);
657 NDR_PULL_SET_MEM_CTX(ndr, r->out.name, LIBNDR_FLAG_REF_ALLOC);
658 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_name));
659 if (_ptr_name) {
660 NDR_PULL_ALLOC(ndr, *r->out.name);
661 } else {
662 *r->out.name = NULL;
664 if (*r->out.name) {
665 _mem_save_name_1 = NDR_PULL_GET_MEM_CTX(ndr);
666 NDR_PULL_SET_MEM_CTX(ndr, *r->out.name, 0);
667 NDR_CHECK(ndr_pull_array_size(ndr, r->out.name));
668 NDR_CHECK(ndr_pull_array_length(ndr, r->out.name));
669 if (ndr_get_array_length(ndr, r->out.name) > ndr_get_array_size(ndr, r->out.name)) {
670 return ndr_pull_error(ndr, NDR_ERR_ARRAY_SIZE, "Bad array size %u should exceed array length %u", ndr_get_array_size(ndr, r->out.name), ndr_get_array_length(ndr, r->out.name));
672 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, r->out.name), sizeof(uint8_t)));
673 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, r->out.name, ndr_get_array_length(ndr, r->out.name), sizeof(uint8_t), CH_UTF8));
674 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_name_1, 0);
676 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_name_0, LIBNDR_FLAG_REF_ALLOC);
677 NDR_CHECK(ndr_pull_NTSTATUS(ndr, NDR_SCALARS, &r->out.result));
679 return NDR_ERR_SUCCESS;
682 _PUBLIC_ void ndr_print_wbint_LookupSid(struct ndr_print *ndr, const char *name, int flags, const struct wbint_LookupSid *r)
684 ndr_print_struct(ndr, name, "wbint_LookupSid");
685 ndr->depth++;
686 if (flags & NDR_SET_VALUES) {
687 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
689 if (flags & NDR_IN) {
690 ndr_print_struct(ndr, "in", "wbint_LookupSid");
691 ndr->depth++;
692 ndr_print_ptr(ndr, "sid", r->in.sid);
693 ndr->depth++;
694 ndr_print_dom_sid(ndr, "sid", r->in.sid);
695 ndr->depth--;
696 ndr->depth--;
698 if (flags & NDR_OUT) {
699 ndr_print_struct(ndr, "out", "wbint_LookupSid");
700 ndr->depth++;
701 ndr_print_ptr(ndr, "type", r->out.type);
702 ndr->depth++;
703 ndr_print_lsa_SidType(ndr, "type", *r->out.type);
704 ndr->depth--;
705 ndr_print_ptr(ndr, "domain", r->out.domain);
706 ndr->depth++;
707 ndr_print_ptr(ndr, "domain", *r->out.domain);
708 ndr->depth++;
709 if (*r->out.domain) {
710 ndr_print_string(ndr, "domain", *r->out.domain);
712 ndr->depth--;
713 ndr->depth--;
714 ndr_print_ptr(ndr, "name", r->out.name);
715 ndr->depth++;
716 ndr_print_ptr(ndr, "name", *r->out.name);
717 ndr->depth++;
718 if (*r->out.name) {
719 ndr_print_string(ndr, "name", *r->out.name);
721 ndr->depth--;
722 ndr->depth--;
723 ndr_print_NTSTATUS(ndr, "result", r->out.result);
724 ndr->depth--;
726 ndr->depth--;
729 static enum ndr_err_code ndr_push_wbint_LookupName(struct ndr_push *ndr, int flags, const struct wbint_LookupName *r)
731 if (flags & NDR_IN) {
732 if (r->in.domain == NULL) {
733 return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
735 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.domain, CH_UTF8)));
736 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0));
737 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.domain, CH_UTF8)));
738 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->in.domain, ndr_charset_length(r->in.domain, CH_UTF8), sizeof(uint8_t), CH_UTF8));
739 if (r->in.name == NULL) {
740 return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
742 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.name, CH_UTF8)));
743 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0));
744 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.name, CH_UTF8)));
745 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->in.name, ndr_charset_length(r->in.name, CH_UTF8), sizeof(uint8_t), CH_UTF8));
746 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->in.flags));
748 if (flags & NDR_OUT) {
749 if (r->out.type == NULL) {
750 return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
752 NDR_CHECK(ndr_push_lsa_SidType(ndr, NDR_SCALARS, *r->out.type));
753 if (r->out.sid == NULL) {
754 return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
756 NDR_CHECK(ndr_push_dom_sid(ndr, NDR_SCALARS, r->out.sid));
757 NDR_CHECK(ndr_push_NTSTATUS(ndr, NDR_SCALARS, r->out.result));
759 return NDR_ERR_SUCCESS;
762 static enum ndr_err_code ndr_pull_wbint_LookupName(struct ndr_pull *ndr, int flags, struct wbint_LookupName *r)
764 TALLOC_CTX *_mem_save_type_0;
765 TALLOC_CTX *_mem_save_sid_0;
766 if (flags & NDR_IN) {
767 ZERO_STRUCT(r->out);
769 NDR_CHECK(ndr_pull_array_size(ndr, &r->in.domain));
770 NDR_CHECK(ndr_pull_array_length(ndr, &r->in.domain));
771 if (ndr_get_array_length(ndr, &r->in.domain) > ndr_get_array_size(ndr, &r->in.domain)) {
772 return ndr_pull_error(ndr, NDR_ERR_ARRAY_SIZE, "Bad array size %u should exceed array length %u", ndr_get_array_size(ndr, &r->in.domain), ndr_get_array_length(ndr, &r->in.domain));
774 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->in.domain), sizeof(uint8_t)));
775 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->in.domain, ndr_get_array_length(ndr, &r->in.domain), sizeof(uint8_t), CH_UTF8));
776 NDR_CHECK(ndr_pull_array_size(ndr, &r->in.name));
777 NDR_CHECK(ndr_pull_array_length(ndr, &r->in.name));
778 if (ndr_get_array_length(ndr, &r->in.name) > ndr_get_array_size(ndr, &r->in.name)) {
779 return ndr_pull_error(ndr, NDR_ERR_ARRAY_SIZE, "Bad array size %u should exceed array length %u", ndr_get_array_size(ndr, &r->in.name), ndr_get_array_length(ndr, &r->in.name));
781 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->in.name), sizeof(uint8_t)));
782 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->in.name, ndr_get_array_length(ndr, &r->in.name), sizeof(uint8_t), CH_UTF8));
783 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->in.flags));
784 NDR_PULL_ALLOC(ndr, r->out.type);
785 ZERO_STRUCTP(r->out.type);
786 NDR_PULL_ALLOC(ndr, r->out.sid);
787 ZERO_STRUCTP(r->out.sid);
789 if (flags & NDR_OUT) {
790 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
791 NDR_PULL_ALLOC(ndr, r->out.type);
793 _mem_save_type_0 = NDR_PULL_GET_MEM_CTX(ndr);
794 NDR_PULL_SET_MEM_CTX(ndr, r->out.type, LIBNDR_FLAG_REF_ALLOC);
795 NDR_CHECK(ndr_pull_lsa_SidType(ndr, NDR_SCALARS, r->out.type));
796 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_type_0, LIBNDR_FLAG_REF_ALLOC);
797 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
798 NDR_PULL_ALLOC(ndr, r->out.sid);
800 _mem_save_sid_0 = NDR_PULL_GET_MEM_CTX(ndr);
801 NDR_PULL_SET_MEM_CTX(ndr, r->out.sid, LIBNDR_FLAG_REF_ALLOC);
802 NDR_CHECK(ndr_pull_dom_sid(ndr, NDR_SCALARS, r->out.sid));
803 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_sid_0, LIBNDR_FLAG_REF_ALLOC);
804 NDR_CHECK(ndr_pull_NTSTATUS(ndr, NDR_SCALARS, &r->out.result));
806 return NDR_ERR_SUCCESS;
809 _PUBLIC_ void ndr_print_wbint_LookupName(struct ndr_print *ndr, const char *name, int flags, const struct wbint_LookupName *r)
811 ndr_print_struct(ndr, name, "wbint_LookupName");
812 ndr->depth++;
813 if (flags & NDR_SET_VALUES) {
814 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
816 if (flags & NDR_IN) {
817 ndr_print_struct(ndr, "in", "wbint_LookupName");
818 ndr->depth++;
819 ndr_print_ptr(ndr, "domain", r->in.domain);
820 ndr->depth++;
821 ndr_print_string(ndr, "domain", r->in.domain);
822 ndr->depth--;
823 ndr_print_ptr(ndr, "name", r->in.name);
824 ndr->depth++;
825 ndr_print_string(ndr, "name", r->in.name);
826 ndr->depth--;
827 ndr_print_uint32(ndr, "flags", r->in.flags);
828 ndr->depth--;
830 if (flags & NDR_OUT) {
831 ndr_print_struct(ndr, "out", "wbint_LookupName");
832 ndr->depth++;
833 ndr_print_ptr(ndr, "type", r->out.type);
834 ndr->depth++;
835 ndr_print_lsa_SidType(ndr, "type", *r->out.type);
836 ndr->depth--;
837 ndr_print_ptr(ndr, "sid", r->out.sid);
838 ndr->depth++;
839 ndr_print_dom_sid(ndr, "sid", r->out.sid);
840 ndr->depth--;
841 ndr_print_NTSTATUS(ndr, "result", r->out.result);
842 ndr->depth--;
844 ndr->depth--;
847 static enum ndr_err_code ndr_push_wbint_Sid2Uid(struct ndr_push *ndr, int flags, const struct wbint_Sid2Uid *r)
849 if (flags & NDR_IN) {
850 NDR_CHECK(ndr_push_unique_ptr(ndr, r->in.dom_name));
851 if (r->in.dom_name) {
852 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.dom_name, CH_UTF8)));
853 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0));
854 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.dom_name, CH_UTF8)));
855 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->in.dom_name, ndr_charset_length(r->in.dom_name, CH_UTF8), sizeof(uint8_t), CH_UTF8));
857 if (r->in.sid == NULL) {
858 return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
860 NDR_CHECK(ndr_push_dom_sid(ndr, NDR_SCALARS, r->in.sid));
862 if (flags & NDR_OUT) {
863 if (r->out.uid == NULL) {
864 return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
866 NDR_CHECK(ndr_push_hyper(ndr, NDR_SCALARS, *r->out.uid));
867 NDR_CHECK(ndr_push_NTSTATUS(ndr, NDR_SCALARS, r->out.result));
869 return NDR_ERR_SUCCESS;
872 static enum ndr_err_code ndr_pull_wbint_Sid2Uid(struct ndr_pull *ndr, int flags, struct wbint_Sid2Uid *r)
874 uint32_t _ptr_dom_name;
875 TALLOC_CTX *_mem_save_dom_name_0;
876 TALLOC_CTX *_mem_save_sid_0;
877 TALLOC_CTX *_mem_save_uid_0;
878 if (flags & NDR_IN) {
879 ZERO_STRUCT(r->out);
881 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_dom_name));
882 if (_ptr_dom_name) {
883 NDR_PULL_ALLOC(ndr, r->in.dom_name);
884 } else {
885 r->in.dom_name = NULL;
887 if (r->in.dom_name) {
888 _mem_save_dom_name_0 = NDR_PULL_GET_MEM_CTX(ndr);
889 NDR_PULL_SET_MEM_CTX(ndr, r->in.dom_name, 0);
890 NDR_CHECK(ndr_pull_array_size(ndr, &r->in.dom_name));
891 NDR_CHECK(ndr_pull_array_length(ndr, &r->in.dom_name));
892 if (ndr_get_array_length(ndr, &r->in.dom_name) > ndr_get_array_size(ndr, &r->in.dom_name)) {
893 return ndr_pull_error(ndr, NDR_ERR_ARRAY_SIZE, "Bad array size %u should exceed array length %u", ndr_get_array_size(ndr, &r->in.dom_name), ndr_get_array_length(ndr, &r->in.dom_name));
895 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->in.dom_name), sizeof(uint8_t)));
896 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->in.dom_name, ndr_get_array_length(ndr, &r->in.dom_name), sizeof(uint8_t), CH_UTF8));
897 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_dom_name_0, 0);
899 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
900 NDR_PULL_ALLOC(ndr, r->in.sid);
902 _mem_save_sid_0 = NDR_PULL_GET_MEM_CTX(ndr);
903 NDR_PULL_SET_MEM_CTX(ndr, r->in.sid, LIBNDR_FLAG_REF_ALLOC);
904 NDR_CHECK(ndr_pull_dom_sid(ndr, NDR_SCALARS, r->in.sid));
905 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_sid_0, LIBNDR_FLAG_REF_ALLOC);
906 NDR_PULL_ALLOC(ndr, r->out.uid);
907 ZERO_STRUCTP(r->out.uid);
909 if (flags & NDR_OUT) {
910 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
911 NDR_PULL_ALLOC(ndr, r->out.uid);
913 _mem_save_uid_0 = NDR_PULL_GET_MEM_CTX(ndr);
914 NDR_PULL_SET_MEM_CTX(ndr, r->out.uid, LIBNDR_FLAG_REF_ALLOC);
915 NDR_CHECK(ndr_pull_hyper(ndr, NDR_SCALARS, r->out.uid));
916 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_uid_0, LIBNDR_FLAG_REF_ALLOC);
917 NDR_CHECK(ndr_pull_NTSTATUS(ndr, NDR_SCALARS, &r->out.result));
919 return NDR_ERR_SUCCESS;
922 _PUBLIC_ void ndr_print_wbint_Sid2Uid(struct ndr_print *ndr, const char *name, int flags, const struct wbint_Sid2Uid *r)
924 ndr_print_struct(ndr, name, "wbint_Sid2Uid");
925 ndr->depth++;
926 if (flags & NDR_SET_VALUES) {
927 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
929 if (flags & NDR_IN) {
930 ndr_print_struct(ndr, "in", "wbint_Sid2Uid");
931 ndr->depth++;
932 ndr_print_ptr(ndr, "dom_name", r->in.dom_name);
933 ndr->depth++;
934 if (r->in.dom_name) {
935 ndr_print_string(ndr, "dom_name", r->in.dom_name);
937 ndr->depth--;
938 ndr_print_ptr(ndr, "sid", r->in.sid);
939 ndr->depth++;
940 ndr_print_dom_sid(ndr, "sid", r->in.sid);
941 ndr->depth--;
942 ndr->depth--;
944 if (flags & NDR_OUT) {
945 ndr_print_struct(ndr, "out", "wbint_Sid2Uid");
946 ndr->depth++;
947 ndr_print_ptr(ndr, "uid", r->out.uid);
948 ndr->depth++;
949 ndr_print_hyper(ndr, "uid", *r->out.uid);
950 ndr->depth--;
951 ndr_print_NTSTATUS(ndr, "result", r->out.result);
952 ndr->depth--;
954 ndr->depth--;
957 static enum ndr_err_code ndr_push_wbint_Sid2Gid(struct ndr_push *ndr, int flags, const struct wbint_Sid2Gid *r)
959 if (flags & NDR_IN) {
960 NDR_CHECK(ndr_push_unique_ptr(ndr, r->in.dom_name));
961 if (r->in.dom_name) {
962 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.dom_name, CH_UTF8)));
963 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0));
964 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.dom_name, CH_UTF8)));
965 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->in.dom_name, ndr_charset_length(r->in.dom_name, CH_UTF8), sizeof(uint8_t), CH_UTF8));
967 if (r->in.sid == NULL) {
968 return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
970 NDR_CHECK(ndr_push_dom_sid(ndr, NDR_SCALARS, r->in.sid));
972 if (flags & NDR_OUT) {
973 if (r->out.gid == NULL) {
974 return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
976 NDR_CHECK(ndr_push_hyper(ndr, NDR_SCALARS, *r->out.gid));
977 NDR_CHECK(ndr_push_NTSTATUS(ndr, NDR_SCALARS, r->out.result));
979 return NDR_ERR_SUCCESS;
982 static enum ndr_err_code ndr_pull_wbint_Sid2Gid(struct ndr_pull *ndr, int flags, struct wbint_Sid2Gid *r)
984 uint32_t _ptr_dom_name;
985 TALLOC_CTX *_mem_save_dom_name_0;
986 TALLOC_CTX *_mem_save_sid_0;
987 TALLOC_CTX *_mem_save_gid_0;
988 if (flags & NDR_IN) {
989 ZERO_STRUCT(r->out);
991 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_dom_name));
992 if (_ptr_dom_name) {
993 NDR_PULL_ALLOC(ndr, r->in.dom_name);
994 } else {
995 r->in.dom_name = NULL;
997 if (r->in.dom_name) {
998 _mem_save_dom_name_0 = NDR_PULL_GET_MEM_CTX(ndr);
999 NDR_PULL_SET_MEM_CTX(ndr, r->in.dom_name, 0);
1000 NDR_CHECK(ndr_pull_array_size(ndr, &r->in.dom_name));
1001 NDR_CHECK(ndr_pull_array_length(ndr, &r->in.dom_name));
1002 if (ndr_get_array_length(ndr, &r->in.dom_name) > ndr_get_array_size(ndr, &r->in.dom_name)) {
1003 return ndr_pull_error(ndr, NDR_ERR_ARRAY_SIZE, "Bad array size %u should exceed array length %u", ndr_get_array_size(ndr, &r->in.dom_name), ndr_get_array_length(ndr, &r->in.dom_name));
1005 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->in.dom_name), sizeof(uint8_t)));
1006 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->in.dom_name, ndr_get_array_length(ndr, &r->in.dom_name), sizeof(uint8_t), CH_UTF8));
1007 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_dom_name_0, 0);
1009 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
1010 NDR_PULL_ALLOC(ndr, r->in.sid);
1012 _mem_save_sid_0 = NDR_PULL_GET_MEM_CTX(ndr);
1013 NDR_PULL_SET_MEM_CTX(ndr, r->in.sid, LIBNDR_FLAG_REF_ALLOC);
1014 NDR_CHECK(ndr_pull_dom_sid(ndr, NDR_SCALARS, r->in.sid));
1015 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_sid_0, LIBNDR_FLAG_REF_ALLOC);
1016 NDR_PULL_ALLOC(ndr, r->out.gid);
1017 ZERO_STRUCTP(r->out.gid);
1019 if (flags & NDR_OUT) {
1020 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
1021 NDR_PULL_ALLOC(ndr, r->out.gid);
1023 _mem_save_gid_0 = NDR_PULL_GET_MEM_CTX(ndr);
1024 NDR_PULL_SET_MEM_CTX(ndr, r->out.gid, LIBNDR_FLAG_REF_ALLOC);
1025 NDR_CHECK(ndr_pull_hyper(ndr, NDR_SCALARS, r->out.gid));
1026 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_gid_0, LIBNDR_FLAG_REF_ALLOC);
1027 NDR_CHECK(ndr_pull_NTSTATUS(ndr, NDR_SCALARS, &r->out.result));
1029 return NDR_ERR_SUCCESS;
1032 _PUBLIC_ void ndr_print_wbint_Sid2Gid(struct ndr_print *ndr, const char *name, int flags, const struct wbint_Sid2Gid *r)
1034 ndr_print_struct(ndr, name, "wbint_Sid2Gid");
1035 ndr->depth++;
1036 if (flags & NDR_SET_VALUES) {
1037 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
1039 if (flags & NDR_IN) {
1040 ndr_print_struct(ndr, "in", "wbint_Sid2Gid");
1041 ndr->depth++;
1042 ndr_print_ptr(ndr, "dom_name", r->in.dom_name);
1043 ndr->depth++;
1044 if (r->in.dom_name) {
1045 ndr_print_string(ndr, "dom_name", r->in.dom_name);
1047 ndr->depth--;
1048 ndr_print_ptr(ndr, "sid", r->in.sid);
1049 ndr->depth++;
1050 ndr_print_dom_sid(ndr, "sid", r->in.sid);
1051 ndr->depth--;
1052 ndr->depth--;
1054 if (flags & NDR_OUT) {
1055 ndr_print_struct(ndr, "out", "wbint_Sid2Gid");
1056 ndr->depth++;
1057 ndr_print_ptr(ndr, "gid", r->out.gid);
1058 ndr->depth++;
1059 ndr_print_hyper(ndr, "gid", *r->out.gid);
1060 ndr->depth--;
1061 ndr_print_NTSTATUS(ndr, "result", r->out.result);
1062 ndr->depth--;
1064 ndr->depth--;
1067 static enum ndr_err_code ndr_push_wbint_Uid2Sid(struct ndr_push *ndr, int flags, const struct wbint_Uid2Sid *r)
1069 if (flags & NDR_IN) {
1070 NDR_CHECK(ndr_push_unique_ptr(ndr, r->in.dom_name));
1071 if (r->in.dom_name) {
1072 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.dom_name, CH_UTF8)));
1073 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0));
1074 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.dom_name, CH_UTF8)));
1075 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->in.dom_name, ndr_charset_length(r->in.dom_name, CH_UTF8), sizeof(uint8_t), CH_UTF8));
1077 NDR_CHECK(ndr_push_hyper(ndr, NDR_SCALARS, r->in.uid));
1079 if (flags & NDR_OUT) {
1080 if (r->out.sid == NULL) {
1081 return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
1083 NDR_CHECK(ndr_push_dom_sid(ndr, NDR_SCALARS, r->out.sid));
1084 NDR_CHECK(ndr_push_NTSTATUS(ndr, NDR_SCALARS, r->out.result));
1086 return NDR_ERR_SUCCESS;
1089 static enum ndr_err_code ndr_pull_wbint_Uid2Sid(struct ndr_pull *ndr, int flags, struct wbint_Uid2Sid *r)
1091 uint32_t _ptr_dom_name;
1092 TALLOC_CTX *_mem_save_dom_name_0;
1093 TALLOC_CTX *_mem_save_sid_0;
1094 if (flags & NDR_IN) {
1095 ZERO_STRUCT(r->out);
1097 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_dom_name));
1098 if (_ptr_dom_name) {
1099 NDR_PULL_ALLOC(ndr, r->in.dom_name);
1100 } else {
1101 r->in.dom_name = NULL;
1103 if (r->in.dom_name) {
1104 _mem_save_dom_name_0 = NDR_PULL_GET_MEM_CTX(ndr);
1105 NDR_PULL_SET_MEM_CTX(ndr, r->in.dom_name, 0);
1106 NDR_CHECK(ndr_pull_array_size(ndr, &r->in.dom_name));
1107 NDR_CHECK(ndr_pull_array_length(ndr, &r->in.dom_name));
1108 if (ndr_get_array_length(ndr, &r->in.dom_name) > ndr_get_array_size(ndr, &r->in.dom_name)) {
1109 return ndr_pull_error(ndr, NDR_ERR_ARRAY_SIZE, "Bad array size %u should exceed array length %u", ndr_get_array_size(ndr, &r->in.dom_name), ndr_get_array_length(ndr, &r->in.dom_name));
1111 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->in.dom_name), sizeof(uint8_t)));
1112 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->in.dom_name, ndr_get_array_length(ndr, &r->in.dom_name), sizeof(uint8_t), CH_UTF8));
1113 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_dom_name_0, 0);
1115 NDR_CHECK(ndr_pull_hyper(ndr, NDR_SCALARS, &r->in.uid));
1116 NDR_PULL_ALLOC(ndr, r->out.sid);
1117 ZERO_STRUCTP(r->out.sid);
1119 if (flags & NDR_OUT) {
1120 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
1121 NDR_PULL_ALLOC(ndr, r->out.sid);
1123 _mem_save_sid_0 = NDR_PULL_GET_MEM_CTX(ndr);
1124 NDR_PULL_SET_MEM_CTX(ndr, r->out.sid, LIBNDR_FLAG_REF_ALLOC);
1125 NDR_CHECK(ndr_pull_dom_sid(ndr, NDR_SCALARS, r->out.sid));
1126 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_sid_0, LIBNDR_FLAG_REF_ALLOC);
1127 NDR_CHECK(ndr_pull_NTSTATUS(ndr, NDR_SCALARS, &r->out.result));
1129 return NDR_ERR_SUCCESS;
1132 _PUBLIC_ void ndr_print_wbint_Uid2Sid(struct ndr_print *ndr, const char *name, int flags, const struct wbint_Uid2Sid *r)
1134 ndr_print_struct(ndr, name, "wbint_Uid2Sid");
1135 ndr->depth++;
1136 if (flags & NDR_SET_VALUES) {
1137 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
1139 if (flags & NDR_IN) {
1140 ndr_print_struct(ndr, "in", "wbint_Uid2Sid");
1141 ndr->depth++;
1142 ndr_print_ptr(ndr, "dom_name", r->in.dom_name);
1143 ndr->depth++;
1144 if (r->in.dom_name) {
1145 ndr_print_string(ndr, "dom_name", r->in.dom_name);
1147 ndr->depth--;
1148 ndr_print_hyper(ndr, "uid", r->in.uid);
1149 ndr->depth--;
1151 if (flags & NDR_OUT) {
1152 ndr_print_struct(ndr, "out", "wbint_Uid2Sid");
1153 ndr->depth++;
1154 ndr_print_ptr(ndr, "sid", r->out.sid);
1155 ndr->depth++;
1156 ndr_print_dom_sid(ndr, "sid", r->out.sid);
1157 ndr->depth--;
1158 ndr_print_NTSTATUS(ndr, "result", r->out.result);
1159 ndr->depth--;
1161 ndr->depth--;
1164 static enum ndr_err_code ndr_push_wbint_Gid2Sid(struct ndr_push *ndr, int flags, const struct wbint_Gid2Sid *r)
1166 if (flags & NDR_IN) {
1167 NDR_CHECK(ndr_push_unique_ptr(ndr, r->in.dom_name));
1168 if (r->in.dom_name) {
1169 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.dom_name, CH_UTF8)));
1170 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0));
1171 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.dom_name, CH_UTF8)));
1172 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->in.dom_name, ndr_charset_length(r->in.dom_name, CH_UTF8), sizeof(uint8_t), CH_UTF8));
1174 NDR_CHECK(ndr_push_hyper(ndr, NDR_SCALARS, r->in.gid));
1176 if (flags & NDR_OUT) {
1177 if (r->out.sid == NULL) {
1178 return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
1180 NDR_CHECK(ndr_push_dom_sid(ndr, NDR_SCALARS, r->out.sid));
1181 NDR_CHECK(ndr_push_NTSTATUS(ndr, NDR_SCALARS, r->out.result));
1183 return NDR_ERR_SUCCESS;
1186 static enum ndr_err_code ndr_pull_wbint_Gid2Sid(struct ndr_pull *ndr, int flags, struct wbint_Gid2Sid *r)
1188 uint32_t _ptr_dom_name;
1189 TALLOC_CTX *_mem_save_dom_name_0;
1190 TALLOC_CTX *_mem_save_sid_0;
1191 if (flags & NDR_IN) {
1192 ZERO_STRUCT(r->out);
1194 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_dom_name));
1195 if (_ptr_dom_name) {
1196 NDR_PULL_ALLOC(ndr, r->in.dom_name);
1197 } else {
1198 r->in.dom_name = NULL;
1200 if (r->in.dom_name) {
1201 _mem_save_dom_name_0 = NDR_PULL_GET_MEM_CTX(ndr);
1202 NDR_PULL_SET_MEM_CTX(ndr, r->in.dom_name, 0);
1203 NDR_CHECK(ndr_pull_array_size(ndr, &r->in.dom_name));
1204 NDR_CHECK(ndr_pull_array_length(ndr, &r->in.dom_name));
1205 if (ndr_get_array_length(ndr, &r->in.dom_name) > ndr_get_array_size(ndr, &r->in.dom_name)) {
1206 return ndr_pull_error(ndr, NDR_ERR_ARRAY_SIZE, "Bad array size %u should exceed array length %u", ndr_get_array_size(ndr, &r->in.dom_name), ndr_get_array_length(ndr, &r->in.dom_name));
1208 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->in.dom_name), sizeof(uint8_t)));
1209 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->in.dom_name, ndr_get_array_length(ndr, &r->in.dom_name), sizeof(uint8_t), CH_UTF8));
1210 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_dom_name_0, 0);
1212 NDR_CHECK(ndr_pull_hyper(ndr, NDR_SCALARS, &r->in.gid));
1213 NDR_PULL_ALLOC(ndr, r->out.sid);
1214 ZERO_STRUCTP(r->out.sid);
1216 if (flags & NDR_OUT) {
1217 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
1218 NDR_PULL_ALLOC(ndr, r->out.sid);
1220 _mem_save_sid_0 = NDR_PULL_GET_MEM_CTX(ndr);
1221 NDR_PULL_SET_MEM_CTX(ndr, r->out.sid, LIBNDR_FLAG_REF_ALLOC);
1222 NDR_CHECK(ndr_pull_dom_sid(ndr, NDR_SCALARS, r->out.sid));
1223 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_sid_0, LIBNDR_FLAG_REF_ALLOC);
1224 NDR_CHECK(ndr_pull_NTSTATUS(ndr, NDR_SCALARS, &r->out.result));
1226 return NDR_ERR_SUCCESS;
1229 _PUBLIC_ void ndr_print_wbint_Gid2Sid(struct ndr_print *ndr, const char *name, int flags, const struct wbint_Gid2Sid *r)
1231 ndr_print_struct(ndr, name, "wbint_Gid2Sid");
1232 ndr->depth++;
1233 if (flags & NDR_SET_VALUES) {
1234 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
1236 if (flags & NDR_IN) {
1237 ndr_print_struct(ndr, "in", "wbint_Gid2Sid");
1238 ndr->depth++;
1239 ndr_print_ptr(ndr, "dom_name", r->in.dom_name);
1240 ndr->depth++;
1241 if (r->in.dom_name) {
1242 ndr_print_string(ndr, "dom_name", r->in.dom_name);
1244 ndr->depth--;
1245 ndr_print_hyper(ndr, "gid", r->in.gid);
1246 ndr->depth--;
1248 if (flags & NDR_OUT) {
1249 ndr_print_struct(ndr, "out", "wbint_Gid2Sid");
1250 ndr->depth++;
1251 ndr_print_ptr(ndr, "sid", r->out.sid);
1252 ndr->depth++;
1253 ndr_print_dom_sid(ndr, "sid", r->out.sid);
1254 ndr->depth--;
1255 ndr_print_NTSTATUS(ndr, "result", r->out.result);
1256 ndr->depth--;
1258 ndr->depth--;
1261 static enum ndr_err_code ndr_push_wbint_QueryUser(struct ndr_push *ndr, int flags, const struct wbint_QueryUser *r)
1263 if (flags & NDR_IN) {
1264 if (r->in.sid == NULL) {
1265 return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
1267 NDR_CHECK(ndr_push_dom_sid(ndr, NDR_SCALARS, r->in.sid));
1269 if (flags & NDR_OUT) {
1270 if (r->out.info == NULL) {
1271 return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
1273 NDR_CHECK(ndr_push_wbint_userinfo(ndr, NDR_SCALARS|NDR_BUFFERS, r->out.info));
1274 NDR_CHECK(ndr_push_NTSTATUS(ndr, NDR_SCALARS, r->out.result));
1276 return NDR_ERR_SUCCESS;
1279 static enum ndr_err_code ndr_pull_wbint_QueryUser(struct ndr_pull *ndr, int flags, struct wbint_QueryUser *r)
1281 TALLOC_CTX *_mem_save_sid_0;
1282 TALLOC_CTX *_mem_save_info_0;
1283 if (flags & NDR_IN) {
1284 ZERO_STRUCT(r->out);
1286 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
1287 NDR_PULL_ALLOC(ndr, r->in.sid);
1289 _mem_save_sid_0 = NDR_PULL_GET_MEM_CTX(ndr);
1290 NDR_PULL_SET_MEM_CTX(ndr, r->in.sid, LIBNDR_FLAG_REF_ALLOC);
1291 NDR_CHECK(ndr_pull_dom_sid(ndr, NDR_SCALARS, r->in.sid));
1292 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_sid_0, LIBNDR_FLAG_REF_ALLOC);
1293 NDR_PULL_ALLOC(ndr, r->out.info);
1294 ZERO_STRUCTP(r->out.info);
1296 if (flags & NDR_OUT) {
1297 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
1298 NDR_PULL_ALLOC(ndr, r->out.info);
1300 _mem_save_info_0 = NDR_PULL_GET_MEM_CTX(ndr);
1301 NDR_PULL_SET_MEM_CTX(ndr, r->out.info, LIBNDR_FLAG_REF_ALLOC);
1302 NDR_CHECK(ndr_pull_wbint_userinfo(ndr, NDR_SCALARS|NDR_BUFFERS, r->out.info));
1303 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_info_0, LIBNDR_FLAG_REF_ALLOC);
1304 NDR_CHECK(ndr_pull_NTSTATUS(ndr, NDR_SCALARS, &r->out.result));
1306 return NDR_ERR_SUCCESS;
1309 _PUBLIC_ void ndr_print_wbint_QueryUser(struct ndr_print *ndr, const char *name, int flags, const struct wbint_QueryUser *r)
1311 ndr_print_struct(ndr, name, "wbint_QueryUser");
1312 ndr->depth++;
1313 if (flags & NDR_SET_VALUES) {
1314 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
1316 if (flags & NDR_IN) {
1317 ndr_print_struct(ndr, "in", "wbint_QueryUser");
1318 ndr->depth++;
1319 ndr_print_ptr(ndr, "sid", r->in.sid);
1320 ndr->depth++;
1321 ndr_print_dom_sid(ndr, "sid", r->in.sid);
1322 ndr->depth--;
1323 ndr->depth--;
1325 if (flags & NDR_OUT) {
1326 ndr_print_struct(ndr, "out", "wbint_QueryUser");
1327 ndr->depth++;
1328 ndr_print_ptr(ndr, "info", r->out.info);
1329 ndr->depth++;
1330 ndr_print_wbint_userinfo(ndr, "info", r->out.info);
1331 ndr->depth--;
1332 ndr_print_NTSTATUS(ndr, "result", r->out.result);
1333 ndr->depth--;
1335 ndr->depth--;
1338 static enum ndr_err_code ndr_push_wbint_LookupUserAliases(struct ndr_push *ndr, int flags, const struct wbint_LookupUserAliases *r)
1340 if (flags & NDR_IN) {
1341 if (r->in.sids == NULL) {
1342 return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
1344 NDR_CHECK(ndr_push_wbint_SidArray(ndr, NDR_SCALARS, r->in.sids));
1346 if (flags & NDR_OUT) {
1347 if (r->out.rids == NULL) {
1348 return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
1350 NDR_CHECK(ndr_push_wbint_RidArray(ndr, NDR_SCALARS, r->out.rids));
1351 NDR_CHECK(ndr_push_NTSTATUS(ndr, NDR_SCALARS, r->out.result));
1353 return NDR_ERR_SUCCESS;
1356 static enum ndr_err_code ndr_pull_wbint_LookupUserAliases(struct ndr_pull *ndr, int flags, struct wbint_LookupUserAliases *r)
1358 TALLOC_CTX *_mem_save_sids_0;
1359 TALLOC_CTX *_mem_save_rids_0;
1360 if (flags & NDR_IN) {
1361 ZERO_STRUCT(r->out);
1363 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
1364 NDR_PULL_ALLOC(ndr, r->in.sids);
1366 _mem_save_sids_0 = NDR_PULL_GET_MEM_CTX(ndr);
1367 NDR_PULL_SET_MEM_CTX(ndr, r->in.sids, LIBNDR_FLAG_REF_ALLOC);
1368 NDR_CHECK(ndr_pull_wbint_SidArray(ndr, NDR_SCALARS, r->in.sids));
1369 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_sids_0, LIBNDR_FLAG_REF_ALLOC);
1370 NDR_PULL_ALLOC(ndr, r->out.rids);
1371 ZERO_STRUCTP(r->out.rids);
1373 if (flags & NDR_OUT) {
1374 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
1375 NDR_PULL_ALLOC(ndr, r->out.rids);
1377 _mem_save_rids_0 = NDR_PULL_GET_MEM_CTX(ndr);
1378 NDR_PULL_SET_MEM_CTX(ndr, r->out.rids, LIBNDR_FLAG_REF_ALLOC);
1379 NDR_CHECK(ndr_pull_wbint_RidArray(ndr, NDR_SCALARS, r->out.rids));
1380 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_rids_0, LIBNDR_FLAG_REF_ALLOC);
1381 NDR_CHECK(ndr_pull_NTSTATUS(ndr, NDR_SCALARS, &r->out.result));
1383 return NDR_ERR_SUCCESS;
1386 _PUBLIC_ void ndr_print_wbint_LookupUserAliases(struct ndr_print *ndr, const char *name, int flags, const struct wbint_LookupUserAliases *r)
1388 ndr_print_struct(ndr, name, "wbint_LookupUserAliases");
1389 ndr->depth++;
1390 if (flags & NDR_SET_VALUES) {
1391 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
1393 if (flags & NDR_IN) {
1394 ndr_print_struct(ndr, "in", "wbint_LookupUserAliases");
1395 ndr->depth++;
1396 ndr_print_ptr(ndr, "sids", r->in.sids);
1397 ndr->depth++;
1398 ndr_print_wbint_SidArray(ndr, "sids", r->in.sids);
1399 ndr->depth--;
1400 ndr->depth--;
1402 if (flags & NDR_OUT) {
1403 ndr_print_struct(ndr, "out", "wbint_LookupUserAliases");
1404 ndr->depth++;
1405 ndr_print_ptr(ndr, "rids", r->out.rids);
1406 ndr->depth++;
1407 ndr_print_wbint_RidArray(ndr, "rids", r->out.rids);
1408 ndr->depth--;
1409 ndr_print_NTSTATUS(ndr, "result", r->out.result);
1410 ndr->depth--;
1412 ndr->depth--;
1415 static enum ndr_err_code ndr_push_wbint_LookupUserGroups(struct ndr_push *ndr, int flags, const struct wbint_LookupUserGroups *r)
1417 if (flags & NDR_IN) {
1418 if (r->in.sid == NULL) {
1419 return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
1421 NDR_CHECK(ndr_push_dom_sid(ndr, NDR_SCALARS, r->in.sid));
1423 if (flags & NDR_OUT) {
1424 if (r->out.sids == NULL) {
1425 return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
1427 NDR_CHECK(ndr_push_wbint_SidArray(ndr, NDR_SCALARS, r->out.sids));
1428 NDR_CHECK(ndr_push_NTSTATUS(ndr, NDR_SCALARS, r->out.result));
1430 return NDR_ERR_SUCCESS;
1433 static enum ndr_err_code ndr_pull_wbint_LookupUserGroups(struct ndr_pull *ndr, int flags, struct wbint_LookupUserGroups *r)
1435 TALLOC_CTX *_mem_save_sid_0;
1436 TALLOC_CTX *_mem_save_sids_0;
1437 if (flags & NDR_IN) {
1438 ZERO_STRUCT(r->out);
1440 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
1441 NDR_PULL_ALLOC(ndr, r->in.sid);
1443 _mem_save_sid_0 = NDR_PULL_GET_MEM_CTX(ndr);
1444 NDR_PULL_SET_MEM_CTX(ndr, r->in.sid, LIBNDR_FLAG_REF_ALLOC);
1445 NDR_CHECK(ndr_pull_dom_sid(ndr, NDR_SCALARS, r->in.sid));
1446 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_sid_0, LIBNDR_FLAG_REF_ALLOC);
1447 NDR_PULL_ALLOC(ndr, r->out.sids);
1448 ZERO_STRUCTP(r->out.sids);
1450 if (flags & NDR_OUT) {
1451 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
1452 NDR_PULL_ALLOC(ndr, r->out.sids);
1454 _mem_save_sids_0 = NDR_PULL_GET_MEM_CTX(ndr);
1455 NDR_PULL_SET_MEM_CTX(ndr, r->out.sids, LIBNDR_FLAG_REF_ALLOC);
1456 NDR_CHECK(ndr_pull_wbint_SidArray(ndr, NDR_SCALARS, r->out.sids));
1457 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_sids_0, LIBNDR_FLAG_REF_ALLOC);
1458 NDR_CHECK(ndr_pull_NTSTATUS(ndr, NDR_SCALARS, &r->out.result));
1460 return NDR_ERR_SUCCESS;
1463 _PUBLIC_ void ndr_print_wbint_LookupUserGroups(struct ndr_print *ndr, const char *name, int flags, const struct wbint_LookupUserGroups *r)
1465 ndr_print_struct(ndr, name, "wbint_LookupUserGroups");
1466 ndr->depth++;
1467 if (flags & NDR_SET_VALUES) {
1468 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
1470 if (flags & NDR_IN) {
1471 ndr_print_struct(ndr, "in", "wbint_LookupUserGroups");
1472 ndr->depth++;
1473 ndr_print_ptr(ndr, "sid", r->in.sid);
1474 ndr->depth++;
1475 ndr_print_dom_sid(ndr, "sid", r->in.sid);
1476 ndr->depth--;
1477 ndr->depth--;
1479 if (flags & NDR_OUT) {
1480 ndr_print_struct(ndr, "out", "wbint_LookupUserGroups");
1481 ndr->depth++;
1482 ndr_print_ptr(ndr, "sids", r->out.sids);
1483 ndr->depth++;
1484 ndr_print_wbint_SidArray(ndr, "sids", r->out.sids);
1485 ndr->depth--;
1486 ndr_print_NTSTATUS(ndr, "result", r->out.result);
1487 ndr->depth--;
1489 ndr->depth--;
1492 static enum ndr_err_code ndr_push_wbint_QuerySequenceNumber(struct ndr_push *ndr, int flags, const struct wbint_QuerySequenceNumber *r)
1494 if (flags & NDR_IN) {
1496 if (flags & NDR_OUT) {
1497 if (r->out.sequence == NULL) {
1498 return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
1500 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, *r->out.sequence));
1501 NDR_CHECK(ndr_push_NTSTATUS(ndr, NDR_SCALARS, r->out.result));
1503 return NDR_ERR_SUCCESS;
1506 static enum ndr_err_code ndr_pull_wbint_QuerySequenceNumber(struct ndr_pull *ndr, int flags, struct wbint_QuerySequenceNumber *r)
1508 TALLOC_CTX *_mem_save_sequence_0;
1509 if (flags & NDR_IN) {
1510 ZERO_STRUCT(r->out);
1512 NDR_PULL_ALLOC(ndr, r->out.sequence);
1513 ZERO_STRUCTP(r->out.sequence);
1515 if (flags & NDR_OUT) {
1516 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
1517 NDR_PULL_ALLOC(ndr, r->out.sequence);
1519 _mem_save_sequence_0 = NDR_PULL_GET_MEM_CTX(ndr);
1520 NDR_PULL_SET_MEM_CTX(ndr, r->out.sequence, LIBNDR_FLAG_REF_ALLOC);
1521 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, r->out.sequence));
1522 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_sequence_0, LIBNDR_FLAG_REF_ALLOC);
1523 NDR_CHECK(ndr_pull_NTSTATUS(ndr, NDR_SCALARS, &r->out.result));
1525 return NDR_ERR_SUCCESS;
1528 _PUBLIC_ void ndr_print_wbint_QuerySequenceNumber(struct ndr_print *ndr, const char *name, int flags, const struct wbint_QuerySequenceNumber *r)
1530 ndr_print_struct(ndr, name, "wbint_QuerySequenceNumber");
1531 ndr->depth++;
1532 if (flags & NDR_SET_VALUES) {
1533 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
1535 if (flags & NDR_IN) {
1536 ndr_print_struct(ndr, "in", "wbint_QuerySequenceNumber");
1537 ndr->depth++;
1538 ndr->depth--;
1540 if (flags & NDR_OUT) {
1541 ndr_print_struct(ndr, "out", "wbint_QuerySequenceNumber");
1542 ndr->depth++;
1543 ndr_print_ptr(ndr, "sequence", r->out.sequence);
1544 ndr->depth++;
1545 ndr_print_uint32(ndr, "sequence", *r->out.sequence);
1546 ndr->depth--;
1547 ndr_print_NTSTATUS(ndr, "result", r->out.result);
1548 ndr->depth--;
1550 ndr->depth--;
1553 static enum ndr_err_code ndr_push_wbint_LookupGroupMembers(struct ndr_push *ndr, int flags, const struct wbint_LookupGroupMembers *r)
1555 if (flags & NDR_IN) {
1556 if (r->in.sid == NULL) {
1557 return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
1559 NDR_CHECK(ndr_push_dom_sid(ndr, NDR_SCALARS, r->in.sid));
1560 NDR_CHECK(ndr_push_lsa_SidType(ndr, NDR_SCALARS, r->in.type));
1562 if (flags & NDR_OUT) {
1563 if (r->out.members == NULL) {
1564 return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
1566 NDR_CHECK(ndr_push_wbint_Principals(ndr, NDR_SCALARS|NDR_BUFFERS, r->out.members));
1567 NDR_CHECK(ndr_push_NTSTATUS(ndr, NDR_SCALARS, r->out.result));
1569 return NDR_ERR_SUCCESS;
1572 static enum ndr_err_code ndr_pull_wbint_LookupGroupMembers(struct ndr_pull *ndr, int flags, struct wbint_LookupGroupMembers *r)
1574 TALLOC_CTX *_mem_save_sid_0;
1575 TALLOC_CTX *_mem_save_members_0;
1576 if (flags & NDR_IN) {
1577 ZERO_STRUCT(r->out);
1579 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
1580 NDR_PULL_ALLOC(ndr, r->in.sid);
1582 _mem_save_sid_0 = NDR_PULL_GET_MEM_CTX(ndr);
1583 NDR_PULL_SET_MEM_CTX(ndr, r->in.sid, LIBNDR_FLAG_REF_ALLOC);
1584 NDR_CHECK(ndr_pull_dom_sid(ndr, NDR_SCALARS, r->in.sid));
1585 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_sid_0, LIBNDR_FLAG_REF_ALLOC);
1586 NDR_CHECK(ndr_pull_lsa_SidType(ndr, NDR_SCALARS, &r->in.type));
1587 NDR_PULL_ALLOC(ndr, r->out.members);
1588 ZERO_STRUCTP(r->out.members);
1590 if (flags & NDR_OUT) {
1591 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
1592 NDR_PULL_ALLOC(ndr, r->out.members);
1594 _mem_save_members_0 = NDR_PULL_GET_MEM_CTX(ndr);
1595 NDR_PULL_SET_MEM_CTX(ndr, r->out.members, LIBNDR_FLAG_REF_ALLOC);
1596 NDR_CHECK(ndr_pull_wbint_Principals(ndr, NDR_SCALARS|NDR_BUFFERS, r->out.members));
1597 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_members_0, LIBNDR_FLAG_REF_ALLOC);
1598 NDR_CHECK(ndr_pull_NTSTATUS(ndr, NDR_SCALARS, &r->out.result));
1600 return NDR_ERR_SUCCESS;
1603 _PUBLIC_ void ndr_print_wbint_LookupGroupMembers(struct ndr_print *ndr, const char *name, int flags, const struct wbint_LookupGroupMembers *r)
1605 ndr_print_struct(ndr, name, "wbint_LookupGroupMembers");
1606 ndr->depth++;
1607 if (flags & NDR_SET_VALUES) {
1608 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
1610 if (flags & NDR_IN) {
1611 ndr_print_struct(ndr, "in", "wbint_LookupGroupMembers");
1612 ndr->depth++;
1613 ndr_print_ptr(ndr, "sid", r->in.sid);
1614 ndr->depth++;
1615 ndr_print_dom_sid(ndr, "sid", r->in.sid);
1616 ndr->depth--;
1617 ndr_print_lsa_SidType(ndr, "type", r->in.type);
1618 ndr->depth--;
1620 if (flags & NDR_OUT) {
1621 ndr_print_struct(ndr, "out", "wbint_LookupGroupMembers");
1622 ndr->depth++;
1623 ndr_print_ptr(ndr, "members", r->out.members);
1624 ndr->depth++;
1625 ndr_print_wbint_Principals(ndr, "members", r->out.members);
1626 ndr->depth--;
1627 ndr_print_NTSTATUS(ndr, "result", r->out.result);
1628 ndr->depth--;
1630 ndr->depth--;
1633 static enum ndr_err_code ndr_push_wbint_QueryUserList(struct ndr_push *ndr, int flags, const struct wbint_QueryUserList *r)
1635 if (flags & NDR_IN) {
1637 if (flags & NDR_OUT) {
1638 if (r->out.users == NULL) {
1639 return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
1641 NDR_CHECK(ndr_push_wbint_userinfos(ndr, NDR_SCALARS|NDR_BUFFERS, r->out.users));
1642 NDR_CHECK(ndr_push_NTSTATUS(ndr, NDR_SCALARS, r->out.result));
1644 return NDR_ERR_SUCCESS;
1647 static enum ndr_err_code ndr_pull_wbint_QueryUserList(struct ndr_pull *ndr, int flags, struct wbint_QueryUserList *r)
1649 TALLOC_CTX *_mem_save_users_0;
1650 if (flags & NDR_IN) {
1651 ZERO_STRUCT(r->out);
1653 NDR_PULL_ALLOC(ndr, r->out.users);
1654 ZERO_STRUCTP(r->out.users);
1656 if (flags & NDR_OUT) {
1657 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
1658 NDR_PULL_ALLOC(ndr, r->out.users);
1660 _mem_save_users_0 = NDR_PULL_GET_MEM_CTX(ndr);
1661 NDR_PULL_SET_MEM_CTX(ndr, r->out.users, LIBNDR_FLAG_REF_ALLOC);
1662 NDR_CHECK(ndr_pull_wbint_userinfos(ndr, NDR_SCALARS|NDR_BUFFERS, r->out.users));
1663 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_users_0, LIBNDR_FLAG_REF_ALLOC);
1664 NDR_CHECK(ndr_pull_NTSTATUS(ndr, NDR_SCALARS, &r->out.result));
1666 return NDR_ERR_SUCCESS;
1669 _PUBLIC_ void ndr_print_wbint_QueryUserList(struct ndr_print *ndr, const char *name, int flags, const struct wbint_QueryUserList *r)
1671 ndr_print_struct(ndr, name, "wbint_QueryUserList");
1672 ndr->depth++;
1673 if (flags & NDR_SET_VALUES) {
1674 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
1676 if (flags & NDR_IN) {
1677 ndr_print_struct(ndr, "in", "wbint_QueryUserList");
1678 ndr->depth++;
1679 ndr->depth--;
1681 if (flags & NDR_OUT) {
1682 ndr_print_struct(ndr, "out", "wbint_QueryUserList");
1683 ndr->depth++;
1684 ndr_print_ptr(ndr, "users", r->out.users);
1685 ndr->depth++;
1686 ndr_print_wbint_userinfos(ndr, "users", r->out.users);
1687 ndr->depth--;
1688 ndr_print_NTSTATUS(ndr, "result", r->out.result);
1689 ndr->depth--;
1691 ndr->depth--;
1694 static enum ndr_err_code ndr_push_wbint_DsGetDcName(struct ndr_push *ndr, int flags, const struct wbint_DsGetDcName *r)
1696 if (flags & NDR_IN) {
1697 if (r->in.domain_name == NULL) {
1698 return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
1700 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.domain_name, CH_UTF8)));
1701 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0));
1702 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.domain_name, CH_UTF8)));
1703 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));
1704 NDR_CHECK(ndr_push_unique_ptr(ndr, r->in.domain_guid));
1705 if (r->in.domain_guid) {
1706 NDR_CHECK(ndr_push_GUID(ndr, NDR_SCALARS, r->in.domain_guid));
1708 NDR_CHECK(ndr_push_unique_ptr(ndr, r->in.site_name));
1709 if (r->in.site_name) {
1710 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.site_name, CH_UTF8)));
1711 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0));
1712 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.site_name, CH_UTF8)));
1713 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->in.site_name, ndr_charset_length(r->in.site_name, CH_UTF8), sizeof(uint8_t), CH_UTF8));
1715 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->in.flags));
1717 if (flags & NDR_OUT) {
1718 if (r->out.dc_info == NULL) {
1719 return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
1721 NDR_CHECK(ndr_push_unique_ptr(ndr, *r->out.dc_info));
1722 if (*r->out.dc_info) {
1723 NDR_CHECK(ndr_push_netr_DsRGetDCNameInfo(ndr, NDR_SCALARS|NDR_BUFFERS, *r->out.dc_info));
1725 NDR_CHECK(ndr_push_NTSTATUS(ndr, NDR_SCALARS, r->out.result));
1727 return NDR_ERR_SUCCESS;
1730 static enum ndr_err_code ndr_pull_wbint_DsGetDcName(struct ndr_pull *ndr, int flags, struct wbint_DsGetDcName *r)
1732 uint32_t _ptr_domain_guid;
1733 uint32_t _ptr_site_name;
1734 uint32_t _ptr_dc_info;
1735 TALLOC_CTX *_mem_save_domain_guid_0;
1736 TALLOC_CTX *_mem_save_site_name_0;
1737 TALLOC_CTX *_mem_save_dc_info_0;
1738 TALLOC_CTX *_mem_save_dc_info_1;
1739 if (flags & NDR_IN) {
1740 ZERO_STRUCT(r->out);
1742 NDR_CHECK(ndr_pull_array_size(ndr, &r->in.domain_name));
1743 NDR_CHECK(ndr_pull_array_length(ndr, &r->in.domain_name));
1744 if (ndr_get_array_length(ndr, &r->in.domain_name) > ndr_get_array_size(ndr, &r->in.domain_name)) {
1745 return 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));
1747 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->in.domain_name), sizeof(uint8_t)));
1748 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));
1749 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_domain_guid));
1750 if (_ptr_domain_guid) {
1751 NDR_PULL_ALLOC(ndr, r->in.domain_guid);
1752 } else {
1753 r->in.domain_guid = NULL;
1755 if (r->in.domain_guid) {
1756 _mem_save_domain_guid_0 = NDR_PULL_GET_MEM_CTX(ndr);
1757 NDR_PULL_SET_MEM_CTX(ndr, r->in.domain_guid, 0);
1758 NDR_CHECK(ndr_pull_GUID(ndr, NDR_SCALARS, r->in.domain_guid));
1759 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_domain_guid_0, 0);
1761 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_site_name));
1762 if (_ptr_site_name) {
1763 NDR_PULL_ALLOC(ndr, r->in.site_name);
1764 } else {
1765 r->in.site_name = NULL;
1767 if (r->in.site_name) {
1768 _mem_save_site_name_0 = NDR_PULL_GET_MEM_CTX(ndr);
1769 NDR_PULL_SET_MEM_CTX(ndr, r->in.site_name, 0);
1770 NDR_CHECK(ndr_pull_array_size(ndr, &r->in.site_name));
1771 NDR_CHECK(ndr_pull_array_length(ndr, &r->in.site_name));
1772 if (ndr_get_array_length(ndr, &r->in.site_name) > ndr_get_array_size(ndr, &r->in.site_name)) {
1773 return ndr_pull_error(ndr, NDR_ERR_ARRAY_SIZE, "Bad array size %u should exceed array length %u", ndr_get_array_size(ndr, &r->in.site_name), ndr_get_array_length(ndr, &r->in.site_name));
1775 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->in.site_name), sizeof(uint8_t)));
1776 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->in.site_name, ndr_get_array_length(ndr, &r->in.site_name), sizeof(uint8_t), CH_UTF8));
1777 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_site_name_0, 0);
1779 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->in.flags));
1780 NDR_PULL_ALLOC(ndr, r->out.dc_info);
1781 ZERO_STRUCTP(r->out.dc_info);
1783 if (flags & NDR_OUT) {
1784 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
1785 NDR_PULL_ALLOC(ndr, r->out.dc_info);
1787 _mem_save_dc_info_0 = NDR_PULL_GET_MEM_CTX(ndr);
1788 NDR_PULL_SET_MEM_CTX(ndr, r->out.dc_info, LIBNDR_FLAG_REF_ALLOC);
1789 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_dc_info));
1790 if (_ptr_dc_info) {
1791 NDR_PULL_ALLOC(ndr, *r->out.dc_info);
1792 } else {
1793 *r->out.dc_info = NULL;
1795 if (*r->out.dc_info) {
1796 _mem_save_dc_info_1 = NDR_PULL_GET_MEM_CTX(ndr);
1797 NDR_PULL_SET_MEM_CTX(ndr, *r->out.dc_info, 0);
1798 NDR_CHECK(ndr_pull_netr_DsRGetDCNameInfo(ndr, NDR_SCALARS|NDR_BUFFERS, *r->out.dc_info));
1799 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_dc_info_1, 0);
1801 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_dc_info_0, LIBNDR_FLAG_REF_ALLOC);
1802 NDR_CHECK(ndr_pull_NTSTATUS(ndr, NDR_SCALARS, &r->out.result));
1804 return NDR_ERR_SUCCESS;
1807 _PUBLIC_ void ndr_print_wbint_DsGetDcName(struct ndr_print *ndr, const char *name, int flags, const struct wbint_DsGetDcName *r)
1809 ndr_print_struct(ndr, name, "wbint_DsGetDcName");
1810 ndr->depth++;
1811 if (flags & NDR_SET_VALUES) {
1812 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
1814 if (flags & NDR_IN) {
1815 ndr_print_struct(ndr, "in", "wbint_DsGetDcName");
1816 ndr->depth++;
1817 ndr_print_ptr(ndr, "domain_name", r->in.domain_name);
1818 ndr->depth++;
1819 ndr_print_string(ndr, "domain_name", r->in.domain_name);
1820 ndr->depth--;
1821 ndr_print_ptr(ndr, "domain_guid", r->in.domain_guid);
1822 ndr->depth++;
1823 if (r->in.domain_guid) {
1824 ndr_print_GUID(ndr, "domain_guid", r->in.domain_guid);
1826 ndr->depth--;
1827 ndr_print_ptr(ndr, "site_name", r->in.site_name);
1828 ndr->depth++;
1829 if (r->in.site_name) {
1830 ndr_print_string(ndr, "site_name", r->in.site_name);
1832 ndr->depth--;
1833 ndr_print_uint32(ndr, "flags", r->in.flags);
1834 ndr->depth--;
1836 if (flags & NDR_OUT) {
1837 ndr_print_struct(ndr, "out", "wbint_DsGetDcName");
1838 ndr->depth++;
1839 ndr_print_ptr(ndr, "dc_info", r->out.dc_info);
1840 ndr->depth++;
1841 ndr_print_ptr(ndr, "dc_info", *r->out.dc_info);
1842 ndr->depth++;
1843 if (*r->out.dc_info) {
1844 ndr_print_netr_DsRGetDCNameInfo(ndr, "dc_info", *r->out.dc_info);
1846 ndr->depth--;
1847 ndr->depth--;
1848 ndr_print_NTSTATUS(ndr, "result", r->out.result);
1849 ndr->depth--;
1851 ndr->depth--;
1854 static enum ndr_err_code ndr_push_wbint_LookupRids(struct ndr_push *ndr, int flags, const struct wbint_LookupRids *r)
1856 if (flags & NDR_IN) {
1857 if (r->in.rids == NULL) {
1858 return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
1860 NDR_CHECK(ndr_push_wbint_RidArray(ndr, NDR_SCALARS, r->in.rids));
1862 if (flags & NDR_OUT) {
1863 if (r->out.names == NULL) {
1864 return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
1866 NDR_CHECK(ndr_push_wbint_Principals(ndr, NDR_SCALARS|NDR_BUFFERS, r->out.names));
1867 NDR_CHECK(ndr_push_NTSTATUS(ndr, NDR_SCALARS, r->out.result));
1869 return NDR_ERR_SUCCESS;
1872 static enum ndr_err_code ndr_pull_wbint_LookupRids(struct ndr_pull *ndr, int flags, struct wbint_LookupRids *r)
1874 TALLOC_CTX *_mem_save_rids_0;
1875 TALLOC_CTX *_mem_save_names_0;
1876 if (flags & NDR_IN) {
1877 ZERO_STRUCT(r->out);
1879 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
1880 NDR_PULL_ALLOC(ndr, r->in.rids);
1882 _mem_save_rids_0 = NDR_PULL_GET_MEM_CTX(ndr);
1883 NDR_PULL_SET_MEM_CTX(ndr, r->in.rids, LIBNDR_FLAG_REF_ALLOC);
1884 NDR_CHECK(ndr_pull_wbint_RidArray(ndr, NDR_SCALARS, r->in.rids));
1885 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_rids_0, LIBNDR_FLAG_REF_ALLOC);
1886 NDR_PULL_ALLOC(ndr, r->out.names);
1887 ZERO_STRUCTP(r->out.names);
1889 if (flags & NDR_OUT) {
1890 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
1891 NDR_PULL_ALLOC(ndr, r->out.names);
1893 _mem_save_names_0 = NDR_PULL_GET_MEM_CTX(ndr);
1894 NDR_PULL_SET_MEM_CTX(ndr, r->out.names, LIBNDR_FLAG_REF_ALLOC);
1895 NDR_CHECK(ndr_pull_wbint_Principals(ndr, NDR_SCALARS|NDR_BUFFERS, r->out.names));
1896 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_names_0, LIBNDR_FLAG_REF_ALLOC);
1897 NDR_CHECK(ndr_pull_NTSTATUS(ndr, NDR_SCALARS, &r->out.result));
1899 return NDR_ERR_SUCCESS;
1902 _PUBLIC_ void ndr_print_wbint_LookupRids(struct ndr_print *ndr, const char *name, int flags, const struct wbint_LookupRids *r)
1904 ndr_print_struct(ndr, name, "wbint_LookupRids");
1905 ndr->depth++;
1906 if (flags & NDR_SET_VALUES) {
1907 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
1909 if (flags & NDR_IN) {
1910 ndr_print_struct(ndr, "in", "wbint_LookupRids");
1911 ndr->depth++;
1912 ndr_print_ptr(ndr, "rids", r->in.rids);
1913 ndr->depth++;
1914 ndr_print_wbint_RidArray(ndr, "rids", r->in.rids);
1915 ndr->depth--;
1916 ndr->depth--;
1918 if (flags & NDR_OUT) {
1919 ndr_print_struct(ndr, "out", "wbint_LookupRids");
1920 ndr->depth++;
1921 ndr_print_ptr(ndr, "names", r->out.names);
1922 ndr->depth++;
1923 ndr_print_wbint_Principals(ndr, "names", r->out.names);
1924 ndr->depth--;
1925 ndr_print_NTSTATUS(ndr, "result", r->out.result);
1926 ndr->depth--;
1928 ndr->depth--;
1931 static const struct ndr_interface_call wbint_calls[] = {
1933 "wbint_Ping",
1934 sizeof(struct wbint_Ping),
1935 (ndr_push_flags_fn_t) ndr_push_wbint_Ping,
1936 (ndr_pull_flags_fn_t) ndr_pull_wbint_Ping,
1937 (ndr_print_function_t) ndr_print_wbint_Ping,
1938 false,
1941 "wbint_LookupSid",
1942 sizeof(struct wbint_LookupSid),
1943 (ndr_push_flags_fn_t) ndr_push_wbint_LookupSid,
1944 (ndr_pull_flags_fn_t) ndr_pull_wbint_LookupSid,
1945 (ndr_print_function_t) ndr_print_wbint_LookupSid,
1946 false,
1949 "wbint_LookupName",
1950 sizeof(struct wbint_LookupName),
1951 (ndr_push_flags_fn_t) ndr_push_wbint_LookupName,
1952 (ndr_pull_flags_fn_t) ndr_pull_wbint_LookupName,
1953 (ndr_print_function_t) ndr_print_wbint_LookupName,
1954 false,
1957 "wbint_Sid2Uid",
1958 sizeof(struct wbint_Sid2Uid),
1959 (ndr_push_flags_fn_t) ndr_push_wbint_Sid2Uid,
1960 (ndr_pull_flags_fn_t) ndr_pull_wbint_Sid2Uid,
1961 (ndr_print_function_t) ndr_print_wbint_Sid2Uid,
1962 false,
1965 "wbint_Sid2Gid",
1966 sizeof(struct wbint_Sid2Gid),
1967 (ndr_push_flags_fn_t) ndr_push_wbint_Sid2Gid,
1968 (ndr_pull_flags_fn_t) ndr_pull_wbint_Sid2Gid,
1969 (ndr_print_function_t) ndr_print_wbint_Sid2Gid,
1970 false,
1973 "wbint_Uid2Sid",
1974 sizeof(struct wbint_Uid2Sid),
1975 (ndr_push_flags_fn_t) ndr_push_wbint_Uid2Sid,
1976 (ndr_pull_flags_fn_t) ndr_pull_wbint_Uid2Sid,
1977 (ndr_print_function_t) ndr_print_wbint_Uid2Sid,
1978 false,
1981 "wbint_Gid2Sid",
1982 sizeof(struct wbint_Gid2Sid),
1983 (ndr_push_flags_fn_t) ndr_push_wbint_Gid2Sid,
1984 (ndr_pull_flags_fn_t) ndr_pull_wbint_Gid2Sid,
1985 (ndr_print_function_t) ndr_print_wbint_Gid2Sid,
1986 false,
1989 "wbint_QueryUser",
1990 sizeof(struct wbint_QueryUser),
1991 (ndr_push_flags_fn_t) ndr_push_wbint_QueryUser,
1992 (ndr_pull_flags_fn_t) ndr_pull_wbint_QueryUser,
1993 (ndr_print_function_t) ndr_print_wbint_QueryUser,
1994 false,
1997 "wbint_LookupUserAliases",
1998 sizeof(struct wbint_LookupUserAliases),
1999 (ndr_push_flags_fn_t) ndr_push_wbint_LookupUserAliases,
2000 (ndr_pull_flags_fn_t) ndr_pull_wbint_LookupUserAliases,
2001 (ndr_print_function_t) ndr_print_wbint_LookupUserAliases,
2002 false,
2005 "wbint_LookupUserGroups",
2006 sizeof(struct wbint_LookupUserGroups),
2007 (ndr_push_flags_fn_t) ndr_push_wbint_LookupUserGroups,
2008 (ndr_pull_flags_fn_t) ndr_pull_wbint_LookupUserGroups,
2009 (ndr_print_function_t) ndr_print_wbint_LookupUserGroups,
2010 false,
2013 "wbint_QuerySequenceNumber",
2014 sizeof(struct wbint_QuerySequenceNumber),
2015 (ndr_push_flags_fn_t) ndr_push_wbint_QuerySequenceNumber,
2016 (ndr_pull_flags_fn_t) ndr_pull_wbint_QuerySequenceNumber,
2017 (ndr_print_function_t) ndr_print_wbint_QuerySequenceNumber,
2018 false,
2021 "wbint_LookupGroupMembers",
2022 sizeof(struct wbint_LookupGroupMembers),
2023 (ndr_push_flags_fn_t) ndr_push_wbint_LookupGroupMembers,
2024 (ndr_pull_flags_fn_t) ndr_pull_wbint_LookupGroupMembers,
2025 (ndr_print_function_t) ndr_print_wbint_LookupGroupMembers,
2026 false,
2029 "wbint_QueryUserList",
2030 sizeof(struct wbint_QueryUserList),
2031 (ndr_push_flags_fn_t) ndr_push_wbint_QueryUserList,
2032 (ndr_pull_flags_fn_t) ndr_pull_wbint_QueryUserList,
2033 (ndr_print_function_t) ndr_print_wbint_QueryUserList,
2034 false,
2037 "wbint_DsGetDcName",
2038 sizeof(struct wbint_DsGetDcName),
2039 (ndr_push_flags_fn_t) ndr_push_wbint_DsGetDcName,
2040 (ndr_pull_flags_fn_t) ndr_pull_wbint_DsGetDcName,
2041 (ndr_print_function_t) ndr_print_wbint_DsGetDcName,
2042 false,
2045 "wbint_LookupRids",
2046 sizeof(struct wbint_LookupRids),
2047 (ndr_push_flags_fn_t) ndr_push_wbint_LookupRids,
2048 (ndr_pull_flags_fn_t) ndr_pull_wbint_LookupRids,
2049 (ndr_print_function_t) ndr_print_wbint_LookupRids,
2050 false,
2052 { NULL, 0, NULL, NULL, NULL, false }
2055 static const char * const wbint_endpoint_strings[] = {
2056 "ncalrpc:",
2059 static const struct ndr_interface_string_array wbint_endpoints = {
2060 .count = 1,
2061 .names = wbint_endpoint_strings
2064 static const char * const wbint_authservice_strings[] = {
2065 "host",
2068 static const struct ndr_interface_string_array wbint_authservices = {
2069 .count = 1,
2070 .names = wbint_authservice_strings
2074 const struct ndr_interface_table ndr_table_wbint = {
2075 .name = "wbint",
2076 .syntax_id = {
2077 {0xbf09192c,0xed60,0x4928,{0x9d,0xff},{0xd0,0xd7,0xbc,0xb0,0x3e,0xd8}},
2078 NDR_WBINT_VERSION
2080 .helpstring = NDR_WBINT_HELPSTRING,
2081 .num_calls = 15,
2082 .calls = wbint_calls,
2083 .endpoints = &wbint_endpoints,
2084 .authservices = &wbint_authservices