From 8ed291aa2b31ebae6062b694b2043f4cdf8d5564 Mon Sep 17 00:00:00 2001 From: Stefan Metzmacher Date: Fri, 30 Aug 2013 09:27:44 +0200 Subject: [PATCH] git add -f bin/default/librpc/gen_ndr/*.[ch] bin/default/source*/librpc/gen_ndr/*.[ch] --- .../default/librpc/gen_ndr/ndr_frstrans_c.c | 364 ++++++++++++++++++ .../default/librpc/gen_ndr/ndr_frstrans_c.h | 46 ++- 2 files changed, 402 insertions(+), 8 deletions(-) diff --git a/bin.gen_ndr/default/librpc/gen_ndr/ndr_frstrans_c.c b/bin.gen_ndr/default/librpc/gen_ndr/ndr_frstrans_c.c index 82eb527ecc33..6c9fc376fe6c 100644 --- a/bin.gen_ndr/default/librpc/gen_ndr/ndr_frstrans_c.c +++ b/bin.gen_ndr/default/librpc/gen_ndr/ndr_frstrans_c.c @@ -1796,3 +1796,367 @@ NTSTATUS dcerpc_frstrans_InitializeFileTransferAsync(struct dcerpc_binding_handl return NT_STATUS_OK; } +struct dcerpc_frstrans_RawGetFileDataAsync_r_state { + struct dcerpc_pipe_handle_connection *out_pipes[1]; + struct dcerpc_binding_handle_call_params params; + TALLOC_CTX *out_mem_ctx; +}; + +static void dcerpc_frstrans_RawGetFileDataAsync_r_done(struct tevent_req *subreq); + +struct tevent_req *dcerpc_frstrans_RawGetFileDataAsync_r_send(TALLOC_CTX *mem_ctx, + struct tevent_context *ev, + struct dcerpc_binding_handle *h, + struct frstrans_RawGetFileDataAsync *r) +{ + struct tevent_req *req; + struct dcerpc_frstrans_RawGetFileDataAsync_r_state *state; + struct tevent_req *subreq; + + req = tevent_req_create(mem_ctx, &state, + struct dcerpc_frstrans_RawGetFileDataAsync_r_state); + if (req == NULL) { + return NULL; + } + + state->out_mem_ctx = NULL; + + if (r->out.byte_pipe == NULL) { + tevent_req_nterror(req, NT_STATUS_INVALID_PARAMETER_MIX); + return tevent_req_post(req, ev); + } + state->out_pipes[0] = r->out.byte_pipe->pc; + state->params.r_mem = state; + state->params.r_ptr = r; + state->params.in.num_pipes = 0; + state->params.in.pipes = NULL; + state->params.out.num_pipes = 1; + state->params.out.pipes = state->out_pipes; + + subreq = dcerpc_binding_handle_call_params_send(state, ev, h, + NULL, &ndr_table_frstrans, + NDR_FRSTRANS_RAWGETFILEDATAASYNC, &state->params); + if (tevent_req_nomem(subreq, req)) { + return tevent_req_post(req, ev); + } + tevent_req_set_callback(subreq, dcerpc_frstrans_RawGetFileDataAsync_r_done, req); + + return req; +} + +static void dcerpc_frstrans_RawGetFileDataAsync_r_done(struct tevent_req *subreq) +{ + struct tevent_req *req = + tevent_req_callback_data(subreq, + struct tevent_req); + NTSTATUS status; + + status = dcerpc_binding_handle_call_params_recv(subreq); + TALLOC_FREE(subreq); + if (tevent_req_nterror(req, status)) { + return; + } + + tevent_req_done(req); +} + +NTSTATUS dcerpc_frstrans_RawGetFileDataAsync_r_recv(struct tevent_req *req, TALLOC_CTX *mem_ctx) +{ + struct dcerpc_frstrans_RawGetFileDataAsync_r_state *state = + tevent_req_data(req, + struct dcerpc_frstrans_RawGetFileDataAsync_r_state); + NTSTATUS status; + + if (tevent_req_is_nterror(req, &status)) { + tevent_req_received(req); + return status; + } + + talloc_steal(mem_ctx, state->out_mem_ctx); + + tevent_req_received(req); + return NT_STATUS_OK; +} + +struct dcerpc_frstrans_RawGetFileDataAsync_state { + struct frstrans_RawGetFileDataAsync orig; + struct frstrans_RawGetFileDataAsync tmp; + TALLOC_CTX *out_mem_ctx; +}; + +static void dcerpc_frstrans_RawGetFileDataAsync_done(struct tevent_req *subreq); + +struct tevent_req *dcerpc_frstrans_RawGetFileDataAsync_send(TALLOC_CTX *mem_ctx, + struct tevent_context *ev, + struct dcerpc_binding_handle *h, + struct policy_handle *_server_context /* [in] [ref] */, + struct frstrans_BytePipe *_byte_pipe /* [out] [ref] */) +{ + struct tevent_req *req; + struct dcerpc_frstrans_RawGetFileDataAsync_state *state; + struct tevent_req *subreq; + + req = tevent_req_create(mem_ctx, &state, + struct dcerpc_frstrans_RawGetFileDataAsync_state); + if (req == NULL) { + return NULL; + } + state->out_mem_ctx = NULL; + + /* In parameters */ + state->orig.in.server_context = _server_context; + + /* Out parameters */ + state->orig.out.byte_pipe = _byte_pipe; + + /* Result */ + ZERO_STRUCT(state->orig.out.result); + + /* make a temporary copy, that we pass to the dispatch function */ + state->tmp = state->orig; + + subreq = dcerpc_frstrans_RawGetFileDataAsync_r_send(state, ev, h, &state->tmp); + if (tevent_req_nomem(subreq, req)) { + return tevent_req_post(req, ev); + } + tevent_req_set_callback(subreq, dcerpc_frstrans_RawGetFileDataAsync_done, req); + return req; +} + +static void dcerpc_frstrans_RawGetFileDataAsync_done(struct tevent_req *subreq) +{ + struct tevent_req *req = tevent_req_callback_data( + subreq, struct tevent_req); + struct dcerpc_frstrans_RawGetFileDataAsync_state *state = tevent_req_data( + req, struct dcerpc_frstrans_RawGetFileDataAsync_state); + NTSTATUS status; + TALLOC_CTX *mem_ctx; + + if (state->out_mem_ctx) { + mem_ctx = state->out_mem_ctx; + } else { + mem_ctx = state; + } + + status = dcerpc_frstrans_RawGetFileDataAsync_r_recv(subreq, mem_ctx); + TALLOC_FREE(subreq); + if (tevent_req_nterror(req, status)) { + return; + } + + /* Copy out parameters */ + + /* Copy result */ + state->orig.out.result = state->tmp.out.result; + + /* Reset temporary structure */ + ZERO_STRUCT(state->tmp); + + tevent_req_done(req); +} + +NTSTATUS dcerpc_frstrans_RawGetFileDataAsync_recv(struct tevent_req *req, + TALLOC_CTX *mem_ctx, + WERROR *result) +{ + struct dcerpc_frstrans_RawGetFileDataAsync_state *state = tevent_req_data( + req, struct dcerpc_frstrans_RawGetFileDataAsync_state); + NTSTATUS status; + + if (tevent_req_is_nterror(req, &status)) { + tevent_req_received(req); + return status; + } + + /* Steal possible out parameters to the callers context */ + talloc_steal(mem_ctx, state->out_mem_ctx); + + /* Return result */ + *result = state->orig.out.result; + + tevent_req_received(req); + return NT_STATUS_OK; +} + +struct dcerpc_frstrans_RdcGetFileDataAsync_r_state { + struct dcerpc_pipe_handle_connection *out_pipes[1]; + struct dcerpc_binding_handle_call_params params; + TALLOC_CTX *out_mem_ctx; +}; + +static void dcerpc_frstrans_RdcGetFileDataAsync_r_done(struct tevent_req *subreq); + +struct tevent_req *dcerpc_frstrans_RdcGetFileDataAsync_r_send(TALLOC_CTX *mem_ctx, + struct tevent_context *ev, + struct dcerpc_binding_handle *h, + struct frstrans_RdcGetFileDataAsync *r) +{ + struct tevent_req *req; + struct dcerpc_frstrans_RdcGetFileDataAsync_r_state *state; + struct tevent_req *subreq; + + req = tevent_req_create(mem_ctx, &state, + struct dcerpc_frstrans_RdcGetFileDataAsync_r_state); + if (req == NULL) { + return NULL; + } + + state->out_mem_ctx = NULL; + + if (r->out.byte_pipe == NULL) { + tevent_req_nterror(req, NT_STATUS_INVALID_PARAMETER_MIX); + return tevent_req_post(req, ev); + } + state->out_pipes[0] = r->out.byte_pipe->pc; + state->params.r_mem = state; + state->params.r_ptr = r; + state->params.in.num_pipes = 0; + state->params.in.pipes = NULL; + state->params.out.num_pipes = 1; + state->params.out.pipes = state->out_pipes; + + subreq = dcerpc_binding_handle_call_params_send(state, ev, h, + NULL, &ndr_table_frstrans, + NDR_FRSTRANS_RDCGETFILEDATAASYNC, &state->params); + if (tevent_req_nomem(subreq, req)) { + return tevent_req_post(req, ev); + } + tevent_req_set_callback(subreq, dcerpc_frstrans_RdcGetFileDataAsync_r_done, req); + + return req; +} + +static void dcerpc_frstrans_RdcGetFileDataAsync_r_done(struct tevent_req *subreq) +{ + struct tevent_req *req = + tevent_req_callback_data(subreq, + struct tevent_req); + NTSTATUS status; + + status = dcerpc_binding_handle_call_params_recv(subreq); + TALLOC_FREE(subreq); + if (tevent_req_nterror(req, status)) { + return; + } + + tevent_req_done(req); +} + +NTSTATUS dcerpc_frstrans_RdcGetFileDataAsync_r_recv(struct tevent_req *req, TALLOC_CTX *mem_ctx) +{ + struct dcerpc_frstrans_RdcGetFileDataAsync_r_state *state = + tevent_req_data(req, + struct dcerpc_frstrans_RdcGetFileDataAsync_r_state); + NTSTATUS status; + + if (tevent_req_is_nterror(req, &status)) { + tevent_req_received(req); + return status; + } + + talloc_steal(mem_ctx, state->out_mem_ctx); + + tevent_req_received(req); + return NT_STATUS_OK; +} + +struct dcerpc_frstrans_RdcGetFileDataAsync_state { + struct frstrans_RdcGetFileDataAsync orig; + struct frstrans_RdcGetFileDataAsync tmp; + TALLOC_CTX *out_mem_ctx; +}; + +static void dcerpc_frstrans_RdcGetFileDataAsync_done(struct tevent_req *subreq); + +struct tevent_req *dcerpc_frstrans_RdcGetFileDataAsync_send(TALLOC_CTX *mem_ctx, + struct tevent_context *ev, + struct dcerpc_binding_handle *h, + struct policy_handle *_server_context /* [in] [ref] */, + struct frstrans_BytePipe *_byte_pipe /* [out] [ref] */) +{ + struct tevent_req *req; + struct dcerpc_frstrans_RdcGetFileDataAsync_state *state; + struct tevent_req *subreq; + + req = tevent_req_create(mem_ctx, &state, + struct dcerpc_frstrans_RdcGetFileDataAsync_state); + if (req == NULL) { + return NULL; + } + state->out_mem_ctx = NULL; + + /* In parameters */ + state->orig.in.server_context = _server_context; + + /* Out parameters */ + state->orig.out.byte_pipe = _byte_pipe; + + /* Result */ + ZERO_STRUCT(state->orig.out.result); + + /* make a temporary copy, that we pass to the dispatch function */ + state->tmp = state->orig; + + subreq = dcerpc_frstrans_RdcGetFileDataAsync_r_send(state, ev, h, &state->tmp); + if (tevent_req_nomem(subreq, req)) { + return tevent_req_post(req, ev); + } + tevent_req_set_callback(subreq, dcerpc_frstrans_RdcGetFileDataAsync_done, req); + return req; +} + +static void dcerpc_frstrans_RdcGetFileDataAsync_done(struct tevent_req *subreq) +{ + struct tevent_req *req = tevent_req_callback_data( + subreq, struct tevent_req); + struct dcerpc_frstrans_RdcGetFileDataAsync_state *state = tevent_req_data( + req, struct dcerpc_frstrans_RdcGetFileDataAsync_state); + NTSTATUS status; + TALLOC_CTX *mem_ctx; + + if (state->out_mem_ctx) { + mem_ctx = state->out_mem_ctx; + } else { + mem_ctx = state; + } + + status = dcerpc_frstrans_RdcGetFileDataAsync_r_recv(subreq, mem_ctx); + TALLOC_FREE(subreq); + if (tevent_req_nterror(req, status)) { + return; + } + + /* Copy out parameters */ + + /* Copy result */ + state->orig.out.result = state->tmp.out.result; + + /* Reset temporary structure */ + ZERO_STRUCT(state->tmp); + + tevent_req_done(req); +} + +NTSTATUS dcerpc_frstrans_RdcGetFileDataAsync_recv(struct tevent_req *req, + TALLOC_CTX *mem_ctx, + WERROR *result) +{ + struct dcerpc_frstrans_RdcGetFileDataAsync_state *state = tevent_req_data( + req, struct dcerpc_frstrans_RdcGetFileDataAsync_state); + NTSTATUS status; + + if (tevent_req_is_nterror(req, &status)) { + tevent_req_received(req); + return status; + } + + /* Steal possible out parameters to the callers context */ + talloc_steal(mem_ctx, state->out_mem_ctx); + + /* Return result */ + *result = state->orig.out.result; + + tevent_req_received(req); + return NT_STATUS_OK; +} + diff --git a/bin.gen_ndr/default/librpc/gen_ndr/ndr_frstrans_c.h b/bin.gen_ndr/default/librpc/gen_ndr/ndr_frstrans_c.h index e1c122e6382c..dd39155c7765 100644 --- a/bin.gen_ndr/default/librpc/gen_ndr/ndr_frstrans_c.h +++ b/bin.gen_ndr/default/librpc/gen_ndr/ndr_frstrans_c.h @@ -212,30 +212,60 @@ NTSTATUS dcerpc_frstrans_InitializeFileTransferAsync(struct dcerpc_binding_handl uint32_t *_is_end_of_file /* [out] [ref] */, WERROR *result); +struct tevent_req *dcerpc_frstrans_RawGetFileDataAsync_r_send(TALLOC_CTX *mem_ctx, + struct tevent_context *ev, + struct dcerpc_binding_handle *h, + struct frstrans_RawGetFileDataAsync *r); +NTSTATUS dcerpc_frstrans_RawGetFileDataAsync_r_recv(struct tevent_req *req, TALLOC_CTX *mem_ctx); /* * The following function is skipped because * it uses pipes: * - * dcerpc_frstrans_RawGetFileDataAsync_r_send() - * dcerpc_frstrans_RawGetFileDataAsync_r_recv() * dcerpc_frstrans_RawGetFileDataAsync_r() + */ + +struct tevent_req *dcerpc_frstrans_RawGetFileDataAsync_send(TALLOC_CTX *mem_ctx, + struct tevent_context *ev, + struct dcerpc_binding_handle *h, + struct policy_handle *_server_context /* [in] [ref] */, + struct frstrans_BytePipe *_byte_pipe /* [out] [ref] */); +NTSTATUS dcerpc_frstrans_RawGetFileDataAsync_recv(struct tevent_req *req, + TALLOC_CTX *mem_ctx, + WERROR *result); +/* + * The following function is skipped because + * it uses pipes: * - * dcerpc_frstrans_RawGetFileDataAsync_send() - * dcerpc_frstrans_RawGetFileDataAsync_recv() * dcerpc_frstrans_RawGetFileDataAsync() */ + +struct tevent_req *dcerpc_frstrans_RdcGetFileDataAsync_r_send(TALLOC_CTX *mem_ctx, + struct tevent_context *ev, + struct dcerpc_binding_handle *h, + struct frstrans_RdcGetFileDataAsync *r); +NTSTATUS dcerpc_frstrans_RdcGetFileDataAsync_r_recv(struct tevent_req *req, TALLOC_CTX *mem_ctx); /* * The following function is skipped because * it uses pipes: * - * dcerpc_frstrans_RdcGetFileDataAsync_r_send() - * dcerpc_frstrans_RdcGetFileDataAsync_r_recv() * dcerpc_frstrans_RdcGetFileDataAsync_r() + */ + +struct tevent_req *dcerpc_frstrans_RdcGetFileDataAsync_send(TALLOC_CTX *mem_ctx, + struct tevent_context *ev, + struct dcerpc_binding_handle *h, + struct policy_handle *_server_context /* [in] [ref] */, + struct frstrans_BytePipe *_byte_pipe /* [out] [ref] */); +NTSTATUS dcerpc_frstrans_RdcGetFileDataAsync_recv(struct tevent_req *req, + TALLOC_CTX *mem_ctx, + WERROR *result); +/* + * The following function is skipped because + * it uses pipes: * - * dcerpc_frstrans_RdcGetFileDataAsync_send() - * dcerpc_frstrans_RdcGetFileDataAsync_recv() * dcerpc_frstrans_RdcGetFileDataAsync() */ + #endif /* _HEADER_RPC_frstrans */ -- 2.34.1