aboutsummaryrefslogtreecommitdiffstats
path: root/epan/dissectors/packet-giop.c
diff options
context:
space:
mode:
authorArtur Nowosielski <artnowo@gmail.com>2015-05-29 01:13:34 +0200
committerGuy Harris <guy@alum.mit.edu>2015-05-29 00:22:52 +0000
commit7e3d4f6eb8fc2bc32176a35a6a4475d069dc2293 (patch)
tree3c9d86f121f53f9feb27731298730e77f8f704a7 /epan/dissectors/packet-giop.c
parent61cef23486d84da0b53107d35d641f15265bef3f (diff)
enabled decoding of longlong and ulonglong in GIOP
Change-Id: I21323ab6c44583494c4353650caea0d23ef3f30c Reviewed-on: https://code.wireshark.org/review/8679 Reviewed-by: Guy Harris <guy@alum.mit.edu>
Diffstat (limited to 'epan/dissectors/packet-giop.c')
-rw-r--r--epan/dissectors/packet-giop.c19
1 files changed, 19 insertions, 0 deletions
diff --git a/epan/dissectors/packet-giop.c b/epan/dissectors/packet-giop.c
index 068532120f..1fdfa9cfc1 100644
--- a/epan/dissectors/packet-giop.c
+++ b/epan/dissectors/packet-giop.c
@@ -396,6 +396,8 @@ static int hf_giop_type_double = -1;
static int hf_giop_type_enum = -1;
static int hf_giop_type_float = -1;
static int hf_giop_type_long = -1;
+static int hf_giop_type_longlong = -1;
+static int hf_giop_type_ulonglong = -1;
static int hf_giop_type_octet = -1;
static int hf_giop_type_short = -1;
static int hf_giop_type_string = -1;
@@ -2183,6 +2185,9 @@ static void dissect_data_for_typecode(tvbuff_t *tvb, packet_info *pinfo, proto_t
gint32 s_octet4; /* signed int32 */
guint32 u_octet4; /* unsigned int32 */
+ gint64 s_octet8; /* signed int64 */
+ guint64 u_octet8; /* unsigned int64 */
+
gdouble my_double; /* double */
gfloat my_float; /* float */
@@ -2269,8 +2274,12 @@ static void dissect_data_for_typecode(tvbuff_t *tvb, packet_info *pinfo, proto_t
case tk_except:
break;
case tk_longlong:
+ s_octet8 = get_CDR_long_long(tvb, offset, stream_is_big_endian, boundary);
+ proto_tree_add_int64(tree, hf_giop_type_longlong, tvb, *offset-8, 8, s_octet8);
break;
case tk_ulonglong:
+ u_octet8 = get_CDR_ulong_long(tvb, offset, stream_is_big_endian, boundary);
+ proto_tree_add_uint64(tree, hf_giop_type_ulonglong, tvb, *offset-8, 8, u_octet8);
break;
case tk_longdouble:
break;
@@ -5306,6 +5315,16 @@ proto_register_giop (void)
FT_INT32, BASE_DEC, NULL, 0x0, NULL, HFILL }
},
+ { &hf_giop_type_longlong,
+ { "TypeCode longlong data", "giop.tclonglongdata",
+ FT_INT64, BASE_DEC, NULL, 0x0, NULL, HFILL }
+ },
+
+ { &hf_giop_type_ulonglong,
+ { "TypeCode ulonglong data", "giop.tculonglongdata",
+ FT_UINT64, BASE_DEC, NULL, 0x0, NULL, HFILL }
+ },
+
{ &hf_giop_type_octet,
{ "TypeCode octet data", "giop.tcoctet",
FT_UINT8, BASE_DEC, NULL, 0x0, NULL, HFILL }