diff options
author | Simo Sorce <idra@samba.org> | 2010-07-13 15:43:44 -0400 |
---|---|---|
committer | Günther Deschner <gd@samba.org> | 2010-07-16 01:51:16 +0200 |
commit | 31b59bbf99835279a0a78858aca2f327150eb5e2 (patch) | |
tree | 7524b7fcca9218767737c10eba864b9579f4a43a /source3/rpc_server/srv_pipe_hnd.c | |
parent | 8246214e7ef5374acc0a1f97f4f1203374fba7f8 (diff) | |
download | samba-31b59bbf99835279a0a78858aca2f327150eb5e2.tar.gz samba-31b59bbf99835279a0a78858aca2f327150eb5e2.tar.bz2 samba-31b59bbf99835279a0a78858aca2f327150eb5e2.zip |
s3-dcerpc: Convert rdata from prs_struct to a simple DATA_BLOB
Signed-off-by: Günther Deschner <gd@samba.org>
Diffstat (limited to 'source3/rpc_server/srv_pipe_hnd.c')
-rw-r--r-- | source3/rpc_server/srv_pipe_hnd.c | 22 |
1 files changed, 6 insertions, 16 deletions
diff --git a/source3/rpc_server/srv_pipe_hnd.c b/source3/rpc_server/srv_pipe_hnd.c index b86a83bf07..3cd9028f44 100644 --- a/source3/rpc_server/srv_pipe_hnd.c +++ b/source3/rpc_server/srv_pipe_hnd.c @@ -45,16 +45,7 @@ static bool pipe_init_outgoing_data(pipes_struct *p) prs_mem_free(&o_data->frag); /* Free any memory in the current return data buffer. */ - prs_mem_free(&o_data->rdata); - - /* - * Initialize the outgoing RPC data buffer. - * we will use this as the raw data area for replying to rpc requests. - */ - if(!prs_init(&o_data->rdata, 128, p->mem_ctx, MARSHALL)) { - DEBUG(0,("pipe_init_outgoing_data: malloc fail.\n")); - return False; - } + data_blob_free(&o_data->rdata); return True; } @@ -153,7 +144,7 @@ static bool get_pdu_size(pipes_struct *p) static void free_pipe_context(pipes_struct *p) { prs_mem_free(&p->out_data.frag); - prs_mem_free(&p->out_data.rdata); + data_blob_free(&p->out_data.rdata); prs_mem_free(&p->in_data.data); DEBUG(3, ("free_pipe_context: " @@ -840,13 +831,13 @@ static ssize_t read_from_internal_pipe(struct pipes_struct *p, char *data, */ DEBUG(10,("read_from_pipe: %s: fault_state = %d : data_sent_length " - "= %u, prs_offset(&p->out_data.rdata) = %u.\n", + "= %u, p->out_data.rdata.length = %u.\n", get_pipe_name_from_syntax(talloc_tos(), &p->syntax), (int)p->fault_state, (unsigned int)p->out_data.data_sent_length, - (unsigned int)prs_offset(&p->out_data.rdata) )); + (unsigned int)p->out_data.rdata.length)); - if(p->out_data.data_sent_length >= prs_offset(&p->out_data.rdata)) { + if (p->out_data.data_sent_length >= p->out_data.rdata.length) { /* * We have sent all possible data, return 0. */ @@ -882,8 +873,7 @@ static ssize_t read_from_internal_pipe(struct pipes_struct *p, char *data, p->out_data.current_pdu_sent = 0; prs_mem_free(&p->out_data.frag); - if (p->out_data.data_sent_length - >= prs_offset(&p->out_data.rdata)) { + if (p->out_data.data_sent_length >= p->out_data.rdata.length) { /* * We're completely finished with both outgoing and * incoming data streams. It's safe to free all |