summaryrefslogtreecommitdiff
path: root/source4/build/pidl/packet-dcerpc-eparser.c
diff options
context:
space:
mode:
authorJelmer Vernooij <jelmer@samba.org>2004-08-10 18:47:26 +0000
committerGerald (Jerry) Carter <jerry@samba.org>2007-10-10 12:57:49 -0500
commit2c7c48017b59d666927f6702ac148bf2ccface07 (patch)
tree9359fbd4a819aa1d64c92f0ca5df49363a9098e5 /source4/build/pidl/packet-dcerpc-eparser.c
parente079b4fce1c1f819292d45d52cb8c4b5a89de70f (diff)
downloadsamba-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.c35
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)
{