diff options
author | Simo Sorce <idra@samba.org> | 2010-07-08 01:13:57 -0400 |
---|---|---|
committer | Simo Sorce <idra@samba.org> | 2010-07-08 01:41:24 -0400 |
commit | 0d9b63663f888bafbc7451845a79dabf9ceadc0f (patch) | |
tree | 4b9d456f7f622e948890765f748f28487630762b /source3 | |
parent | ae526514a936b46112845480646402fdd385d7a2 (diff) | |
download | samba-0d9b63663f888bafbc7451845a79dabf9ceadc0f.tar.gz |
s3:dcerpc Add prs_parse_dcerpc_bind
Diffstat (limited to 'source3')
-rw-r--r-- | source3/include/proto.h | 3 | ||||
-rw-r--r-- | source3/rpc_parse/parse_rpc.c | 17 |
2 files changed, 20 insertions, 0 deletions
diff --git a/source3/include/proto.h b/source3/include/proto.h index ec61dd1b9d2..90afdd1fa67 100644 --- a/source3/include/proto.h +++ b/source3/include/proto.h @@ -5080,6 +5080,9 @@ void init_rpc_hdr(RPC_HDR *hdr, enum dcerpc_pkt_type pkt_type, uint8 flags, bool smb_io_rpc_hdr(const char *desc, RPC_HDR *rpc, prs_struct *ps, int depth); bool smb_io_rpc_context(const char *desc, struct dcerpc_ctx_list *rpc_ctx, prs_struct *ps, int depth); bool smb_io_rpc_hdr_rb(const char *desc, RPC_HDR_RB *rpc, prs_struct *ps, int depth); +NTSTATUS dcerpc_pull_dcerpc_bind(TALLOC_CTX *mem_ctx, + const DATA_BLOB *blob, + struct dcerpc_bind *r); void init_rpc_hdr_ba(RPC_HDR_BA *rpc, uint16 max_tsize, uint16 max_rsize, uint32 assoc_gid, const char *pipe_addr, diff --git a/source3/rpc_parse/parse_rpc.c b/source3/rpc_parse/parse_rpc.c index 74246c5b4ef..90e939715e3 100644 --- a/source3/rpc_parse/parse_rpc.c +++ b/source3/rpc_parse/parse_rpc.c @@ -5,6 +5,7 @@ * Copyright (C) Luke Kenneth Casson Leighton 1996-1997, * Copyright (C) Paul Ashton 1997. * Copyright (C) Jeremy Allison 1999. + * Copyright (C) Simo Sorce 2010 * * This program is free software; you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by @@ -21,6 +22,7 @@ */ #include "includes.h" +#include "librpc/gen_ndr/ndr_dcerpc.h" #undef DBGC_CLASS #define DBGC_CLASS DBGC_RPC_PARSE @@ -228,6 +230,21 @@ bool smb_io_rpc_context(const char *desc, struct dcerpc_ctx_list *rpc_ctx, prs_s return True; } +NTSTATUS dcerpc_pull_dcerpc_bind(TALLOC_CTX *mem_ctx, + const DATA_BLOB *blob, + struct dcerpc_bind *r) +{ + enum ndr_err_code ndr_err; + + ndr_err = ndr_pull_struct_blob(blob, mem_ctx, r, + (ndr_pull_flags_fn_t)ndr_pull_dcerpc_bind); + if (!NDR_ERR_CODE_IS_SUCCESS(ndr_err)) { + return ndr_map_error2ntstatus(ndr_err); + } + + return NT_STATUS_OK; +} + /******************************************************************* Reads or writes an RPC_HDR_RB structure. ********************************************************************/ |