diff options
author | Günther Deschner <gd@samba.org> | 2009-03-23 12:00:12 +0100 |
---|---|---|
committer | Simo Sorce <idra@samba.org> | 2010-07-07 23:45:50 -0400 |
commit | cb9eddb31248f0c7b0ffcff642154ca4b0230276 (patch) | |
tree | 02d6b9797d7bdcb44bbc4190f5b8491005294a81 | |
parent | 0cbe0f3c5fab1da968486269d65c02ffa44e54ca (diff) | |
download | samba-cb9eddb31248f0c7b0ffcff642154ca4b0230276.tar.gz samba-cb9eddb31248f0c7b0ffcff642154ca4b0230276.tar.bz2 samba-cb9eddb31248f0c7b0ffcff642154ca4b0230276.zip |
s3-dcerpc: add dcerpc_pull_ncacn_packet().
Guenther
Signed-off-by: Simo Sorce <idra@samba.org>
-rw-r--r-- | source3/include/proto.h | 3 | ||||
-rw-r--r-- | source3/rpc_client/cli_pipe.c | 22 |
2 files changed, 25 insertions, 0 deletions
diff --git a/source3/include/proto.h b/source3/include/proto.h index 2cbe8b3ccc..a998becfbe 100644 --- a/source3/include/proto.h +++ b/source3/include/proto.h @@ -4841,6 +4841,9 @@ NTSTATUS dcerpc_push_ncacn_packet(TALLOC_CTX *mem_ctx, uint32_t call_id, union dcerpc_payload u, DATA_BLOB *blob); +NTSTATUS dcerpc_pull_ncacn_packet(TALLOC_CTX *mem_ctx, + const DATA_BLOB *blob, + struct ncacn_packet *r); struct tevent_req *rpc_pipe_bind_send(TALLOC_CTX *mem_ctx, struct event_context *ev, struct rpc_pipe_client *cli, diff --git a/source3/rpc_client/cli_pipe.c b/source3/rpc_client/cli_pipe.c index db6fdc5ba2..5b3894c6ec 100644 --- a/source3/rpc_client/cli_pipe.c +++ b/source3/rpc_client/cli_pipe.c @@ -336,6 +336,28 @@ NTSTATUS dcerpc_push_ncacn_packet(TALLOC_CTX *mem_ctx, } /******************************************************************* +*******************************************************************/ + +NTSTATUS dcerpc_pull_ncacn_packet(TALLOC_CTX *mem_ctx, + const DATA_BLOB *blob, + struct ncacn_packet *r) +{ + enum ndr_err_code ndr_err; + + ndr_err = ndr_pull_struct_blob(blob, mem_ctx, r, + (ndr_pull_flags_fn_t)ndr_pull_ncacn_packet); + if (!NDR_ERR_CODE_IS_SUCCESS(ndr_err)) { + return ndr_map_error2ntstatus(ndr_err); + } + + if (DEBUGLEVEL >= 10) { + NDR_PRINT_DEBUG(ncacn_packet, r); + } + + return NT_STATUS_OK; +} + +/******************************************************************* Use SMBreadX to get rest of one fragment's worth of rpc data. Reads the whole size or give an error message ********************************************************************/ |