diff options
author | Jelmer Vernooij <jelmer@samba.org> | 2004-08-10 18:47:26 +0000 |
---|---|---|
committer | Gerald (Jerry) Carter <jerry@samba.org> | 2007-10-10 12:57:49 -0500 |
commit | 2c7c48017b59d666927f6702ac148bf2ccface07 (patch) | |
tree | 9359fbd4a819aa1d64c92f0ca5df49363a9098e5 /source4/build/pidl/packet-dcerpc-eparser.c | |
parent | e079b4fce1c1f819292d45d52cb8c4b5a89de70f (diff) | |
download | samba-2c7c48017b59d666927f6702ac148bf2ccface07.tar.gz samba-2c7c48017b59d666927f6702ac148bf2ccface07.tar.bz2 samba-2c7c48017b59d666927f6702ac148bf2ccface07.zip |
r1701: Bugfixes to Tim's ethereal parser generator
(This used to be commit 8cd33b6cce6aaf8e819001d52bc77659b4116be9)
Diffstat (limited to 'source4/build/pidl/packet-dcerpc-eparser.c')
-rw-r--r-- | source4/build/pidl/packet-dcerpc-eparser.c | 35 |
1 files changed, 33 insertions, 2 deletions
diff --git a/source4/build/pidl/packet-dcerpc-eparser.c b/source4/build/pidl/packet-dcerpc-eparser.c index c1b6e4378c..bef5d82646 100644 --- a/source4/build/pidl/packet-dcerpc-eparser.c +++ b/source4/build/pidl/packet-dcerpc-eparser.c @@ -57,11 +57,18 @@ void ndr_pull_level(struct e_ndr_pull *ndr, proto_tree *tree, int hf, tree, ndr->drep, hf, data); } -void ndr_pull_NTSTATUS(struct e_ndr_pull *ndr, proto_tree *tree, int hf) +void ndr_pull_NTSTATUS(struct e_ndr_pull *ndr, proto_tree *tree, int hf, gNTSTATUS *data) { ndr->offset = dissect_ntstatus( ndr->tvb, ndr->offset, ndr->pinfo, - tree, ndr->drep, hf, NULL); + tree, ndr->drep, hf, data); +} + +void ndr_pull_WERROR(struct e_ndr_pull *ndr, proto_tree *tree, int hf, gWERROR *data) +{ + ndr->offset = dissect_werror( + ndr->tvb, ndr->offset, ndr->pinfo, + tree, ndr->drep, hf, data); } void ndr_pull_uint8(struct e_ndr_pull *ndr, proto_tree *tree, int hf, @@ -104,6 +111,18 @@ void ndr_pull_uint64(struct e_ndr_pull *ndr, proto_tree *tree, int hf, tree, ndr->drep, hf, data); } +void ndr_pull_DATA_BLOB(struct e_ndr_pull *ndr, proto_tree *tree, int hf, gDATA_BLOB *h) +{ + guint32 len1, ofs, len2; + char *data; + + if (!(ndr_flags & NDR_SCALARS)) { + return; + } + + /* FIXME */ +} + void ndr_pull_string(struct e_ndr_pull *ndr, proto_tree *tree, int ndr_flags) { guint32 len1, ofs, len2; @@ -511,6 +530,18 @@ void ndr_pull_array_uint8(struct e_ndr_pull *ndr, proto_tree *tree, int hf, } } +void ndr_pull_array_uint16(struct e_ndr_pull *ndr, proto_tree *tree, int hf, + int ndr_flags, guint32 n) +{ + guint32 i; + if (!(ndr_flags & NDR_SCALARS)) { + return; + } + for (i=0;i<n;i++) { + ndr_pull_uint16(ndr, tree, hf, NULL); + } +} + void ndr_pull_array_uint32(struct e_ndr_pull *ndr, proto_tree *tree, int hf, int ndr_flags, guint32 n) { |