Line data Source code
1 : /* parser auto-generated by pidl */
2 :
3 : #include "includes.h"
4 : #include "bin/default/librpc/gen_ndr/ndr_conditional_ace.h"
5 :
6 : #include "librpc/gen_ndr/ndr_security.h"
7 0 : static enum ndr_err_code ndr_push_token_type(struct ndr_push *ndr, ndr_flags_type ndr_flags, enum token_type r)
8 : {
9 0 : NDR_CHECK(ndr_push_enum_uint8(ndr, NDR_SCALARS, r));
10 0 : return NDR_ERR_SUCCESS;
11 : }
12 :
13 0 : static enum ndr_err_code ndr_pull_token_type(struct ndr_pull *ndr, ndr_flags_type ndr_flags, enum token_type *r)
14 : {
15 0 : uint8_t v;
16 0 : NDR_CHECK(ndr_pull_enum_uint8(ndr, NDR_SCALARS, &v));
17 0 : *r = v;
18 0 : return NDR_ERR_SUCCESS;
19 : }
20 :
21 0 : _PUBLIC_ void ndr_print_token_type(struct ndr_print *ndr, const char *name, enum token_type r)
22 : {
23 0 : const char *val = NULL;
24 :
25 0 : switch (r) {
26 0 : case CONDITIONAL_ACE_TOKEN_INVALID_OR_PADDING: val = "CONDITIONAL_ACE_TOKEN_INVALID_OR_PADDING"; break;
27 0 : case CONDITIONAL_ACE_TOKEN_INT8: val = "CONDITIONAL_ACE_TOKEN_INT8"; break;
28 0 : case CONDITIONAL_ACE_TOKEN_INT16: val = "CONDITIONAL_ACE_TOKEN_INT16"; break;
29 0 : case CONDITIONAL_ACE_TOKEN_INT32: val = "CONDITIONAL_ACE_TOKEN_INT32"; break;
30 0 : case CONDITIONAL_ACE_TOKEN_INT64: val = "CONDITIONAL_ACE_TOKEN_INT64"; break;
31 0 : case CONDITIONAL_ACE_TOKEN_UNICODE: val = "CONDITIONAL_ACE_TOKEN_UNICODE"; break;
32 0 : case CONDITIONAL_ACE_TOKEN_OCTET_STRING: val = "CONDITIONAL_ACE_TOKEN_OCTET_STRING"; break;
33 0 : case CONDITIONAL_ACE_TOKEN_COMPOSITE: val = "CONDITIONAL_ACE_TOKEN_COMPOSITE"; break;
34 0 : case CONDITIONAL_ACE_TOKEN_SID: val = "CONDITIONAL_ACE_TOKEN_SID"; break;
35 0 : case CONDITIONAL_ACE_LOCAL_ATTRIBUTE: val = "CONDITIONAL_ACE_LOCAL_ATTRIBUTE"; break;
36 0 : case CONDITIONAL_ACE_USER_ATTRIBUTE: val = "CONDITIONAL_ACE_USER_ATTRIBUTE"; break;
37 0 : case CONDITIONAL_ACE_RESOURCE_ATTRIBUTE: val = "CONDITIONAL_ACE_RESOURCE_ATTRIBUTE"; break;
38 0 : case CONDITIONAL_ACE_DEVICE_ATTRIBUTE: val = "CONDITIONAL_ACE_DEVICE_ATTRIBUTE"; break;
39 0 : case CONDITIONAL_ACE_TOKEN_MEMBER_OF: val = "CONDITIONAL_ACE_TOKEN_MEMBER_OF"; break;
40 0 : case CONDITIONAL_ACE_TOKEN_DEVICE_MEMBER_OF: val = "CONDITIONAL_ACE_TOKEN_DEVICE_MEMBER_OF"; break;
41 0 : case CONDITIONAL_ACE_TOKEN_MEMBER_OF_ANY: val = "CONDITIONAL_ACE_TOKEN_MEMBER_OF_ANY"; break;
42 0 : case CONDITIONAL_ACE_TOKEN_DEVICE_MEMBER_OF_ANY: val = "CONDITIONAL_ACE_TOKEN_DEVICE_MEMBER_OF_ANY"; break;
43 0 : case CONDITIONAL_ACE_TOKEN_NOT_MEMBER_OF: val = "CONDITIONAL_ACE_TOKEN_NOT_MEMBER_OF"; break;
44 0 : case CONDITIONAL_ACE_TOKEN_NOT_DEVICE_MEMBER_OF: val = "CONDITIONAL_ACE_TOKEN_NOT_DEVICE_MEMBER_OF"; break;
45 0 : case CONDITIONAL_ACE_TOKEN_NOT_MEMBER_OF_ANY: val = "CONDITIONAL_ACE_TOKEN_NOT_MEMBER_OF_ANY"; break;
46 0 : case CONDITIONAL_ACE_TOKEN_NOT_DEVICE_MEMBER_OF_ANY: val = "CONDITIONAL_ACE_TOKEN_NOT_DEVICE_MEMBER_OF_ANY"; break;
47 0 : case CONDITIONAL_ACE_TOKEN_EQUAL: val = "CONDITIONAL_ACE_TOKEN_EQUAL"; break;
48 0 : case CONDITIONAL_ACE_TOKEN_NOT_EQUAL: val = "CONDITIONAL_ACE_TOKEN_NOT_EQUAL"; break;
49 0 : case CONDITIONAL_ACE_TOKEN_LESS_THAN: val = "CONDITIONAL_ACE_TOKEN_LESS_THAN"; break;
50 0 : case CONDITIONAL_ACE_TOKEN_LESS_OR_EQUAL: val = "CONDITIONAL_ACE_TOKEN_LESS_OR_EQUAL"; break;
51 0 : case CONDITIONAL_ACE_TOKEN_GREATER_THAN: val = "CONDITIONAL_ACE_TOKEN_GREATER_THAN"; break;
52 0 : case CONDITIONAL_ACE_TOKEN_GREATER_OR_EQUAL: val = "CONDITIONAL_ACE_TOKEN_GREATER_OR_EQUAL"; break;
53 0 : case CONDITIONAL_ACE_TOKEN_CONTAINS: val = "CONDITIONAL_ACE_TOKEN_CONTAINS"; break;
54 0 : case CONDITIONAL_ACE_TOKEN_ANY_OF: val = "CONDITIONAL_ACE_TOKEN_ANY_OF"; break;
55 0 : case CONDITIONAL_ACE_TOKEN_NOT_CONTAINS: val = "CONDITIONAL_ACE_TOKEN_NOT_CONTAINS"; break;
56 0 : case CONDITIONAL_ACE_TOKEN_NOT_ANY_OF: val = "CONDITIONAL_ACE_TOKEN_NOT_ANY_OF"; break;
57 0 : case CONDITIONAL_ACE_TOKEN_EXISTS: val = "CONDITIONAL_ACE_TOKEN_EXISTS"; break;
58 0 : case CONDITIONAL_ACE_TOKEN_NOT_EXISTS: val = "CONDITIONAL_ACE_TOKEN_NOT_EXISTS"; break;
59 0 : case CONDITIONAL_ACE_TOKEN_NOT: val = "CONDITIONAL_ACE_TOKEN_NOT"; break;
60 0 : case CONDITIONAL_ACE_TOKEN_AND: val = "CONDITIONAL_ACE_TOKEN_AND"; break;
61 0 : case CONDITIONAL_ACE_TOKEN_OR: val = "CONDITIONAL_ACE_TOKEN_OR"; break;
62 0 : case CONDITIONAL_ACE_SAMBA_RESULT_BOOL: val = "CONDITIONAL_ACE_SAMBA_RESULT_BOOL"; break;
63 0 : case CONDITIONAL_ACE_SAMBA_RESULT_NULL: val = "CONDITIONAL_ACE_SAMBA_RESULT_NULL"; break;
64 0 : case CONDITIONAL_ACE_SAMBA_RESULT_ERROR: val = "CONDITIONAL_ACE_SAMBA_RESULT_ERROR"; break;
65 0 : case CONDITIONAL_ACE_SAMBA_SDDL_PAREN: val = "CONDITIONAL_ACE_SAMBA_SDDL_PAREN"; break;
66 0 : case CONDITIONAL_ACE_SAMBA_SDDL_PAREN_END: val = "CONDITIONAL_ACE_SAMBA_SDDL_PAREN_END"; break;
67 : }
68 0 : ndr_print_enum(ndr, name, "ENUM", val, r);
69 0 : }
70 :
71 0 : static enum ndr_err_code ndr_push_ace_condition_result(struct ndr_push *ndr, ndr_flags_type ndr_flags, const struct ace_condition_result *r)
72 : {
73 : {
74 0 : libndr_flags _flags_save_STRUCT = ndr->flags;
75 0 : ndr_set_flags(&ndr->flags, LIBNDR_FLAG_NOALIGN);
76 0 : NDR_PUSH_CHECK_FLAGS(ndr, ndr_flags);
77 0 : if (ndr_flags & NDR_SCALARS) {
78 0 : NDR_CHECK(ndr_push_align(ndr, 8));
79 0 : NDR_CHECK(ndr_push_int64(ndr, NDR_SCALARS, r->value));
80 0 : NDR_CHECK(ndr_push_trailer_align(ndr, 8));
81 : }
82 0 : if (ndr_flags & NDR_BUFFERS) {
83 0 : }
84 0 : ndr->flags = _flags_save_STRUCT;
85 : }
86 0 : return NDR_ERR_SUCCESS;
87 : }
88 :
89 0 : static enum ndr_err_code ndr_pull_ace_condition_result(struct ndr_pull *ndr, ndr_flags_type ndr_flags, struct ace_condition_result *r)
90 : {
91 : {
92 0 : libndr_flags _flags_save_STRUCT = ndr->flags;
93 0 : ndr_set_flags(&ndr->flags, LIBNDR_FLAG_NOALIGN);
94 0 : NDR_PULL_CHECK_FLAGS(ndr, ndr_flags);
95 0 : if (ndr_flags & NDR_SCALARS) {
96 0 : NDR_CHECK(ndr_pull_align(ndr, 8));
97 0 : NDR_CHECK(ndr_pull_int64(ndr, NDR_SCALARS, &r->value));
98 0 : NDR_CHECK(ndr_pull_trailer_align(ndr, 8));
99 : }
100 0 : if (ndr_flags & NDR_BUFFERS) {
101 0 : }
102 0 : ndr->flags = _flags_save_STRUCT;
103 : }
104 0 : return NDR_ERR_SUCCESS;
105 : }
106 :
107 0 : _PUBLIC_ void ndr_print_ace_condition_result(struct ndr_print *ndr, const char *name, const struct ace_condition_result *r)
108 : {
109 0 : ndr_print_struct(ndr, name, "ace_condition_result");
110 0 : if (r == NULL) { ndr_print_null(ndr); return; }
111 : {
112 0 : libndr_flags _flags_save_STRUCT = ndr->flags;
113 0 : ndr_set_flags(&ndr->flags, LIBNDR_FLAG_NOALIGN);
114 0 : ndr->depth++;
115 0 : ndr_print_int64(ndr, "value", r->value);
116 0 : ndr->depth--;
117 0 : ndr->flags = _flags_save_STRUCT;
118 : }
119 : }
120 :
121 668 : _PUBLIC_ enum ndr_err_code ndr_push_ace_condition_int(struct ndr_push *ndr, ndr_flags_type ndr_flags, const struct ace_condition_int *r)
122 : {
123 668 : NDR_PUSH_CHECK_FLAGS(ndr, ndr_flags);
124 668 : if (ndr_flags & NDR_SCALARS) {
125 668 : NDR_CHECK(ndr_push_align(ndr, 8));
126 668 : NDR_CHECK(ndr_push_int64(ndr, NDR_SCALARS, r->value));
127 668 : NDR_CHECK(ndr_push_uint8(ndr, NDR_SCALARS, r->sign));
128 668 : NDR_CHECK(ndr_push_uint8(ndr, NDR_SCALARS, r->base));
129 668 : NDR_CHECK(ndr_push_trailer_align(ndr, 8));
130 : }
131 668 : if (ndr_flags & NDR_BUFFERS) {
132 596 : }
133 668 : return NDR_ERR_SUCCESS;
134 : }
135 :
136 96 : _PUBLIC_ enum ndr_err_code ndr_pull_ace_condition_int(struct ndr_pull *ndr, ndr_flags_type ndr_flags, struct ace_condition_int *r)
137 : {
138 96 : NDR_PULL_CHECK_FLAGS(ndr, ndr_flags);
139 96 : if (ndr_flags & NDR_SCALARS) {
140 96 : NDR_CHECK(ndr_pull_align(ndr, 8));
141 96 : NDR_CHECK(ndr_pull_int64(ndr, NDR_SCALARS, &r->value));
142 96 : NDR_CHECK(ndr_pull_uint8(ndr, NDR_SCALARS, &r->sign));
143 96 : NDR_CHECK(ndr_pull_uint8(ndr, NDR_SCALARS, &r->base));
144 96 : NDR_CHECK(ndr_pull_trailer_align(ndr, 8));
145 : }
146 96 : if (ndr_flags & NDR_BUFFERS) {
147 60 : }
148 96 : return NDR_ERR_SUCCESS;
149 : }
150 :
151 0 : static void ndr_print_flags_ace_condition_int(struct ndr_print *ndr, const char *name, ndr_flags_type unused, const struct ace_condition_int *r)
152 : {
153 0 : ndr_print_ace_condition_int(ndr, name, r);
154 0 : }
155 :
156 0 : _PUBLIC_ void ndr_print_ace_condition_int(struct ndr_print *ndr, const char *name, const struct ace_condition_int *r)
157 : {
158 0 : ndr_print_struct(ndr, name, "ace_condition_int");
159 0 : if (r == NULL) { ndr_print_null(ndr); return; }
160 0 : ndr->depth++;
161 0 : ndr_print_int64(ndr, "value", r->value);
162 0 : ndr_print_uint8(ndr, "sign", r->sign);
163 0 : ndr_print_uint8(ndr, "base", r->base);
164 0 : ndr->depth--;
165 : }
166 :
167 7018 : _PUBLIC_ enum ndr_err_code ndr_push_ace_condition_unicode(struct ndr_push *ndr, ndr_flags_type ndr_flags, const struct ace_condition_unicode *r)
168 : {
169 7018 : NDR_PUSH_CHECK_FLAGS(ndr, ndr_flags);
170 7018 : if (ndr_flags & NDR_SCALARS) {
171 7018 : NDR_CHECK(ndr_push_align(ndr, 4));
172 : {
173 7018 : libndr_flags _flags_save_string = ndr->flags;
174 7018 : ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_SIZE4|LIBNDR_FLAG_STR_NOTERM|LIBNDR_FLAG_STR_BYTESIZE|LIBNDR_FLAG_STR_NO_EMBEDDED_NUL);
175 7018 : NDR_CHECK(ndr_push_string(ndr, NDR_SCALARS, r->value));
176 7018 : ndr->flags = _flags_save_string;
177 : }
178 7018 : NDR_CHECK(ndr_push_trailer_align(ndr, 4));
179 : }
180 7018 : if (ndr_flags & NDR_BUFFERS) {
181 6160 : }
182 7018 : return NDR_ERR_SUCCESS;
183 : }
184 :
185 5129 : _PUBLIC_ enum ndr_err_code ndr_pull_ace_condition_unicode(struct ndr_pull *ndr, ndr_flags_type ndr_flags, struct ace_condition_unicode *r)
186 : {
187 5129 : NDR_PULL_CHECK_FLAGS(ndr, ndr_flags);
188 5129 : if (ndr_flags & NDR_SCALARS) {
189 5129 : NDR_CHECK(ndr_pull_align(ndr, 4));
190 : {
191 5129 : libndr_flags _flags_save_string = ndr->flags;
192 5129 : ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_SIZE4|LIBNDR_FLAG_STR_NOTERM|LIBNDR_FLAG_STR_BYTESIZE|LIBNDR_FLAG_STR_NO_EMBEDDED_NUL);
193 5129 : NDR_CHECK(ndr_pull_string(ndr, NDR_SCALARS, &r->value));
194 5129 : ndr->flags = _flags_save_string;
195 : }
196 5129 : NDR_CHECK(ndr_pull_trailer_align(ndr, 4));
197 : }
198 5129 : if (ndr_flags & NDR_BUFFERS) {
199 4499 : }
200 5129 : return NDR_ERR_SUCCESS;
201 : }
202 :
203 0 : static void ndr_print_flags_ace_condition_unicode(struct ndr_print *ndr, const char *name, ndr_flags_type unused, const struct ace_condition_unicode *r)
204 : {
205 0 : ndr_print_ace_condition_unicode(ndr, name, r);
206 0 : }
207 :
208 0 : _PUBLIC_ void ndr_print_ace_condition_unicode(struct ndr_print *ndr, const char *name, const struct ace_condition_unicode *r)
209 : {
210 0 : ndr_print_struct(ndr, name, "ace_condition_unicode");
211 0 : if (r == NULL) { ndr_print_null(ndr); return; }
212 0 : ndr->depth++;
213 : {
214 0 : libndr_flags _flags_save_string = ndr->flags;
215 0 : ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_SIZE4|LIBNDR_FLAG_STR_NOTERM|LIBNDR_FLAG_STR_BYTESIZE|LIBNDR_FLAG_STR_NO_EMBEDDED_NUL);
216 0 : ndr_print_string(ndr, "value", r->value);
217 0 : ndr->flags = _flags_save_string;
218 : }
219 0 : ndr->depth--;
220 : }
221 :
222 785 : _PUBLIC_ enum ndr_err_code ndr_push_ace_condition_sid(struct ndr_push *ndr, ndr_flags_type ndr_flags, const struct ace_condition_sid *r)
223 : {
224 785 : NDR_PUSH_CHECK_FLAGS(ndr, ndr_flags);
225 785 : if (ndr_flags & NDR_SCALARS) {
226 785 : NDR_CHECK(ndr_push_align(ndr, 1));
227 : {
228 487 : struct ndr_push *_ndr_sid;
229 785 : NDR_CHECK(ndr_push_subcontext_start(ndr, &_ndr_sid, 4, -1));
230 785 : NDR_CHECK(ndr_push_dom_sid(_ndr_sid, NDR_SCALARS, &r->sid));
231 785 : NDR_CHECK(ndr_push_subcontext_end(ndr, _ndr_sid, 4, -1));
232 : }
233 785 : NDR_CHECK(ndr_push_trailer_align(ndr, 1));
234 : }
235 785 : if (ndr_flags & NDR_BUFFERS) {
236 487 : }
237 785 : return NDR_ERR_SUCCESS;
238 : }
239 :
240 367 : _PUBLIC_ enum ndr_err_code ndr_pull_ace_condition_sid(struct ndr_pull *ndr, ndr_flags_type ndr_flags, struct ace_condition_sid *r)
241 : {
242 367 : NDR_PULL_CHECK_FLAGS(ndr, ndr_flags);
243 367 : if (ndr_flags & NDR_SCALARS) {
244 367 : NDR_CHECK(ndr_pull_align(ndr, 1));
245 : {
246 100 : struct ndr_pull *_ndr_sid;
247 367 : ssize_t sub_size = -1;
248 367 : NDR_CHECK(ndr_pull_subcontext_start(ndr, &_ndr_sid, 4, sub_size));
249 367 : NDR_CHECK(ndr_pull_dom_sid(_ndr_sid, NDR_SCALARS, &r->sid));
250 367 : NDR_CHECK(ndr_pull_subcontext_end(ndr, _ndr_sid, 4, sub_size));
251 : }
252 367 : NDR_CHECK(ndr_pull_trailer_align(ndr, 1));
253 : }
254 367 : if (ndr_flags & NDR_BUFFERS) {
255 100 : }
256 367 : return NDR_ERR_SUCCESS;
257 : }
258 :
259 0 : static void ndr_print_flags_ace_condition_sid(struct ndr_print *ndr, const char *name, ndr_flags_type unused, const struct ace_condition_sid *r)
260 : {
261 0 : ndr_print_ace_condition_sid(ndr, name, r);
262 0 : }
263 :
264 0 : _PUBLIC_ void ndr_print_ace_condition_sid(struct ndr_print *ndr, const char *name, const struct ace_condition_sid *r)
265 : {
266 0 : ndr_print_struct(ndr, name, "ace_condition_sid");
267 0 : if (r == NULL) { ndr_print_null(ndr); return; }
268 0 : ndr->depth++;
269 0 : ndr_print_dom_sid(ndr, "sid", &r->sid);
270 0 : ndr->depth--;
271 : }
272 :
273 0 : static enum ndr_err_code ndr_push_ace_condition_composite(struct ndr_push *ndr, ndr_flags_type ndr_flags, const struct ace_condition_composite *r)
274 : {
275 0 : NDR_PUSH_CHECK_FLAGS(ndr, ndr_flags);
276 0 : if (ndr_flags & NDR_SCALARS) {
277 0 : NDR_CHECK(ndr_push_align(ndr, 5));
278 0 : NDR_CHECK(ndr_push_unique_ptr(ndr, r->tokens));
279 0 : NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->n_members));
280 0 : NDR_CHECK(ndr_push_trailer_align(ndr, 5));
281 : }
282 0 : if (ndr_flags & NDR_BUFFERS) {
283 0 : if (r->tokens) {
284 0 : NDR_CHECK(ndr_push_ace_condition_token(ndr, NDR_SCALARS|NDR_BUFFERS, r->tokens));
285 : }
286 : }
287 0 : return NDR_ERR_SUCCESS;
288 : }
289 :
290 0 : static enum ndr_err_code ndr_pull_ace_condition_composite(struct ndr_pull *ndr, ndr_flags_type ndr_flags, struct ace_condition_composite *r)
291 : {
292 0 : uint32_t _ptr_tokens;
293 0 : TALLOC_CTX *_mem_save_tokens_0 = NULL;
294 0 : NDR_PULL_CHECK_FLAGS(ndr, ndr_flags);
295 0 : if (ndr_flags & NDR_SCALARS) {
296 0 : NDR_CHECK(ndr_pull_align(ndr, 5));
297 0 : NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_tokens));
298 0 : if (_ptr_tokens) {
299 0 : NDR_PULL_ALLOC(ndr, r->tokens);
300 : } else {
301 0 : r->tokens = NULL;
302 : }
303 0 : NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->n_members));
304 0 : NDR_CHECK(ndr_pull_trailer_align(ndr, 5));
305 : }
306 0 : if (ndr_flags & NDR_BUFFERS) {
307 0 : if (r->tokens) {
308 0 : _mem_save_tokens_0 = NDR_PULL_GET_MEM_CTX(ndr);
309 0 : NDR_PULL_SET_MEM_CTX(ndr, r->tokens, 0);
310 0 : NDR_CHECK(ndr_pull_ace_condition_token(ndr, NDR_SCALARS|NDR_BUFFERS, r->tokens));
311 0 : NDR_PULL_SET_MEM_CTX(ndr, _mem_save_tokens_0, 0);
312 : }
313 : }
314 0 : return NDR_ERR_SUCCESS;
315 : }
316 :
317 0 : _PUBLIC_ void ndr_print_ace_condition_composite(struct ndr_print *ndr, const char *name, const struct ace_condition_composite *r)
318 : {
319 0 : ndr_print_struct(ndr, name, "ace_condition_composite");
320 0 : if (r == NULL) { ndr_print_null(ndr); return; }
321 0 : ndr->depth++;
322 0 : ndr_print_ptr(ndr, "tokens", r->tokens);
323 0 : ndr->depth++;
324 0 : if (r->tokens) {
325 0 : ndr_print_ace_condition_token(ndr, "tokens", r->tokens);
326 : }
327 0 : ndr->depth--;
328 0 : ndr_print_uint32(ndr, "n_members", r->n_members);
329 0 : ndr->depth--;
330 : }
331 :
332 0 : static enum ndr_err_code ndr_push_ace_condition_op(struct ndr_push *ndr, ndr_flags_type ndr_flags, const struct ace_condition_op *r)
333 : {
334 0 : NDR_PUSH_CHECK_FLAGS(ndr, ndr_flags);
335 0 : if (ndr_flags & NDR_SCALARS) {
336 0 : NDR_CHECK(ndr_push_align(ndr, 4));
337 0 : NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->sddl_position));
338 0 : NDR_CHECK(ndr_push_trailer_align(ndr, 4));
339 : }
340 0 : if (ndr_flags & NDR_BUFFERS) {
341 0 : }
342 0 : return NDR_ERR_SUCCESS;
343 : }
344 :
345 0 : static enum ndr_err_code ndr_pull_ace_condition_op(struct ndr_pull *ndr, ndr_flags_type ndr_flags, struct ace_condition_op *r)
346 : {
347 0 : NDR_PULL_CHECK_FLAGS(ndr, ndr_flags);
348 0 : if (ndr_flags & NDR_SCALARS) {
349 0 : NDR_CHECK(ndr_pull_align(ndr, 4));
350 0 : NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->sddl_position));
351 0 : NDR_CHECK(ndr_pull_trailer_align(ndr, 4));
352 : }
353 0 : if (ndr_flags & NDR_BUFFERS) {
354 0 : }
355 0 : return NDR_ERR_SUCCESS;
356 : }
357 :
358 0 : _PUBLIC_ void ndr_print_ace_condition_op(struct ndr_print *ndr, const char *name, const struct ace_condition_op *r)
359 : {
360 0 : ndr_print_struct(ndr, name, "ace_condition_op");
361 0 : if (r == NULL) { ndr_print_null(ndr); return; }
362 0 : ndr->depth++;
363 0 : ndr_print_uint32(ndr, "sddl_position", r->sddl_position);
364 0 : ndr->depth--;
365 : }
366 :
367 0 : static enum ndr_err_code ndr_push_ace_condition_sddl_op(struct ndr_push *ndr, ndr_flags_type ndr_flags, const struct ace_condition_sddl_op *r)
368 : {
369 0 : NDR_PUSH_CHECK_FLAGS(ndr, ndr_flags);
370 0 : if (ndr_flags & NDR_SCALARS) {
371 0 : NDR_CHECK(ndr_push_align(ndr, 4));
372 0 : NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->start));
373 0 : NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->position));
374 0 : NDR_CHECK(ndr_push_trailer_align(ndr, 4));
375 : }
376 0 : if (ndr_flags & NDR_BUFFERS) {
377 0 : }
378 0 : return NDR_ERR_SUCCESS;
379 : }
380 :
381 0 : static enum ndr_err_code ndr_pull_ace_condition_sddl_op(struct ndr_pull *ndr, ndr_flags_type ndr_flags, struct ace_condition_sddl_op *r)
382 : {
383 0 : NDR_PULL_CHECK_FLAGS(ndr, ndr_flags);
384 0 : if (ndr_flags & NDR_SCALARS) {
385 0 : NDR_CHECK(ndr_pull_align(ndr, 4));
386 0 : NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->start));
387 0 : NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->position));
388 0 : NDR_CHECK(ndr_pull_trailer_align(ndr, 4));
389 : }
390 0 : if (ndr_flags & NDR_BUFFERS) {
391 0 : }
392 0 : return NDR_ERR_SUCCESS;
393 : }
394 :
395 0 : _PUBLIC_ void ndr_print_ace_condition_sddl_op(struct ndr_print *ndr, const char *name, const struct ace_condition_sddl_op *r)
396 : {
397 0 : ndr_print_struct(ndr, name, "ace_condition_sddl_op");
398 0 : if (r == NULL) { ndr_print_null(ndr); return; }
399 0 : ndr->depth++;
400 0 : ndr_print_uint32(ndr, "start", r->start);
401 0 : ndr_print_uint32(ndr, "position", r->position);
402 0 : ndr->depth--;
403 : }
404 :
405 0 : static enum ndr_err_code ndr_push_ace_condition_token_data(struct ndr_push *ndr, ndr_flags_type ndr_flags, const union ace_condition_token_data *r)
406 : {
407 0 : uint32_t level;
408 0 : NDR_PUSH_CHECK_FLAGS(ndr, ndr_flags);
409 0 : if (ndr_flags & NDR_SCALARS) {
410 : /* This token is not used again (except perhaps below in the NDR_BUFFERS case) */
411 0 : NDR_CHECK(ndr_push_steal_switch_value(ndr, r, &level));
412 0 : NDR_CHECK(ndr_push_union_align(ndr, 8));
413 0 : switch (level) {
414 0 : case CONDITIONAL_ACE_TOKEN_SID: {
415 0 : NDR_CHECK(ndr_push_ace_condition_sid(ndr, NDR_SCALARS, &r->sid));
416 0 : break; }
417 :
418 0 : case CONDITIONAL_ACE_TOKEN_COMPOSITE: {
419 0 : NDR_CHECK(ndr_push_ace_condition_composite(ndr, NDR_SCALARS, &r->composite));
420 0 : break; }
421 :
422 0 : case CONDITIONAL_ACE_TOKEN_OCTET_STRING: {
423 0 : NDR_CHECK(ndr_push_DATA_BLOB(ndr, NDR_SCALARS, r->bytes));
424 0 : break; }
425 :
426 0 : case CONDITIONAL_ACE_TOKEN_UNICODE: {
427 0 : NDR_CHECK(ndr_push_ace_condition_unicode(ndr, NDR_SCALARS, &r->unicode));
428 0 : break; }
429 :
430 0 : case CONDITIONAL_ACE_LOCAL_ATTRIBUTE: {
431 0 : NDR_CHECK(ndr_push_ace_condition_unicode(ndr, NDR_SCALARS, &r->local_attr));
432 0 : break; }
433 :
434 0 : case CONDITIONAL_ACE_USER_ATTRIBUTE: {
435 0 : NDR_CHECK(ndr_push_ace_condition_unicode(ndr, NDR_SCALARS, &r->user_attr));
436 0 : break; }
437 :
438 0 : case CONDITIONAL_ACE_DEVICE_ATTRIBUTE: {
439 0 : NDR_CHECK(ndr_push_ace_condition_unicode(ndr, NDR_SCALARS, &r->device_attr));
440 0 : break; }
441 :
442 0 : case CONDITIONAL_ACE_RESOURCE_ATTRIBUTE: {
443 0 : NDR_CHECK(ndr_push_ace_condition_unicode(ndr, NDR_SCALARS, &r->resource_attr));
444 0 : break; }
445 :
446 0 : case CONDITIONAL_ACE_TOKEN_INT64: {
447 0 : NDR_CHECK(ndr_push_ace_condition_int(ndr, NDR_SCALARS, &r->int64));
448 0 : break; }
449 :
450 0 : case CONDITIONAL_ACE_TOKEN_INT32: {
451 0 : NDR_CHECK(ndr_push_ace_condition_int(ndr, NDR_SCALARS, &r->int32));
452 0 : break; }
453 :
454 0 : case CONDITIONAL_ACE_TOKEN_INT16: {
455 0 : NDR_CHECK(ndr_push_ace_condition_int(ndr, NDR_SCALARS, &r->int16));
456 0 : break; }
457 :
458 0 : case CONDITIONAL_ACE_TOKEN_INT8: {
459 0 : NDR_CHECK(ndr_push_ace_condition_int(ndr, NDR_SCALARS, &r->int8));
460 0 : break; }
461 :
462 0 : case CONDITIONAL_ACE_SAMBA_SDDL_PAREN: {
463 0 : NDR_CHECK(ndr_push_ace_condition_sddl_op(ndr, NDR_SCALARS, &r->sddl_op));
464 0 : break; }
465 :
466 0 : case CONDITIONAL_ACE_SAMBA_RESULT_BOOL: {
467 0 : NDR_CHECK(ndr_push_ace_condition_result(ndr, NDR_SCALARS, &r->result));
468 0 : break; }
469 :
470 0 : case CONDITIONAL_ACE_SAMBA_RESULT_NULL: {
471 0 : NDR_CHECK(ndr_push_ace_condition_result(ndr, NDR_SCALARS, &r->result_null));
472 0 : break; }
473 :
474 0 : case CONDITIONAL_ACE_SAMBA_RESULT_ERROR: {
475 0 : NDR_CHECK(ndr_push_ace_condition_result(ndr, NDR_SCALARS, &r->result_error));
476 0 : break; }
477 :
478 0 : case CONDITIONAL_ACE_TOKEN_MEMBER_OF: {
479 0 : NDR_CHECK(ndr_push_ace_condition_op(ndr, NDR_SCALARS, &r->member_of));
480 0 : break; }
481 :
482 0 : case CONDITIONAL_ACE_TOKEN_DEVICE_MEMBER_OF: {
483 0 : NDR_CHECK(ndr_push_ace_condition_op(ndr, NDR_SCALARS, &r->device_member_of));
484 0 : break; }
485 :
486 0 : case CONDITIONAL_ACE_TOKEN_MEMBER_OF_ANY: {
487 0 : NDR_CHECK(ndr_push_ace_condition_op(ndr, NDR_SCALARS, &r->member_of_any));
488 0 : break; }
489 :
490 0 : case CONDITIONAL_ACE_TOKEN_DEVICE_MEMBER_OF_ANY: {
491 0 : NDR_CHECK(ndr_push_ace_condition_op(ndr, NDR_SCALARS, &r->device_member_of_any));
492 0 : break; }
493 :
494 0 : case CONDITIONAL_ACE_TOKEN_NOT_MEMBER_OF: {
495 0 : NDR_CHECK(ndr_push_ace_condition_op(ndr, NDR_SCALARS, &r->not_member_of));
496 0 : break; }
497 :
498 0 : case CONDITIONAL_ACE_TOKEN_NOT_DEVICE_MEMBER_OF: {
499 0 : NDR_CHECK(ndr_push_ace_condition_op(ndr, NDR_SCALARS, &r->not_device_member_of));
500 0 : break; }
501 :
502 0 : case CONDITIONAL_ACE_TOKEN_NOT_MEMBER_OF_ANY: {
503 0 : NDR_CHECK(ndr_push_ace_condition_op(ndr, NDR_SCALARS, &r->not_member_of_any));
504 0 : break; }
505 :
506 0 : case CONDITIONAL_ACE_TOKEN_NOT_DEVICE_MEMBER_OF_ANY: {
507 0 : NDR_CHECK(ndr_push_ace_condition_op(ndr, NDR_SCALARS, &r->not_device_member_of_any));
508 0 : break; }
509 :
510 0 : case CONDITIONAL_ACE_TOKEN_EQUAL: {
511 0 : NDR_CHECK(ndr_push_ace_condition_op(ndr, NDR_SCALARS, &r->equal));
512 0 : break; }
513 :
514 0 : case CONDITIONAL_ACE_TOKEN_NOT_EQUAL: {
515 0 : NDR_CHECK(ndr_push_ace_condition_op(ndr, NDR_SCALARS, &r->not_equal));
516 0 : break; }
517 :
518 0 : case CONDITIONAL_ACE_TOKEN_LESS_THAN: {
519 0 : NDR_CHECK(ndr_push_ace_condition_op(ndr, NDR_SCALARS, &r->less_than));
520 0 : break; }
521 :
522 0 : case CONDITIONAL_ACE_TOKEN_LESS_OR_EQUAL: {
523 0 : NDR_CHECK(ndr_push_ace_condition_op(ndr, NDR_SCALARS, &r->less_or_equal));
524 0 : break; }
525 :
526 0 : case CONDITIONAL_ACE_TOKEN_GREATER_THAN: {
527 0 : NDR_CHECK(ndr_push_ace_condition_op(ndr, NDR_SCALARS, &r->greater_than));
528 0 : break; }
529 :
530 0 : case CONDITIONAL_ACE_TOKEN_GREATER_OR_EQUAL: {
531 0 : NDR_CHECK(ndr_push_ace_condition_op(ndr, NDR_SCALARS, &r->greater_or_equal));
532 0 : break; }
533 :
534 0 : case CONDITIONAL_ACE_TOKEN_CONTAINS: {
535 0 : NDR_CHECK(ndr_push_ace_condition_op(ndr, NDR_SCALARS, &r->contains));
536 0 : break; }
537 :
538 0 : case CONDITIONAL_ACE_TOKEN_ANY_OF: {
539 0 : NDR_CHECK(ndr_push_ace_condition_op(ndr, NDR_SCALARS, &r->any_of));
540 0 : break; }
541 :
542 0 : case CONDITIONAL_ACE_TOKEN_NOT_CONTAINS: {
543 0 : NDR_CHECK(ndr_push_ace_condition_op(ndr, NDR_SCALARS, &r->not_contains));
544 0 : break; }
545 :
546 0 : case CONDITIONAL_ACE_TOKEN_NOT_ANY_OF: {
547 0 : NDR_CHECK(ndr_push_ace_condition_op(ndr, NDR_SCALARS, &r->not_any_of));
548 0 : break; }
549 :
550 0 : case CONDITIONAL_ACE_TOKEN_AND: {
551 0 : NDR_CHECK(ndr_push_ace_condition_op(ndr, NDR_SCALARS, &r->and));
552 0 : break; }
553 :
554 0 : case CONDITIONAL_ACE_TOKEN_OR: {
555 0 : NDR_CHECK(ndr_push_ace_condition_op(ndr, NDR_SCALARS, &r->or));
556 0 : break; }
557 :
558 0 : case CONDITIONAL_ACE_TOKEN_NOT: {
559 0 : NDR_CHECK(ndr_push_ace_condition_op(ndr, NDR_SCALARS, &r->not));
560 0 : break; }
561 :
562 0 : case CONDITIONAL_ACE_TOKEN_EXISTS: {
563 0 : NDR_CHECK(ndr_push_ace_condition_op(ndr, NDR_SCALARS, &r->exists));
564 0 : break; }
565 :
566 0 : case CONDITIONAL_ACE_TOKEN_NOT_EXISTS: {
567 0 : NDR_CHECK(ndr_push_ace_condition_op(ndr, NDR_SCALARS, &r->not_exists));
568 0 : break; }
569 :
570 0 : default: {
571 0 : NDR_CHECK(ndr_push_ace_condition_op(ndr, NDR_SCALARS, &r->op));
572 0 : break; }
573 :
574 : }
575 : }
576 0 : if (ndr_flags & NDR_BUFFERS) {
577 0 : if (!(ndr_flags & NDR_SCALARS)) {
578 : /* We didn't get it above, and the token is not needed after this. */
579 0 : NDR_CHECK(ndr_push_steal_switch_value(ndr, r, &level));
580 : }
581 0 : switch (level) {
582 0 : case CONDITIONAL_ACE_TOKEN_SID:
583 0 : break;
584 :
585 0 : case CONDITIONAL_ACE_TOKEN_COMPOSITE:
586 0 : NDR_CHECK(ndr_push_ace_condition_composite(ndr, NDR_BUFFERS, &r->composite));
587 0 : break;
588 :
589 0 : case CONDITIONAL_ACE_TOKEN_OCTET_STRING:
590 0 : break;
591 :
592 0 : case CONDITIONAL_ACE_TOKEN_UNICODE:
593 0 : break;
594 :
595 0 : case CONDITIONAL_ACE_LOCAL_ATTRIBUTE:
596 0 : break;
597 :
598 0 : case CONDITIONAL_ACE_USER_ATTRIBUTE:
599 0 : break;
600 :
601 0 : case CONDITIONAL_ACE_DEVICE_ATTRIBUTE:
602 0 : break;
603 :
604 0 : case CONDITIONAL_ACE_RESOURCE_ATTRIBUTE:
605 0 : break;
606 :
607 0 : case CONDITIONAL_ACE_TOKEN_INT64:
608 0 : break;
609 :
610 0 : case CONDITIONAL_ACE_TOKEN_INT32:
611 0 : break;
612 :
613 0 : case CONDITIONAL_ACE_TOKEN_INT16:
614 0 : break;
615 :
616 0 : case CONDITIONAL_ACE_TOKEN_INT8:
617 0 : break;
618 :
619 0 : case CONDITIONAL_ACE_SAMBA_SDDL_PAREN:
620 0 : break;
621 :
622 0 : case CONDITIONAL_ACE_SAMBA_RESULT_BOOL:
623 0 : break;
624 :
625 0 : case CONDITIONAL_ACE_SAMBA_RESULT_NULL:
626 0 : break;
627 :
628 0 : case CONDITIONAL_ACE_SAMBA_RESULT_ERROR:
629 0 : break;
630 :
631 0 : case CONDITIONAL_ACE_TOKEN_MEMBER_OF:
632 0 : break;
633 :
634 0 : case CONDITIONAL_ACE_TOKEN_DEVICE_MEMBER_OF:
635 0 : break;
636 :
637 0 : case CONDITIONAL_ACE_TOKEN_MEMBER_OF_ANY:
638 0 : break;
639 :
640 0 : case CONDITIONAL_ACE_TOKEN_DEVICE_MEMBER_OF_ANY:
641 0 : break;
642 :
643 0 : case CONDITIONAL_ACE_TOKEN_NOT_MEMBER_OF:
644 0 : break;
645 :
646 0 : case CONDITIONAL_ACE_TOKEN_NOT_DEVICE_MEMBER_OF:
647 0 : break;
648 :
649 0 : case CONDITIONAL_ACE_TOKEN_NOT_MEMBER_OF_ANY:
650 0 : break;
651 :
652 0 : case CONDITIONAL_ACE_TOKEN_NOT_DEVICE_MEMBER_OF_ANY:
653 0 : break;
654 :
655 0 : case CONDITIONAL_ACE_TOKEN_EQUAL:
656 0 : break;
657 :
658 0 : case CONDITIONAL_ACE_TOKEN_NOT_EQUAL:
659 0 : break;
660 :
661 0 : case CONDITIONAL_ACE_TOKEN_LESS_THAN:
662 0 : break;
663 :
664 0 : case CONDITIONAL_ACE_TOKEN_LESS_OR_EQUAL:
665 0 : break;
666 :
667 0 : case CONDITIONAL_ACE_TOKEN_GREATER_THAN:
668 0 : break;
669 :
670 0 : case CONDITIONAL_ACE_TOKEN_GREATER_OR_EQUAL:
671 0 : break;
672 :
673 0 : case CONDITIONAL_ACE_TOKEN_CONTAINS:
674 0 : break;
675 :
676 0 : case CONDITIONAL_ACE_TOKEN_ANY_OF:
677 0 : break;
678 :
679 0 : case CONDITIONAL_ACE_TOKEN_NOT_CONTAINS:
680 0 : break;
681 :
682 0 : case CONDITIONAL_ACE_TOKEN_NOT_ANY_OF:
683 0 : break;
684 :
685 0 : case CONDITIONAL_ACE_TOKEN_AND:
686 0 : break;
687 :
688 0 : case CONDITIONAL_ACE_TOKEN_OR:
689 0 : break;
690 :
691 0 : case CONDITIONAL_ACE_TOKEN_NOT:
692 0 : break;
693 :
694 0 : case CONDITIONAL_ACE_TOKEN_EXISTS:
695 0 : break;
696 :
697 0 : case CONDITIONAL_ACE_TOKEN_NOT_EXISTS:
698 0 : break;
699 :
700 0 : default:
701 0 : break;
702 :
703 : }
704 : }
705 0 : return NDR_ERR_SUCCESS;
706 : }
707 :
708 0 : static enum ndr_err_code ndr_pull_ace_condition_token_data(struct ndr_pull *ndr, ndr_flags_type ndr_flags, union ace_condition_token_data *r)
709 : {
710 0 : uint32_t level;
711 0 : NDR_PULL_CHECK_FLAGS(ndr, ndr_flags);
712 0 : if (ndr_flags & NDR_SCALARS) {
713 : /* This token is not used again (except perhaps below in the NDR_BUFFERS case) */
714 0 : NDR_CHECK(ndr_pull_steal_switch_value(ndr, r, &level));
715 0 : NDR_CHECK(ndr_pull_union_align(ndr, 8));
716 0 : switch (level) {
717 0 : case CONDITIONAL_ACE_TOKEN_SID: {
718 0 : NDR_CHECK(ndr_pull_ace_condition_sid(ndr, NDR_SCALARS, &r->sid));
719 0 : break; }
720 :
721 0 : case CONDITIONAL_ACE_TOKEN_COMPOSITE: {
722 0 : NDR_CHECK(ndr_pull_ace_condition_composite(ndr, NDR_SCALARS, &r->composite));
723 0 : break; }
724 :
725 0 : case CONDITIONAL_ACE_TOKEN_OCTET_STRING: {
726 0 : NDR_CHECK(ndr_pull_DATA_BLOB(ndr, NDR_SCALARS, &r->bytes));
727 0 : break; }
728 :
729 0 : case CONDITIONAL_ACE_TOKEN_UNICODE: {
730 0 : NDR_CHECK(ndr_pull_ace_condition_unicode(ndr, NDR_SCALARS, &r->unicode));
731 0 : break; }
732 :
733 0 : case CONDITIONAL_ACE_LOCAL_ATTRIBUTE: {
734 0 : NDR_CHECK(ndr_pull_ace_condition_unicode(ndr, NDR_SCALARS, &r->local_attr));
735 0 : break; }
736 :
737 0 : case CONDITIONAL_ACE_USER_ATTRIBUTE: {
738 0 : NDR_CHECK(ndr_pull_ace_condition_unicode(ndr, NDR_SCALARS, &r->user_attr));
739 0 : break; }
740 :
741 0 : case CONDITIONAL_ACE_DEVICE_ATTRIBUTE: {
742 0 : NDR_CHECK(ndr_pull_ace_condition_unicode(ndr, NDR_SCALARS, &r->device_attr));
743 0 : break; }
744 :
745 0 : case CONDITIONAL_ACE_RESOURCE_ATTRIBUTE: {
746 0 : NDR_CHECK(ndr_pull_ace_condition_unicode(ndr, NDR_SCALARS, &r->resource_attr));
747 0 : break; }
748 :
749 0 : case CONDITIONAL_ACE_TOKEN_INT64: {
750 0 : NDR_CHECK(ndr_pull_ace_condition_int(ndr, NDR_SCALARS, &r->int64));
751 0 : break; }
752 :
753 0 : case CONDITIONAL_ACE_TOKEN_INT32: {
754 0 : NDR_CHECK(ndr_pull_ace_condition_int(ndr, NDR_SCALARS, &r->int32));
755 0 : break; }
756 :
757 0 : case CONDITIONAL_ACE_TOKEN_INT16: {
758 0 : NDR_CHECK(ndr_pull_ace_condition_int(ndr, NDR_SCALARS, &r->int16));
759 0 : break; }
760 :
761 0 : case CONDITIONAL_ACE_TOKEN_INT8: {
762 0 : NDR_CHECK(ndr_pull_ace_condition_int(ndr, NDR_SCALARS, &r->int8));
763 0 : break; }
764 :
765 0 : case CONDITIONAL_ACE_SAMBA_SDDL_PAREN: {
766 0 : NDR_CHECK(ndr_pull_ace_condition_sddl_op(ndr, NDR_SCALARS, &r->sddl_op));
767 0 : break; }
768 :
769 0 : case CONDITIONAL_ACE_SAMBA_RESULT_BOOL: {
770 0 : NDR_CHECK(ndr_pull_ace_condition_result(ndr, NDR_SCALARS, &r->result));
771 0 : break; }
772 :
773 0 : case CONDITIONAL_ACE_SAMBA_RESULT_NULL: {
774 0 : NDR_CHECK(ndr_pull_ace_condition_result(ndr, NDR_SCALARS, &r->result_null));
775 0 : break; }
776 :
777 0 : case CONDITIONAL_ACE_SAMBA_RESULT_ERROR: {
778 0 : NDR_CHECK(ndr_pull_ace_condition_result(ndr, NDR_SCALARS, &r->result_error));
779 0 : break; }
780 :
781 0 : case CONDITIONAL_ACE_TOKEN_MEMBER_OF: {
782 0 : NDR_CHECK(ndr_pull_ace_condition_op(ndr, NDR_SCALARS, &r->member_of));
783 0 : break; }
784 :
785 0 : case CONDITIONAL_ACE_TOKEN_DEVICE_MEMBER_OF: {
786 0 : NDR_CHECK(ndr_pull_ace_condition_op(ndr, NDR_SCALARS, &r->device_member_of));
787 0 : break; }
788 :
789 0 : case CONDITIONAL_ACE_TOKEN_MEMBER_OF_ANY: {
790 0 : NDR_CHECK(ndr_pull_ace_condition_op(ndr, NDR_SCALARS, &r->member_of_any));
791 0 : break; }
792 :
793 0 : case CONDITIONAL_ACE_TOKEN_DEVICE_MEMBER_OF_ANY: {
794 0 : NDR_CHECK(ndr_pull_ace_condition_op(ndr, NDR_SCALARS, &r->device_member_of_any));
795 0 : break; }
796 :
797 0 : case CONDITIONAL_ACE_TOKEN_NOT_MEMBER_OF: {
798 0 : NDR_CHECK(ndr_pull_ace_condition_op(ndr, NDR_SCALARS, &r->not_member_of));
799 0 : break; }
800 :
801 0 : case CONDITIONAL_ACE_TOKEN_NOT_DEVICE_MEMBER_OF: {
802 0 : NDR_CHECK(ndr_pull_ace_condition_op(ndr, NDR_SCALARS, &r->not_device_member_of));
803 0 : break; }
804 :
805 0 : case CONDITIONAL_ACE_TOKEN_NOT_MEMBER_OF_ANY: {
806 0 : NDR_CHECK(ndr_pull_ace_condition_op(ndr, NDR_SCALARS, &r->not_member_of_any));
807 0 : break; }
808 :
809 0 : case CONDITIONAL_ACE_TOKEN_NOT_DEVICE_MEMBER_OF_ANY: {
810 0 : NDR_CHECK(ndr_pull_ace_condition_op(ndr, NDR_SCALARS, &r->not_device_member_of_any));
811 0 : break; }
812 :
813 0 : case CONDITIONAL_ACE_TOKEN_EQUAL: {
814 0 : NDR_CHECK(ndr_pull_ace_condition_op(ndr, NDR_SCALARS, &r->equal));
815 0 : break; }
816 :
817 0 : case CONDITIONAL_ACE_TOKEN_NOT_EQUAL: {
818 0 : NDR_CHECK(ndr_pull_ace_condition_op(ndr, NDR_SCALARS, &r->not_equal));
819 0 : break; }
820 :
821 0 : case CONDITIONAL_ACE_TOKEN_LESS_THAN: {
822 0 : NDR_CHECK(ndr_pull_ace_condition_op(ndr, NDR_SCALARS, &r->less_than));
823 0 : break; }
824 :
825 0 : case CONDITIONAL_ACE_TOKEN_LESS_OR_EQUAL: {
826 0 : NDR_CHECK(ndr_pull_ace_condition_op(ndr, NDR_SCALARS, &r->less_or_equal));
827 0 : break; }
828 :
829 0 : case CONDITIONAL_ACE_TOKEN_GREATER_THAN: {
830 0 : NDR_CHECK(ndr_pull_ace_condition_op(ndr, NDR_SCALARS, &r->greater_than));
831 0 : break; }
832 :
833 0 : case CONDITIONAL_ACE_TOKEN_GREATER_OR_EQUAL: {
834 0 : NDR_CHECK(ndr_pull_ace_condition_op(ndr, NDR_SCALARS, &r->greater_or_equal));
835 0 : break; }
836 :
837 0 : case CONDITIONAL_ACE_TOKEN_CONTAINS: {
838 0 : NDR_CHECK(ndr_pull_ace_condition_op(ndr, NDR_SCALARS, &r->contains));
839 0 : break; }
840 :
841 0 : case CONDITIONAL_ACE_TOKEN_ANY_OF: {
842 0 : NDR_CHECK(ndr_pull_ace_condition_op(ndr, NDR_SCALARS, &r->any_of));
843 0 : break; }
844 :
845 0 : case CONDITIONAL_ACE_TOKEN_NOT_CONTAINS: {
846 0 : NDR_CHECK(ndr_pull_ace_condition_op(ndr, NDR_SCALARS, &r->not_contains));
847 0 : break; }
848 :
849 0 : case CONDITIONAL_ACE_TOKEN_NOT_ANY_OF: {
850 0 : NDR_CHECK(ndr_pull_ace_condition_op(ndr, NDR_SCALARS, &r->not_any_of));
851 0 : break; }
852 :
853 0 : case CONDITIONAL_ACE_TOKEN_AND: {
854 0 : NDR_CHECK(ndr_pull_ace_condition_op(ndr, NDR_SCALARS, &r->and));
855 0 : break; }
856 :
857 0 : case CONDITIONAL_ACE_TOKEN_OR: {
858 0 : NDR_CHECK(ndr_pull_ace_condition_op(ndr, NDR_SCALARS, &r->or));
859 0 : break; }
860 :
861 0 : case CONDITIONAL_ACE_TOKEN_NOT: {
862 0 : NDR_CHECK(ndr_pull_ace_condition_op(ndr, NDR_SCALARS, &r->not));
863 0 : break; }
864 :
865 0 : case CONDITIONAL_ACE_TOKEN_EXISTS: {
866 0 : NDR_CHECK(ndr_pull_ace_condition_op(ndr, NDR_SCALARS, &r->exists));
867 0 : break; }
868 :
869 0 : case CONDITIONAL_ACE_TOKEN_NOT_EXISTS: {
870 0 : NDR_CHECK(ndr_pull_ace_condition_op(ndr, NDR_SCALARS, &r->not_exists));
871 0 : break; }
872 :
873 0 : default: {
874 0 : NDR_CHECK(ndr_pull_ace_condition_op(ndr, NDR_SCALARS, &r->op));
875 0 : break; }
876 :
877 : }
878 : }
879 0 : if (ndr_flags & NDR_BUFFERS) {
880 0 : if (!(ndr_flags & NDR_SCALARS)) {
881 : /* We didn't get it above, and the token is not needed after this. */
882 0 : NDR_CHECK(ndr_pull_steal_switch_value(ndr, r, &level));
883 : }
884 0 : switch (level) {
885 0 : case CONDITIONAL_ACE_TOKEN_SID:
886 0 : break;
887 :
888 0 : case CONDITIONAL_ACE_TOKEN_COMPOSITE:
889 0 : NDR_CHECK(ndr_pull_ace_condition_composite(ndr, NDR_BUFFERS, &r->composite));
890 0 : break;
891 :
892 0 : case CONDITIONAL_ACE_TOKEN_OCTET_STRING:
893 0 : break;
894 :
895 0 : case CONDITIONAL_ACE_TOKEN_UNICODE:
896 0 : break;
897 :
898 0 : case CONDITIONAL_ACE_LOCAL_ATTRIBUTE:
899 0 : break;
900 :
901 0 : case CONDITIONAL_ACE_USER_ATTRIBUTE:
902 0 : break;
903 :
904 0 : case CONDITIONAL_ACE_DEVICE_ATTRIBUTE:
905 0 : break;
906 :
907 0 : case CONDITIONAL_ACE_RESOURCE_ATTRIBUTE:
908 0 : break;
909 :
910 0 : case CONDITIONAL_ACE_TOKEN_INT64:
911 0 : break;
912 :
913 0 : case CONDITIONAL_ACE_TOKEN_INT32:
914 0 : break;
915 :
916 0 : case CONDITIONAL_ACE_TOKEN_INT16:
917 0 : break;
918 :
919 0 : case CONDITIONAL_ACE_TOKEN_INT8:
920 0 : break;
921 :
922 0 : case CONDITIONAL_ACE_SAMBA_SDDL_PAREN:
923 0 : break;
924 :
925 0 : case CONDITIONAL_ACE_SAMBA_RESULT_BOOL:
926 0 : break;
927 :
928 0 : case CONDITIONAL_ACE_SAMBA_RESULT_NULL:
929 0 : break;
930 :
931 0 : case CONDITIONAL_ACE_SAMBA_RESULT_ERROR:
932 0 : break;
933 :
934 0 : case CONDITIONAL_ACE_TOKEN_MEMBER_OF:
935 0 : break;
936 :
937 0 : case CONDITIONAL_ACE_TOKEN_DEVICE_MEMBER_OF:
938 0 : break;
939 :
940 0 : case CONDITIONAL_ACE_TOKEN_MEMBER_OF_ANY:
941 0 : break;
942 :
943 0 : case CONDITIONAL_ACE_TOKEN_DEVICE_MEMBER_OF_ANY:
944 0 : break;
945 :
946 0 : case CONDITIONAL_ACE_TOKEN_NOT_MEMBER_OF:
947 0 : break;
948 :
949 0 : case CONDITIONAL_ACE_TOKEN_NOT_DEVICE_MEMBER_OF:
950 0 : break;
951 :
952 0 : case CONDITIONAL_ACE_TOKEN_NOT_MEMBER_OF_ANY:
953 0 : break;
954 :
955 0 : case CONDITIONAL_ACE_TOKEN_NOT_DEVICE_MEMBER_OF_ANY:
956 0 : break;
957 :
958 0 : case CONDITIONAL_ACE_TOKEN_EQUAL:
959 0 : break;
960 :
961 0 : case CONDITIONAL_ACE_TOKEN_NOT_EQUAL:
962 0 : break;
963 :
964 0 : case CONDITIONAL_ACE_TOKEN_LESS_THAN:
965 0 : break;
966 :
967 0 : case CONDITIONAL_ACE_TOKEN_LESS_OR_EQUAL:
968 0 : break;
969 :
970 0 : case CONDITIONAL_ACE_TOKEN_GREATER_THAN:
971 0 : break;
972 :
973 0 : case CONDITIONAL_ACE_TOKEN_GREATER_OR_EQUAL:
974 0 : break;
975 :
976 0 : case CONDITIONAL_ACE_TOKEN_CONTAINS:
977 0 : break;
978 :
979 0 : case CONDITIONAL_ACE_TOKEN_ANY_OF:
980 0 : break;
981 :
982 0 : case CONDITIONAL_ACE_TOKEN_NOT_CONTAINS:
983 0 : break;
984 :
985 0 : case CONDITIONAL_ACE_TOKEN_NOT_ANY_OF:
986 0 : break;
987 :
988 0 : case CONDITIONAL_ACE_TOKEN_AND:
989 0 : break;
990 :
991 0 : case CONDITIONAL_ACE_TOKEN_OR:
992 0 : break;
993 :
994 0 : case CONDITIONAL_ACE_TOKEN_NOT:
995 0 : break;
996 :
997 0 : case CONDITIONAL_ACE_TOKEN_EXISTS:
998 0 : break;
999 :
1000 0 : case CONDITIONAL_ACE_TOKEN_NOT_EXISTS:
1001 0 : break;
1002 :
1003 0 : default:
1004 0 : break;
1005 :
1006 : }
1007 : }
1008 0 : return NDR_ERR_SUCCESS;
1009 : }
1010 :
1011 0 : _PUBLIC_ void ndr_print_ace_condition_token_data(struct ndr_print *ndr, const char *name, const union ace_condition_token_data *r)
1012 : {
1013 0 : uint32_t level;
1014 0 : level = ndr_print_steal_switch_value(ndr, r);
1015 0 : ndr_print_union(ndr, name, level, "ace_condition_token_data");
1016 0 : switch (level) {
1017 0 : case CONDITIONAL_ACE_TOKEN_SID:
1018 0 : ndr_print_ace_condition_sid(ndr, "sid", &r->sid);
1019 0 : break;
1020 :
1021 0 : case CONDITIONAL_ACE_TOKEN_COMPOSITE:
1022 0 : ndr_print_ace_condition_composite(ndr, "composite", &r->composite);
1023 0 : break;
1024 :
1025 0 : case CONDITIONAL_ACE_TOKEN_OCTET_STRING:
1026 0 : ndr_print_DATA_BLOB(ndr, "bytes", r->bytes);
1027 0 : break;
1028 :
1029 0 : case CONDITIONAL_ACE_TOKEN_UNICODE:
1030 0 : ndr_print_ace_condition_unicode(ndr, "unicode", &r->unicode);
1031 0 : break;
1032 :
1033 0 : case CONDITIONAL_ACE_LOCAL_ATTRIBUTE:
1034 0 : ndr_print_ace_condition_unicode(ndr, "local_attr", &r->local_attr);
1035 0 : break;
1036 :
1037 0 : case CONDITIONAL_ACE_USER_ATTRIBUTE:
1038 0 : ndr_print_ace_condition_unicode(ndr, "user_attr", &r->user_attr);
1039 0 : break;
1040 :
1041 0 : case CONDITIONAL_ACE_DEVICE_ATTRIBUTE:
1042 0 : ndr_print_ace_condition_unicode(ndr, "device_attr", &r->device_attr);
1043 0 : break;
1044 :
1045 0 : case CONDITIONAL_ACE_RESOURCE_ATTRIBUTE:
1046 0 : ndr_print_ace_condition_unicode(ndr, "resource_attr", &r->resource_attr);
1047 0 : break;
1048 :
1049 0 : case CONDITIONAL_ACE_TOKEN_INT64:
1050 0 : ndr_print_ace_condition_int(ndr, "int64", &r->int64);
1051 0 : break;
1052 :
1053 0 : case CONDITIONAL_ACE_TOKEN_INT32:
1054 0 : ndr_print_ace_condition_int(ndr, "int32", &r->int32);
1055 0 : break;
1056 :
1057 0 : case CONDITIONAL_ACE_TOKEN_INT16:
1058 0 : ndr_print_ace_condition_int(ndr, "int16", &r->int16);
1059 0 : break;
1060 :
1061 0 : case CONDITIONAL_ACE_TOKEN_INT8:
1062 0 : ndr_print_ace_condition_int(ndr, "int8", &r->int8);
1063 0 : break;
1064 :
1065 0 : case CONDITIONAL_ACE_SAMBA_SDDL_PAREN:
1066 0 : ndr_print_ace_condition_sddl_op(ndr, "sddl_op", &r->sddl_op);
1067 0 : break;
1068 :
1069 0 : case CONDITIONAL_ACE_SAMBA_RESULT_BOOL:
1070 0 : ndr_print_ace_condition_result(ndr, "result", &r->result);
1071 0 : break;
1072 :
1073 0 : case CONDITIONAL_ACE_SAMBA_RESULT_NULL:
1074 0 : ndr_print_ace_condition_result(ndr, "result_null", &r->result_null);
1075 0 : break;
1076 :
1077 0 : case CONDITIONAL_ACE_SAMBA_RESULT_ERROR:
1078 0 : ndr_print_ace_condition_result(ndr, "result_error", &r->result_error);
1079 0 : break;
1080 :
1081 0 : case CONDITIONAL_ACE_TOKEN_MEMBER_OF:
1082 0 : ndr_print_ace_condition_op(ndr, "member_of", &r->member_of);
1083 0 : break;
1084 :
1085 0 : case CONDITIONAL_ACE_TOKEN_DEVICE_MEMBER_OF:
1086 0 : ndr_print_ace_condition_op(ndr, "device_member_of", &r->device_member_of);
1087 0 : break;
1088 :
1089 0 : case CONDITIONAL_ACE_TOKEN_MEMBER_OF_ANY:
1090 0 : ndr_print_ace_condition_op(ndr, "member_of_any", &r->member_of_any);
1091 0 : break;
1092 :
1093 0 : case CONDITIONAL_ACE_TOKEN_DEVICE_MEMBER_OF_ANY:
1094 0 : ndr_print_ace_condition_op(ndr, "device_member_of_any", &r->device_member_of_any);
1095 0 : break;
1096 :
1097 0 : case CONDITIONAL_ACE_TOKEN_NOT_MEMBER_OF:
1098 0 : ndr_print_ace_condition_op(ndr, "not_member_of", &r->not_member_of);
1099 0 : break;
1100 :
1101 0 : case CONDITIONAL_ACE_TOKEN_NOT_DEVICE_MEMBER_OF:
1102 0 : ndr_print_ace_condition_op(ndr, "not_device_member_of", &r->not_device_member_of);
1103 0 : break;
1104 :
1105 0 : case CONDITIONAL_ACE_TOKEN_NOT_MEMBER_OF_ANY:
1106 0 : ndr_print_ace_condition_op(ndr, "not_member_of_any", &r->not_member_of_any);
1107 0 : break;
1108 :
1109 0 : case CONDITIONAL_ACE_TOKEN_NOT_DEVICE_MEMBER_OF_ANY:
1110 0 : ndr_print_ace_condition_op(ndr, "not_device_member_of_any", &r->not_device_member_of_any);
1111 0 : break;
1112 :
1113 0 : case CONDITIONAL_ACE_TOKEN_EQUAL:
1114 0 : ndr_print_ace_condition_op(ndr, "equal", &r->equal);
1115 0 : break;
1116 :
1117 0 : case CONDITIONAL_ACE_TOKEN_NOT_EQUAL:
1118 0 : ndr_print_ace_condition_op(ndr, "not_equal", &r->not_equal);
1119 0 : break;
1120 :
1121 0 : case CONDITIONAL_ACE_TOKEN_LESS_THAN:
1122 0 : ndr_print_ace_condition_op(ndr, "less_than", &r->less_than);
1123 0 : break;
1124 :
1125 0 : case CONDITIONAL_ACE_TOKEN_LESS_OR_EQUAL:
1126 0 : ndr_print_ace_condition_op(ndr, "less_or_equal", &r->less_or_equal);
1127 0 : break;
1128 :
1129 0 : case CONDITIONAL_ACE_TOKEN_GREATER_THAN:
1130 0 : ndr_print_ace_condition_op(ndr, "greater_than", &r->greater_than);
1131 0 : break;
1132 :
1133 0 : case CONDITIONAL_ACE_TOKEN_GREATER_OR_EQUAL:
1134 0 : ndr_print_ace_condition_op(ndr, "greater_or_equal", &r->greater_or_equal);
1135 0 : break;
1136 :
1137 0 : case CONDITIONAL_ACE_TOKEN_CONTAINS:
1138 0 : ndr_print_ace_condition_op(ndr, "contains", &r->contains);
1139 0 : break;
1140 :
1141 0 : case CONDITIONAL_ACE_TOKEN_ANY_OF:
1142 0 : ndr_print_ace_condition_op(ndr, "any_of", &r->any_of);
1143 0 : break;
1144 :
1145 0 : case CONDITIONAL_ACE_TOKEN_NOT_CONTAINS:
1146 0 : ndr_print_ace_condition_op(ndr, "not_contains", &r->not_contains);
1147 0 : break;
1148 :
1149 0 : case CONDITIONAL_ACE_TOKEN_NOT_ANY_OF:
1150 0 : ndr_print_ace_condition_op(ndr, "not_any_of", &r->not_any_of);
1151 0 : break;
1152 :
1153 0 : case CONDITIONAL_ACE_TOKEN_AND:
1154 0 : ndr_print_ace_condition_op(ndr, "and", &r->and);
1155 0 : break;
1156 :
1157 0 : case CONDITIONAL_ACE_TOKEN_OR:
1158 0 : ndr_print_ace_condition_op(ndr, "or", &r->or);
1159 0 : break;
1160 :
1161 0 : case CONDITIONAL_ACE_TOKEN_NOT:
1162 0 : ndr_print_ace_condition_op(ndr, "not", &r->not);
1163 0 : break;
1164 :
1165 0 : case CONDITIONAL_ACE_TOKEN_EXISTS:
1166 0 : ndr_print_ace_condition_op(ndr, "exists", &r->exists);
1167 0 : break;
1168 :
1169 0 : case CONDITIONAL_ACE_TOKEN_NOT_EXISTS:
1170 0 : ndr_print_ace_condition_op(ndr, "not_exists", &r->not_exists);
1171 0 : break;
1172 :
1173 0 : default:
1174 0 : ndr_print_ace_condition_op(ndr, "op", &r->op);
1175 0 : break;
1176 :
1177 : }
1178 0 : }
1179 :
1180 0 : _PUBLIC_ enum ndr_err_code ndr_push_ace_condition_token(struct ndr_push *ndr, ndr_flags_type ndr_flags, const struct ace_condition_token *r)
1181 : {
1182 0 : NDR_PUSH_CHECK_FLAGS(ndr, ndr_flags);
1183 0 : if (ndr_flags & NDR_SCALARS) {
1184 0 : NDR_CHECK(ndr_push_align(ndr, 8));
1185 0 : NDR_CHECK(ndr_push_set_switch_value(ndr, &r->data, r->type));
1186 0 : NDR_CHECK(ndr_push_ace_condition_token_data(ndr, NDR_SCALARS, &r->data));
1187 0 : NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->flags));
1188 0 : NDR_CHECK(ndr_push_token_type(ndr, NDR_SCALARS, r->type));
1189 0 : NDR_CHECK(ndr_push_trailer_align(ndr, 8));
1190 : }
1191 0 : if (ndr_flags & NDR_BUFFERS) {
1192 0 : NDR_CHECK(ndr_push_set_switch_value(ndr, &r->data, r->type));
1193 0 : NDR_CHECK(ndr_push_ace_condition_token_data(ndr, NDR_BUFFERS, &r->data));
1194 : }
1195 0 : return NDR_ERR_SUCCESS;
1196 : }
1197 :
1198 0 : _PUBLIC_ enum ndr_err_code ndr_pull_ace_condition_token(struct ndr_pull *ndr, ndr_flags_type ndr_flags, struct ace_condition_token *r)
1199 : {
1200 0 : NDR_PULL_CHECK_FLAGS(ndr, ndr_flags);
1201 0 : if (ndr_flags & NDR_SCALARS) {
1202 0 : NDR_CHECK(ndr_pull_align(ndr, 8));
1203 0 : NDR_CHECK(ndr_pull_set_switch_value(ndr, &r->data, r->type));
1204 0 : NDR_CHECK(ndr_pull_ace_condition_token_data(ndr, NDR_SCALARS, &r->data));
1205 0 : NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->flags));
1206 0 : NDR_CHECK(ndr_pull_token_type(ndr, NDR_SCALARS, &r->type));
1207 0 : NDR_CHECK(ndr_pull_trailer_align(ndr, 8));
1208 : }
1209 0 : if (ndr_flags & NDR_BUFFERS) {
1210 0 : NDR_CHECK(ndr_pull_set_switch_value(ndr, &r->data, r->type));
1211 0 : NDR_CHECK(ndr_pull_ace_condition_token_data(ndr, NDR_BUFFERS, &r->data));
1212 : }
1213 0 : return NDR_ERR_SUCCESS;
1214 : }
1215 :
1216 0 : static void ndr_print_flags_ace_condition_token(struct ndr_print *ndr, const char *name, ndr_flags_type unused, const struct ace_condition_token *r)
1217 : {
1218 0 : ndr_print_ace_condition_token(ndr, name, r);
1219 0 : }
1220 :
1221 0 : _PUBLIC_ void ndr_print_ace_condition_token(struct ndr_print *ndr, const char *name, const struct ace_condition_token *r)
1222 : {
1223 0 : ndr_print_struct(ndr, name, "ace_condition_token");
1224 0 : if (r == NULL) { ndr_print_null(ndr); return; }
1225 0 : ndr->depth++;
1226 0 : ndr_print_set_switch_value(ndr, &r->data, r->type);
1227 0 : ndr_print_ace_condition_token_data(ndr, "data", &r->data);
1228 0 : ndr_print_uint32(ndr, "flags", r->flags);
1229 0 : ndr_print_token_type(ndr, "type", r->type);
1230 0 : ndr->depth--;
1231 : }
1232 :
1233 0 : _PUBLIC_ enum ndr_err_code ndr_push_ace_condition_script(struct ndr_push *ndr, ndr_flags_type ndr_flags, const struct ace_condition_script *r)
1234 : {
1235 0 : NDR_PUSH_CHECK_FLAGS(ndr, ndr_flags);
1236 0 : if (ndr_flags & NDR_SCALARS) {
1237 0 : NDR_CHECK(ndr_push_align(ndr, 5));
1238 0 : NDR_CHECK(ndr_push_unique_ptr(ndr, r->tokens));
1239 0 : NDR_CHECK(ndr_push_unique_ptr(ndr, r->stack));
1240 0 : NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->length));
1241 0 : NDR_CHECK(ndr_push_trailer_align(ndr, 5));
1242 : }
1243 0 : if (ndr_flags & NDR_BUFFERS) {
1244 0 : if (r->tokens) {
1245 0 : NDR_CHECK(ndr_push_ace_condition_token(ndr, NDR_SCALARS|NDR_BUFFERS, r->tokens));
1246 : }
1247 0 : if (r->stack) {
1248 0 : NDR_CHECK(ndr_push_ace_condition_token(ndr, NDR_SCALARS|NDR_BUFFERS, r->stack));
1249 : }
1250 : }
1251 0 : return NDR_ERR_SUCCESS;
1252 : }
1253 :
1254 0 : _PUBLIC_ enum ndr_err_code ndr_pull_ace_condition_script(struct ndr_pull *ndr, ndr_flags_type ndr_flags, struct ace_condition_script *r)
1255 : {
1256 0 : uint32_t _ptr_tokens;
1257 0 : TALLOC_CTX *_mem_save_tokens_0 = NULL;
1258 0 : uint32_t _ptr_stack;
1259 0 : TALLOC_CTX *_mem_save_stack_0 = NULL;
1260 0 : NDR_PULL_CHECK_FLAGS(ndr, ndr_flags);
1261 0 : if (ndr_flags & NDR_SCALARS) {
1262 0 : NDR_CHECK(ndr_pull_align(ndr, 5));
1263 0 : NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_tokens));
1264 0 : if (_ptr_tokens) {
1265 0 : NDR_PULL_ALLOC(ndr, r->tokens);
1266 : } else {
1267 0 : r->tokens = NULL;
1268 : }
1269 0 : NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_stack));
1270 0 : if (_ptr_stack) {
1271 0 : NDR_PULL_ALLOC(ndr, r->stack);
1272 : } else {
1273 0 : r->stack = NULL;
1274 : }
1275 0 : NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->length));
1276 0 : NDR_CHECK(ndr_pull_trailer_align(ndr, 5));
1277 : }
1278 0 : if (ndr_flags & NDR_BUFFERS) {
1279 0 : if (r->tokens) {
1280 0 : _mem_save_tokens_0 = NDR_PULL_GET_MEM_CTX(ndr);
1281 0 : NDR_PULL_SET_MEM_CTX(ndr, r->tokens, 0);
1282 0 : NDR_CHECK(ndr_pull_ace_condition_token(ndr, NDR_SCALARS|NDR_BUFFERS, r->tokens));
1283 0 : NDR_PULL_SET_MEM_CTX(ndr, _mem_save_tokens_0, 0);
1284 : }
1285 0 : if (r->stack) {
1286 0 : _mem_save_stack_0 = NDR_PULL_GET_MEM_CTX(ndr);
1287 0 : NDR_PULL_SET_MEM_CTX(ndr, r->stack, 0);
1288 0 : NDR_CHECK(ndr_pull_ace_condition_token(ndr, NDR_SCALARS|NDR_BUFFERS, r->stack));
1289 0 : NDR_PULL_SET_MEM_CTX(ndr, _mem_save_stack_0, 0);
1290 : }
1291 : }
1292 0 : return NDR_ERR_SUCCESS;
1293 : }
1294 :
1295 0 : static void ndr_print_flags_ace_condition_script(struct ndr_print *ndr, const char *name, ndr_flags_type unused, const struct ace_condition_script *r)
1296 : {
1297 0 : ndr_print_ace_condition_script(ndr, name, r);
1298 0 : }
1299 :
1300 0 : _PUBLIC_ void ndr_print_ace_condition_script(struct ndr_print *ndr, const char *name, const struct ace_condition_script *r)
1301 : {
1302 0 : ndr_print_struct(ndr, name, "ace_condition_script");
1303 0 : if (r == NULL) { ndr_print_null(ndr); return; }
1304 0 : ndr->depth++;
1305 0 : ndr_print_ptr(ndr, "tokens", r->tokens);
1306 0 : ndr->depth++;
1307 0 : if (r->tokens) {
1308 0 : ndr_print_ace_condition_token(ndr, "tokens", r->tokens);
1309 : }
1310 0 : ndr->depth--;
1311 0 : ndr_print_ptr(ndr, "stack", r->stack);
1312 0 : ndr->depth++;
1313 0 : if (r->stack) {
1314 0 : ndr_print_ace_condition_token(ndr, "stack", r->stack);
1315 : }
1316 0 : ndr->depth--;
1317 0 : ndr_print_uint32(ndr, "length", r->length);
1318 0 : ndr->depth--;
1319 : }
1320 :
1321 : #ifndef SKIP_NDR_TABLE_conditional_ace
1322 : static const struct ndr_interface_public_struct conditional_ace_public_structs[] = {
1323 : {
1324 : .name = "ace_condition_int",
1325 : .struct_size = sizeof(struct ace_condition_int ),
1326 : .ndr_push = (ndr_push_flags_fn_t) ndr_push_ace_condition_int,
1327 : .ndr_pull = (ndr_pull_flags_fn_t) ndr_pull_ace_condition_int,
1328 : .ndr_print = (ndr_print_function_t) ndr_print_flags_ace_condition_int,
1329 : },
1330 : {
1331 : .name = "ace_condition_unicode",
1332 : .struct_size = sizeof(struct ace_condition_unicode ),
1333 : .ndr_push = (ndr_push_flags_fn_t) ndr_push_ace_condition_unicode,
1334 : .ndr_pull = (ndr_pull_flags_fn_t) ndr_pull_ace_condition_unicode,
1335 : .ndr_print = (ndr_print_function_t) ndr_print_flags_ace_condition_unicode,
1336 : },
1337 : {
1338 : .name = "ace_condition_sid",
1339 : .struct_size = sizeof(struct ace_condition_sid ),
1340 : .ndr_push = (ndr_push_flags_fn_t) ndr_push_ace_condition_sid,
1341 : .ndr_pull = (ndr_pull_flags_fn_t) ndr_pull_ace_condition_sid,
1342 : .ndr_print = (ndr_print_function_t) ndr_print_flags_ace_condition_sid,
1343 : },
1344 : {
1345 : .name = "ace_condition_token",
1346 : .struct_size = sizeof(struct ace_condition_token ),
1347 : .ndr_push = (ndr_push_flags_fn_t) ndr_push_ace_condition_token,
1348 : .ndr_pull = (ndr_pull_flags_fn_t) ndr_pull_ace_condition_token,
1349 : .ndr_print = (ndr_print_function_t) ndr_print_flags_ace_condition_token,
1350 : },
1351 : {
1352 : .name = "ace_condition_script",
1353 : .struct_size = sizeof(struct ace_condition_script ),
1354 : .ndr_push = (ndr_push_flags_fn_t) ndr_push_ace_condition_script,
1355 : .ndr_pull = (ndr_pull_flags_fn_t) ndr_pull_ace_condition_script,
1356 : .ndr_print = (ndr_print_function_t) ndr_print_flags_ace_condition_script,
1357 : },
1358 : { .name = NULL }
1359 : };
1360 :
1361 : static const struct ndr_interface_call conditional_ace_calls[] = {
1362 : { .name = NULL }
1363 : };
1364 :
1365 : static const char * const conditional_ace_endpoint_strings[] = {
1366 : "ncacn_np:[\\pipe\\conditional_ace]",
1367 : };
1368 :
1369 : static const struct ndr_interface_string_array conditional_ace_endpoints = {
1370 : .count = 1,
1371 : .names = conditional_ace_endpoint_strings
1372 : };
1373 :
1374 : static const char * const conditional_ace_authservice_strings[] = {
1375 : "host",
1376 : };
1377 :
1378 : static const struct ndr_interface_string_array conditional_ace_authservices = {
1379 : .count = 1,
1380 : .names = conditional_ace_authservice_strings
1381 : };
1382 :
1383 :
1384 : const struct ndr_interface_table ndr_table_conditional_ace = {
1385 : .name = "conditional_ace",
1386 : .num_calls = 0,
1387 : .calls = conditional_ace_calls,
1388 : .num_public_structs = 5,
1389 : .public_structs = conditional_ace_public_structs,
1390 : .endpoints = &conditional_ace_endpoints,
1391 : .authservices = &conditional_ace_authservices
1392 : };
1393 :
1394 : #endif /* SKIP_NDR_TABLE_conditional_ace */
|