1 /* client functions auto-generated by pidl */
5 #include "lib/util/tevent_ntstatus.h"
6 #include "bin/default/librpc/gen_ndr/ndr_security.h"
7 #include "bin/default/librpc/gen_ndr/ndr_security_c.h"
9 /* security - client functions generated by pidl */
11 struct dcerpc_decode_security_descriptor_r_state {
12 TALLOC_CTX *out_mem_ctx;
15 static void dcerpc_decode_security_descriptor_r_done(struct tevent_req *subreq);
17 struct tevent_req *dcerpc_decode_security_descriptor_r_send(TALLOC_CTX *mem_ctx,
18 struct tevent_context *ev,
19 struct dcerpc_binding_handle *h,
20 struct decode_security_descriptor *r)
22 struct tevent_req *req;
23 struct dcerpc_decode_security_descriptor_r_state *state;
24 struct tevent_req *subreq;
26 req = tevent_req_create(mem_ctx, &state,
27 struct dcerpc_decode_security_descriptor_r_state);
32 state->out_mem_ctx = NULL;
34 subreq = dcerpc_binding_handle_call_send(state, ev, h,
35 NULL, &ndr_table_security,
36 NDR_DECODE_SECURITY_DESCRIPTOR, state, r);
37 if (tevent_req_nomem(subreq, req)) {
38 return tevent_req_post(req, ev);
40 tevent_req_set_callback(subreq, dcerpc_decode_security_descriptor_r_done, req);
45 static void dcerpc_decode_security_descriptor_r_done(struct tevent_req *subreq)
47 struct tevent_req *req =
48 tevent_req_callback_data(subreq,
52 status = dcerpc_binding_handle_call_recv(subreq);
54 if (tevent_req_nterror(req, status)) {
61 NTSTATUS dcerpc_decode_security_descriptor_r_recv(struct tevent_req *req, TALLOC_CTX *mem_ctx)
63 struct dcerpc_decode_security_descriptor_r_state *state =
65 struct dcerpc_decode_security_descriptor_r_state);
68 if (tevent_req_is_nterror(req, &status)) {
69 tevent_req_received(req);
73 talloc_steal(mem_ctx, state->out_mem_ctx);
75 tevent_req_received(req);
79 NTSTATUS dcerpc_decode_security_descriptor_r(struct dcerpc_binding_handle *h, TALLOC_CTX *mem_ctx, struct decode_security_descriptor *r)
83 status = dcerpc_binding_handle_call(h,
84 NULL, &ndr_table_security,
85 NDR_DECODE_SECURITY_DESCRIPTOR, mem_ctx, r);
90 struct dcerpc_decode_security_descriptor_state {
91 struct decode_security_descriptor orig;
92 struct decode_security_descriptor tmp;
93 TALLOC_CTX *out_mem_ctx;
96 static void dcerpc_decode_security_descriptor_done(struct tevent_req *subreq);
98 struct tevent_req *dcerpc_decode_security_descriptor_send(TALLOC_CTX *mem_ctx,
99 struct tevent_context *ev,
100 struct dcerpc_binding_handle *h,
101 struct security_descriptor _sd /* [in] */)
103 struct tevent_req *req;
104 struct dcerpc_decode_security_descriptor_state *state;
105 struct tevent_req *subreq;
107 req = tevent_req_create(mem_ctx, &state,
108 struct dcerpc_decode_security_descriptor_state);
112 state->out_mem_ctx = NULL;
115 state->orig.in.sd = _sd;
119 /* make a temporary copy, that we pass to the dispatch function */
120 state->tmp = state->orig;
122 subreq = dcerpc_decode_security_descriptor_r_send(state, ev, h, &state->tmp);
123 if (tevent_req_nomem(subreq, req)) {
124 return tevent_req_post(req, ev);
126 tevent_req_set_callback(subreq, dcerpc_decode_security_descriptor_done, req);
130 static void dcerpc_decode_security_descriptor_done(struct tevent_req *subreq)
132 struct tevent_req *req = tevent_req_callback_data(
133 subreq, struct tevent_req);
134 struct dcerpc_decode_security_descriptor_state *state = tevent_req_data(
135 req, struct dcerpc_decode_security_descriptor_state);
139 if (state->out_mem_ctx) {
140 mem_ctx = state->out_mem_ctx;
145 status = dcerpc_decode_security_descriptor_r_recv(subreq, mem_ctx);
147 if (tevent_req_nterror(req, status)) {
151 /* Copy out parameters */
153 /* Reset temporary structure */
154 ZERO_STRUCT(state->tmp);
156 tevent_req_done(req);
159 NTSTATUS dcerpc_decode_security_descriptor_recv(struct tevent_req *req,
162 struct dcerpc_decode_security_descriptor_state *state = tevent_req_data(
163 req, struct dcerpc_decode_security_descriptor_state);
166 if (tevent_req_is_nterror(req, &status)) {
167 tevent_req_received(req);
171 /* Steal possible out parameters to the callers context */
172 talloc_steal(mem_ctx, state->out_mem_ctx);
174 tevent_req_received(req);
178 NTSTATUS dcerpc_decode_security_descriptor(struct dcerpc_binding_handle *h,
180 struct security_descriptor _sd /* [in] */)
182 struct decode_security_descriptor r;
188 status = dcerpc_decode_security_descriptor_r(h, mem_ctx, &r);
189 if (!NT_STATUS_IS_OK(status)) {
193 /* Return variables */
200 struct dcerpc_decode_sec_desc_buf_r_state {
201 TALLOC_CTX *out_mem_ctx;
204 static void dcerpc_decode_sec_desc_buf_r_done(struct tevent_req *subreq);
206 struct tevent_req *dcerpc_decode_sec_desc_buf_r_send(TALLOC_CTX *mem_ctx,
207 struct tevent_context *ev,
208 struct dcerpc_binding_handle *h,
209 struct decode_sec_desc_buf *r)
211 struct tevent_req *req;
212 struct dcerpc_decode_sec_desc_buf_r_state *state;
213 struct tevent_req *subreq;
215 req = tevent_req_create(mem_ctx, &state,
216 struct dcerpc_decode_sec_desc_buf_r_state);
221 state->out_mem_ctx = NULL;
223 subreq = dcerpc_binding_handle_call_send(state, ev, h,
224 NULL, &ndr_table_security,
225 NDR_DECODE_SEC_DESC_BUF, state, r);
226 if (tevent_req_nomem(subreq, req)) {
227 return tevent_req_post(req, ev);
229 tevent_req_set_callback(subreq, dcerpc_decode_sec_desc_buf_r_done, req);
234 static void dcerpc_decode_sec_desc_buf_r_done(struct tevent_req *subreq)
236 struct tevent_req *req =
237 tevent_req_callback_data(subreq,
241 status = dcerpc_binding_handle_call_recv(subreq);
243 if (tevent_req_nterror(req, status)) {
247 tevent_req_done(req);
250 NTSTATUS dcerpc_decode_sec_desc_buf_r_recv(struct tevent_req *req, TALLOC_CTX *mem_ctx)
252 struct dcerpc_decode_sec_desc_buf_r_state *state =
254 struct dcerpc_decode_sec_desc_buf_r_state);
257 if (tevent_req_is_nterror(req, &status)) {
258 tevent_req_received(req);
262 talloc_steal(mem_ctx, state->out_mem_ctx);
264 tevent_req_received(req);
268 NTSTATUS dcerpc_decode_sec_desc_buf_r(struct dcerpc_binding_handle *h, TALLOC_CTX *mem_ctx, struct decode_sec_desc_buf *r)
272 status = dcerpc_binding_handle_call(h,
273 NULL, &ndr_table_security,
274 NDR_DECODE_SEC_DESC_BUF, mem_ctx, r);
279 struct dcerpc_decode_sec_desc_buf_state {
280 struct decode_sec_desc_buf orig;
281 struct decode_sec_desc_buf tmp;
282 TALLOC_CTX *out_mem_ctx;
285 static void dcerpc_decode_sec_desc_buf_done(struct tevent_req *subreq);
287 struct tevent_req *dcerpc_decode_sec_desc_buf_send(TALLOC_CTX *mem_ctx,
288 struct tevent_context *ev,
289 struct dcerpc_binding_handle *h,
290 struct sec_desc_buf _sd_buf /* [in] */)
292 struct tevent_req *req;
293 struct dcerpc_decode_sec_desc_buf_state *state;
294 struct tevent_req *subreq;
296 req = tevent_req_create(mem_ctx, &state,
297 struct dcerpc_decode_sec_desc_buf_state);
301 state->out_mem_ctx = NULL;
304 state->orig.in.sd_buf = _sd_buf;
308 /* make a temporary copy, that we pass to the dispatch function */
309 state->tmp = state->orig;
311 subreq = dcerpc_decode_sec_desc_buf_r_send(state, ev, h, &state->tmp);
312 if (tevent_req_nomem(subreq, req)) {
313 return tevent_req_post(req, ev);
315 tevent_req_set_callback(subreq, dcerpc_decode_sec_desc_buf_done, req);
319 static void dcerpc_decode_sec_desc_buf_done(struct tevent_req *subreq)
321 struct tevent_req *req = tevent_req_callback_data(
322 subreq, struct tevent_req);
323 struct dcerpc_decode_sec_desc_buf_state *state = tevent_req_data(
324 req, struct dcerpc_decode_sec_desc_buf_state);
328 if (state->out_mem_ctx) {
329 mem_ctx = state->out_mem_ctx;
334 status = dcerpc_decode_sec_desc_buf_r_recv(subreq, mem_ctx);
336 if (tevent_req_nterror(req, status)) {
340 /* Copy out parameters */
342 /* Reset temporary structure */
343 ZERO_STRUCT(state->tmp);
345 tevent_req_done(req);
348 NTSTATUS dcerpc_decode_sec_desc_buf_recv(struct tevent_req *req,
351 struct dcerpc_decode_sec_desc_buf_state *state = tevent_req_data(
352 req, struct dcerpc_decode_sec_desc_buf_state);
355 if (tevent_req_is_nterror(req, &status)) {
356 tevent_req_received(req);
360 /* Steal possible out parameters to the callers context */
361 talloc_steal(mem_ctx, state->out_mem_ctx);
363 tevent_req_received(req);
367 NTSTATUS dcerpc_decode_sec_desc_buf(struct dcerpc_binding_handle *h,
369 struct sec_desc_buf _sd_buf /* [in] */)
371 struct decode_sec_desc_buf r;
375 r.in.sd_buf = _sd_buf;
377 status = dcerpc_decode_sec_desc_buf_r(h, mem_ctx, &r);
378 if (!NT_STATUS_IS_OK(status)) {
382 /* Return variables */
389 struct dcerpc_decode_security_token_r_state {
390 TALLOC_CTX *out_mem_ctx;
393 static void dcerpc_decode_security_token_r_done(struct tevent_req *subreq);
395 struct tevent_req *dcerpc_decode_security_token_r_send(TALLOC_CTX *mem_ctx,
396 struct tevent_context *ev,
397 struct dcerpc_binding_handle *h,
398 struct decode_security_token *r)
400 struct tevent_req *req;
401 struct dcerpc_decode_security_token_r_state *state;
402 struct tevent_req *subreq;
404 req = tevent_req_create(mem_ctx, &state,
405 struct dcerpc_decode_security_token_r_state);
410 state->out_mem_ctx = NULL;
412 subreq = dcerpc_binding_handle_call_send(state, ev, h,
413 NULL, &ndr_table_security,
414 NDR_DECODE_SECURITY_TOKEN, state, r);
415 if (tevent_req_nomem(subreq, req)) {
416 return tevent_req_post(req, ev);
418 tevent_req_set_callback(subreq, dcerpc_decode_security_token_r_done, req);
423 static void dcerpc_decode_security_token_r_done(struct tevent_req *subreq)
425 struct tevent_req *req =
426 tevent_req_callback_data(subreq,
430 status = dcerpc_binding_handle_call_recv(subreq);
432 if (tevent_req_nterror(req, status)) {
436 tevent_req_done(req);
439 NTSTATUS dcerpc_decode_security_token_r_recv(struct tevent_req *req, TALLOC_CTX *mem_ctx)
441 struct dcerpc_decode_security_token_r_state *state =
443 struct dcerpc_decode_security_token_r_state);
446 if (tevent_req_is_nterror(req, &status)) {
447 tevent_req_received(req);
451 talloc_steal(mem_ctx, state->out_mem_ctx);
453 tevent_req_received(req);
457 NTSTATUS dcerpc_decode_security_token_r(struct dcerpc_binding_handle *h, TALLOC_CTX *mem_ctx, struct decode_security_token *r)
461 status = dcerpc_binding_handle_call(h,
462 NULL, &ndr_table_security,
463 NDR_DECODE_SECURITY_TOKEN, mem_ctx, r);
468 struct dcerpc_decode_security_token_state {
469 struct decode_security_token orig;
470 struct decode_security_token tmp;
471 TALLOC_CTX *out_mem_ctx;
474 static void dcerpc_decode_security_token_done(struct tevent_req *subreq);
476 struct tevent_req *dcerpc_decode_security_token_send(TALLOC_CTX *mem_ctx,
477 struct tevent_context *ev,
478 struct dcerpc_binding_handle *h,
479 struct security_token _token /* [in] */)
481 struct tevent_req *req;
482 struct dcerpc_decode_security_token_state *state;
483 struct tevent_req *subreq;
485 req = tevent_req_create(mem_ctx, &state,
486 struct dcerpc_decode_security_token_state);
490 state->out_mem_ctx = NULL;
493 state->orig.in.token = _token;
497 /* make a temporary copy, that we pass to the dispatch function */
498 state->tmp = state->orig;
500 subreq = dcerpc_decode_security_token_r_send(state, ev, h, &state->tmp);
501 if (tevent_req_nomem(subreq, req)) {
502 return tevent_req_post(req, ev);
504 tevent_req_set_callback(subreq, dcerpc_decode_security_token_done, req);
508 static void dcerpc_decode_security_token_done(struct tevent_req *subreq)
510 struct tevent_req *req = tevent_req_callback_data(
511 subreq, struct tevent_req);
512 struct dcerpc_decode_security_token_state *state = tevent_req_data(
513 req, struct dcerpc_decode_security_token_state);
517 if (state->out_mem_ctx) {
518 mem_ctx = state->out_mem_ctx;
523 status = dcerpc_decode_security_token_r_recv(subreq, mem_ctx);
525 if (tevent_req_nterror(req, status)) {
529 /* Copy out parameters */
531 /* Reset temporary structure */
532 ZERO_STRUCT(state->tmp);
534 tevent_req_done(req);
537 NTSTATUS dcerpc_decode_security_token_recv(struct tevent_req *req,
540 struct dcerpc_decode_security_token_state *state = tevent_req_data(
541 req, struct dcerpc_decode_security_token_state);
544 if (tevent_req_is_nterror(req, &status)) {
545 tevent_req_received(req);
549 /* Steal possible out parameters to the callers context */
550 talloc_steal(mem_ctx, state->out_mem_ctx);
552 tevent_req_received(req);
556 NTSTATUS dcerpc_decode_security_token(struct dcerpc_binding_handle *h,
558 struct security_token _token /* [in] */)
560 struct decode_security_token r;
566 status = dcerpc_decode_security_token_r(h, mem_ctx, &r);
567 if (!NT_STATUS_IS_OK(status)) {
571 /* Return variables */
578 struct dcerpc_decode_security_unix_token_r_state {
579 TALLOC_CTX *out_mem_ctx;
582 static void dcerpc_decode_security_unix_token_r_done(struct tevent_req *subreq);
584 struct tevent_req *dcerpc_decode_security_unix_token_r_send(TALLOC_CTX *mem_ctx,
585 struct tevent_context *ev,
586 struct dcerpc_binding_handle *h,
587 struct decode_security_unix_token *r)
589 struct tevent_req *req;
590 struct dcerpc_decode_security_unix_token_r_state *state;
591 struct tevent_req *subreq;
593 req = tevent_req_create(mem_ctx, &state,
594 struct dcerpc_decode_security_unix_token_r_state);
599 state->out_mem_ctx = NULL;
601 subreq = dcerpc_binding_handle_call_send(state, ev, h,
602 NULL, &ndr_table_security,
603 NDR_DECODE_SECURITY_UNIX_TOKEN, state, r);
604 if (tevent_req_nomem(subreq, req)) {
605 return tevent_req_post(req, ev);
607 tevent_req_set_callback(subreq, dcerpc_decode_security_unix_token_r_done, req);
612 static void dcerpc_decode_security_unix_token_r_done(struct tevent_req *subreq)
614 struct tevent_req *req =
615 tevent_req_callback_data(subreq,
619 status = dcerpc_binding_handle_call_recv(subreq);
621 if (tevent_req_nterror(req, status)) {
625 tevent_req_done(req);
628 NTSTATUS dcerpc_decode_security_unix_token_r_recv(struct tevent_req *req, TALLOC_CTX *mem_ctx)
630 struct dcerpc_decode_security_unix_token_r_state *state =
632 struct dcerpc_decode_security_unix_token_r_state);
635 if (tevent_req_is_nterror(req, &status)) {
636 tevent_req_received(req);
640 talloc_steal(mem_ctx, state->out_mem_ctx);
642 tevent_req_received(req);
646 NTSTATUS dcerpc_decode_security_unix_token_r(struct dcerpc_binding_handle *h, TALLOC_CTX *mem_ctx, struct decode_security_unix_token *r)
650 status = dcerpc_binding_handle_call(h,
651 NULL, &ndr_table_security,
652 NDR_DECODE_SECURITY_UNIX_TOKEN, mem_ctx, r);
657 struct dcerpc_decode_security_unix_token_state {
658 struct decode_security_unix_token orig;
659 struct decode_security_unix_token tmp;
660 TALLOC_CTX *out_mem_ctx;
663 static void dcerpc_decode_security_unix_token_done(struct tevent_req *subreq);
665 struct tevent_req *dcerpc_decode_security_unix_token_send(TALLOC_CTX *mem_ctx,
666 struct tevent_context *ev,
667 struct dcerpc_binding_handle *h,
668 struct security_unix_token _unix_token /* [in] */)
670 struct tevent_req *req;
671 struct dcerpc_decode_security_unix_token_state *state;
672 struct tevent_req *subreq;
674 req = tevent_req_create(mem_ctx, &state,
675 struct dcerpc_decode_security_unix_token_state);
679 state->out_mem_ctx = NULL;
682 state->orig.in.unix_token = _unix_token;
686 /* make a temporary copy, that we pass to the dispatch function */
687 state->tmp = state->orig;
689 subreq = dcerpc_decode_security_unix_token_r_send(state, ev, h, &state->tmp);
690 if (tevent_req_nomem(subreq, req)) {
691 return tevent_req_post(req, ev);
693 tevent_req_set_callback(subreq, dcerpc_decode_security_unix_token_done, req);
697 static void dcerpc_decode_security_unix_token_done(struct tevent_req *subreq)
699 struct tevent_req *req = tevent_req_callback_data(
700 subreq, struct tevent_req);
701 struct dcerpc_decode_security_unix_token_state *state = tevent_req_data(
702 req, struct dcerpc_decode_security_unix_token_state);
706 if (state->out_mem_ctx) {
707 mem_ctx = state->out_mem_ctx;
712 status = dcerpc_decode_security_unix_token_r_recv(subreq, mem_ctx);
714 if (tevent_req_nterror(req, status)) {
718 /* Copy out parameters */
720 /* Reset temporary structure */
721 ZERO_STRUCT(state->tmp);
723 tevent_req_done(req);
726 NTSTATUS dcerpc_decode_security_unix_token_recv(struct tevent_req *req,
729 struct dcerpc_decode_security_unix_token_state *state = tevent_req_data(
730 req, struct dcerpc_decode_security_unix_token_state);
733 if (tevent_req_is_nterror(req, &status)) {
734 tevent_req_received(req);
738 /* Steal possible out parameters to the callers context */
739 talloc_steal(mem_ctx, state->out_mem_ctx);
741 tevent_req_received(req);
745 NTSTATUS dcerpc_decode_security_unix_token(struct dcerpc_binding_handle *h,
747 struct security_unix_token _unix_token /* [in] */)
749 struct decode_security_unix_token r;
753 r.in.unix_token = _unix_token;
755 status = dcerpc_decode_security_unix_token_r(h, mem_ctx, &r);
756 if (!NT_STATUS_IS_OK(status)) {
760 /* Return variables */