aboutsummaryrefslogtreecommitdiffstats
path: root/epan/dissectors/packet-dcerpc-ndr.c
diff options
context:
space:
mode:
authorRonnie Sahlberg <ronnie_sahlberg@ozemail.com.au>2005-01-28 09:37:47 +0000
committerRonnie Sahlberg <ronnie_sahlberg@ozemail.com.au>2005-01-28 09:37:47 +0000
commit0c00534dd1a91630d53e566dad06010e284a7009 (patch)
treeeb466183ba1a6e3ecd137498757c543ed7f99c3f /epan/dissectors/packet-dcerpc-ndr.c
parent610da77693fcb3d857253e953cb687224249fd74 (diff)
we need a dissect_ndr_uint64() that dissects an NDR hyper
svn path=/trunk/; revision=13185
Diffstat (limited to 'epan/dissectors/packet-dcerpc-ndr.c')
-rw-r--r--epan/dissectors/packet-dcerpc-ndr.c22
1 files changed, 22 insertions, 0 deletions
diff --git a/epan/dissectors/packet-dcerpc-ndr.c b/epan/dissectors/packet-dcerpc-ndr.c
index 23ad96b929..409207c498 100644
--- a/epan/dissectors/packet-dcerpc-ndr.c
+++ b/epan/dissectors/packet-dcerpc-ndr.c
@@ -126,6 +126,28 @@ dissect_ndr_duint32 (tvbuff_t *tvb, gint offset, packet_info *pinfo,
tree, drep, hfindex, pdata);
}
+/* uint64 : hyper
+ a 64 bit integer aligned to proper 8 byte boundaries
+*/
+int
+dissect_ndr_uint64 (tvbuff_t *tvb, gint offset, packet_info *pinfo,
+ proto_tree *tree, guint8 *drep,
+ int hfindex, guint64 *pdata)
+{
+ dcerpc_info *di;
+
+ di=pinfo->private_data;
+ if(di->conformant_run){
+ /* just a run to handle conformant arrays, no scalars to dissect */
+ return offset;
+ }
+
+ if (offset % 8) {
+ offset += 8 - (offset % 8);
+ }
+ return dissect_dcerpc_uint64 (tvb, offset, pinfo,
+ tree, drep, hfindex, pdata);
+}
int
dissect_ndr_float(tvbuff_t *tvb, gint offset, packet_info *pinfo,