summaryrefslogtreecommitdiff
path: root/source3/rpc_client/ndr.c
diff options
context:
space:
mode:
authorSimo Sorce <idra@samba.org>2010-07-15 08:48:51 -0400
committerGünther Deschner <gd@samba.org>2010-07-16 01:51:18 +0200
commit8f2bfa88b5846528aa78840979a8ce8babef2cc0 (patch)
tree5579d698028ecaad5afe2e692fdcc203f5829077 /source3/rpc_client/ndr.c
parent8e9cd4144e0997991c1b54acf4e62213bce9019e (diff)
downloadsamba-8f2bfa88b5846528aa78840979a8ce8babef2cc0.tar.gz
samba-8f2bfa88b5846528aa78840979a8ce8babef2cc0.tar.bz2
samba-8f2bfa88b5846528aa78840979a8ce8babef2cc0.zip
s3-dcerpc: Use DATA_BLOB instead of prs_struct for req_data
Signed-off-by: Günther Deschner <gd@samba.org>
Diffstat (limited to 'source3/rpc_client/ndr.c')
-rw-r--r--source3/rpc_client/ndr.c17
1 files changed, 5 insertions, 12 deletions
diff --git a/source3/rpc_client/ndr.c b/source3/rpc_client/ndr.c
index 2fb9655207..a1642c03ff 100644
--- a/source3/rpc_client/ndr.c
+++ b/source3/rpc_client/ndr.c
@@ -24,7 +24,7 @@
struct cli_do_rpc_ndr_state {
const struct ndr_interface_call *call;
- prs_struct q_ps;
+ DATA_BLOB q_pdu;
DATA_BLOB r_pdu;
void *r;
};
@@ -41,9 +41,7 @@ struct tevent_req *cli_do_rpc_ndr_send(TALLOC_CTX *mem_ctx,
struct tevent_req *req, *subreq;
struct cli_do_rpc_ndr_state *state;
struct ndr_push *push;
- DATA_BLOB blob;
enum ndr_err_code ndr_err;
- bool ret;
req = tevent_req_create(mem_ctx, &state,
struct cli_do_rpc_ndr_state);
@@ -65,7 +63,7 @@ struct tevent_req *cli_do_rpc_ndr_send(TALLOC_CTX *mem_ctx,
state->call->name, NDR_IN, r);
}
- push = ndr_push_init_ctx(talloc_tos());
+ push = ndr_push_init_ctx(state);
if (tevent_req_nomem(push, req)) {
return tevent_req_post(req, ev);
}
@@ -77,16 +75,11 @@ struct tevent_req *cli_do_rpc_ndr_send(TALLOC_CTX *mem_ctx,
return tevent_req_post(req, ev);
}
- blob = ndr_push_blob(push);
- ret = prs_init_data_blob(&state->q_ps, &blob, state);
+ state->q_pdu = ndr_push_blob(push);
+ talloc_steal(mem_ctx, state->q_pdu.data);
TALLOC_FREE(push);
- if (!ret) {
- tevent_req_nterror(req, NT_STATUS_NO_MEMORY);
- return tevent_req_post(req, ev);
- }
-
- subreq = rpc_api_pipe_req_send(state, ev, cli, opnum, &state->q_ps);
+ subreq = rpc_api_pipe_req_send(state, ev, cli, opnum, &state->q_pdu);
if (tevent_req_nomem(subreq, req)) {
return tevent_req_post(req, ev);
}