aboutsummaryrefslogtreecommitdiffstats
path: root/epan/dissectors/packet-giop.c
diff options
context:
space:
mode:
Diffstat (limited to 'epan/dissectors/packet-giop.c')
-rw-r--r--epan/dissectors/packet-giop.c22
1 files changed, 12 insertions, 10 deletions
diff --git a/epan/dissectors/packet-giop.c b/epan/dissectors/packet-giop.c
index b6a723a5b8..8de212b862 100644
--- a/epan/dissectors/packet-giop.c
+++ b/epan/dissectors/packet-giop.c
@@ -358,6 +358,7 @@ static int hf_giop_string_length = -1;
static int hf_giop_sequence_length = -1;
static int hf_giop_profile_id = -1;
static int hf_giop_type_id = -1;
+static int hf_giop_type_id_match = -1;
static int hf_giop_iiop_v_maj = -1;
static int hf_giop_iiop_v_min = -1;
static int hf_giop_endianness = -1; /* esp encapsulations */
@@ -838,6 +839,7 @@ static const value_string reply_status_types[] = {
{ 0, NULL }
};
+const true_false_string tfs_matched_not_matched = { "Matched", "Not matched" };
typedef enum LocateStatusType
@@ -4086,9 +4088,9 @@ dissect_reply_body (tvbuff_t *tvb, guint offset, packet_info *pinfo,
exres = try_heuristic_giop_dissector(tvb, pinfo, clnp_tree, &offset, header, entry->operation);
}
- if (!exres && !strcmp(giop_op_is_a, entry->operation) && tree) {
- proto_tree_add_text(tree, tvb, offset - 1, 1, "Type Id%s matched",
- get_CDR_boolean(tvb, &offset) ? "" : " not");
+ if (!exres && !strcmp(giop_op_is_a, entry->operation)) {
+ proto_tree_add_boolean(tree, hf_giop_type_id_match, tvb, offset - 1, 1,
+ get_CDR_boolean(tvb, &offset));
}
if (! exres) {
@@ -4345,7 +4347,7 @@ dissect_giop_request_1_1 (tvbuff_t * tvb, packet_info * pinfo,
if (miop[0] == 'M' && miop[1] == 'I' && miop[2] == 'O' && miop[3] == 'P')
{
- proto_tree_add_text (request_tree, tvb, offset - 4, 4, "Magic number: MIOP");
+ proto_tree_add_string(request_tree, hf_giop_message_magic, tvb, offset - 4, 4, "MIOP");
decode_TaggedProfile (tvb, pinfo, request_tree, &offset, GIOP_HEADER_SIZE,
stream_is_big_endian, NULL);
}
@@ -4746,11 +4748,7 @@ static int dissect_giop_common (tvbuff_t * tvb, packet_info * pinfo, proto_tree
proto_item_append_text(ti, ", (Big Endian)"); /* hack to show "Big Endian" when endianness flag == 0 */
break;
case 0:
- proto_tree_add_text (header_version_tree, tvb, 6, 1,
- "Byte ordering: %s-endian",
- (stream_is_big_endian) ? "big" : "little");
- ti = proto_tree_add_boolean(header_tree, hf_giop_message_flags_little_endian, tvb, 6, 1, stream_is_big_endian ? 0 : 1);
- PROTO_ITEM_SET_HIDDEN(ti);
+ proto_tree_add_boolean(header_tree, hf_giop_message_flags_little_endian, tvb, 6, 1, stream_is_big_endian ? 0 : 1);
break;
}
@@ -5023,12 +5021,16 @@ proto_register_giop (void)
FT_UINT32, BASE_DEC, VALS(profile_id_vals), 0x0, NULL, HFILL }
},
-
{ &hf_giop_type_id,
{ "IOR::type_id", "giop.typeid",
FT_STRING, BASE_NONE, NULL, 0x0, NULL, HFILL }
},
+ { &hf_giop_type_id_match,
+ { "Type Id", "giop.typeid.match",
+ FT_BOOLEAN, BASE_NONE, TFS(&tfs_matched_not_matched), 0x0, NULL, HFILL }
+ },
+
{ &hf_giop_type_id_len,
{ "Type Id length", "giop.typeid_len",
FT_UINT32, BASE_DEC, NULL, 0x0, NULL, HFILL }