LISP: Switch to proto_tree_add_subtree_format()

When the LISP dissector was initially written, it followed a different
pattern for adding subtrees with a text label, which needs to be
modified while dissecting: proto_tree_add_item() +
proto_item_append_text() + proto_item_add_subtree().

This commit updates the code to use the more elegant
proto_tree_add_subtree_format() call.

Change-Id: Icb6424be3c9cdecbfe9bb5aa2d39f3ad3d1499e0
Signed-off-by: Lorand Jakab <ljakab@ac.upc.edu>
Reviewed-on: https://code.wireshark.org/review/30655
Petri-Dish: Pascal Quantin <pascal.quantin@gmail.com>
Tested-by: Petri Dish Buildbot
Reviewed-by: Pascal Quantin <pascal.quantin@gmail.com>
This commit is contained in:
Lorand Jakab 2018-11-16 13:03:55 +01:00 committed by Pascal Quantin
parent e2e069e3fa
commit f8100ba30a
2 changed files with 7 additions and 37 deletions

View File

@ -68,7 +68,6 @@ static int hf_lisp_tcp_message_eid_prefix_afi = -1;
static int hf_lisp_tcp_message_eid_ipv4 = -1;
static int hf_lisp_tcp_message_eid_ipv6 = -1;
static int hf_lisp_tcp_message_eid_mac = -1;
static int hf_lisp_tcp_message_eid_lcaf = -1;
static int hf_lisp_tcp_message_rloc_afi = -1;
static int hf_lisp_tcp_message_rloc_ipv4 = -1;
static int hf_lisp_tcp_message_rloc_ipv6 = -1;
@ -141,7 +140,6 @@ static guint
dissect_lisp_tcp_message_eid_prefix(tvbuff_t *tvb, packet_info *pinfo, proto_tree *message_tree,
guint offset, proto_item *tim)
{
proto_item *ti_lcaf_prefix;
proto_tree *prefix_tree, *lcaf_tree;
guint8 prefix_length;
guint16 prefix_afi, addr_len = 0;
@ -181,9 +179,7 @@ dissect_lisp_tcp_message_eid_prefix(tvbuff_t *tvb, packet_info *pinfo, proto_tre
offset += INET6_ADDRLEN;
break;
case AFNUM_LCAF:
ti_lcaf_prefix = proto_tree_add_item(prefix_tree, hf_lisp_tcp_message_eid_lcaf, tvb, offset, addr_len, ENC_ASCII|ENC_NA);
proto_item_append_text(ti_lcaf_prefix, "%s", prefix);
lcaf_tree = proto_item_add_subtree(ti_lcaf_prefix, ett_lisp_tcp_lcaf);
lcaf_tree = proto_tree_add_subtree_format(prefix_tree, tvb, offset, addr_len, ett_lisp_tcp_lcaf, NULL, "Address: %s", prefix);
dissect_lcaf(tvb, pinfo, lcaf_tree, offset, NULL);
offset += addr_len;
break;
@ -642,9 +638,6 @@ proto_register_lisp_tcp(void)
{ &hf_lisp_tcp_message_eid_mac,
{ "Address", "lisp-tcp.message.eid.mac",
FT_ETHER, BASE_NONE, NULL, 0x0, NULL, HFILL }},
{ &hf_lisp_tcp_message_eid_lcaf,
{ "Address", "lisp-tcp.message.eid.lcaf",
FT_STRING, BASE_NONE, NULL, 0x0, NULL, HFILL }},
{ &hf_lisp_tcp_message_rloc_afi,
{ "RLOC AFI", "lisp-tcp.message.rloc.afi",
FT_UINT16, BASE_DEC, VALS(afn_vals), 0x0, NULL, HFILL }},

View File

@ -153,7 +153,6 @@ static int hf_lisp_mreq_srceid_string = -1;
static int hf_lisp_mreq_srceid_ipv4 = -1;
static int hf_lisp_mreq_srceid_ipv6 = -1;
static int hf_lisp_mreq_srceid_mac = -1;
static int hf_lisp_mreq_srceid_lcaf = -1;
static int hf_lisp_mreq_itr_rloc = -1;
static int hf_lisp_mreq_itr_rloc_afi = -1;
static int hf_lisp_mreq_itr_rloc_ipv4 = -1;
@ -165,7 +164,6 @@ static int hf_lisp_mreq_record_prefix_afi = -1;
static int hf_lisp_mreq_record_prefix_ipv4 = -1;
static int hf_lisp_mreq_record_prefix_ipv6 = -1;
static int hf_lisp_mreq_record_prefix_mac = -1;
static int hf_lisp_mreq_record_prefix_lcaf = -1;
/* Map-Reply fields */
static int hf_lisp_mrep_record = -1;
@ -197,7 +195,6 @@ static int hf_lisp_info_r = -1;
static int hf_lisp_info_res1 = -1;
static int hf_lisp_info_ttl = -1;
static int hf_lisp_info_res2 = -1;
static int hf_lisp_info_prefix = -1;
static int hf_lisp_info_prefix_masklen = -1;
static int hf_lisp_info_prefix_afi = -1;
static int hf_lisp_info_prefix_ipv4 = -1;
@ -218,7 +215,6 @@ static int hf_lisp_mapping_eid_afi = -1;
static int hf_lisp_mapping_eid_ipv4 = -1;
static int hf_lisp_mapping_eid_ipv6 = -1;
static int hf_lisp_mapping_eid_mac = -1;
static int hf_lisp_mapping_eid_lcaf = -1;
/* Locator fields */
static int hf_lisp_loc = -1;
@ -1929,7 +1925,7 @@ dissect_lisp_mapping(tvbuff_t *tvb, packet_info *pinfo, proto_tree *lisp_tree,
guint16 act;
guint16 prefix_afi, eid_afi;
const gchar *prefix;
proto_item *tir, *ti_lcaf_prefix;
proto_item *tir;
proto_tree *lisp_mapping_tree, *lcaf_prefix_tree;
prefix_mask = tvb_get_guint8(tvb, offset + 5);
@ -2029,9 +2025,7 @@ dissect_lisp_mapping(tvbuff_t *tvb, packet_info *pinfo, proto_tree *lisp_tree,
offset += INET6_ADDRLEN;
break;
case AFNUM_LCAF:
ti_lcaf_prefix = proto_tree_add_item(lisp_mapping_tree, hf_lisp_mapping_eid_lcaf, tvb, offset, addr_len, ENC_ASCII|ENC_NA);
proto_item_append_text(ti_lcaf_prefix, "%s", prefix);
lcaf_prefix_tree = proto_item_add_subtree(ti_lcaf_prefix, ett_lisp_lcaf);
lcaf_prefix_tree = proto_tree_add_subtree_format(lisp_mapping_tree, tvb, offset, addr_len, ett_lisp_lcaf, NULL, "EID Prefix: %s", prefix);
dissect_lcaf(tvb, pinfo, lcaf_prefix_tree, offset, NULL);
offset += addr_len;
break;
@ -2101,7 +2095,7 @@ dissect_lisp_map_request(tvbuff_t *tvb, packet_info *pinfo, proto_tree *lisp_tre
guint8 rec_cnt = 0;
guint16 src_eid_afi;
const gchar *src_eid;
proto_item *ti_flags, *ti_lcaf_src_eid, *ti_lcaf_prefix;
proto_item *ti_flags;
proto_tree *flags_tree, *lcaf_src_eid_tree, *lcaf_prefix_tree;
tvbuff_t *next_tvb;
@ -2173,9 +2167,7 @@ dissect_lisp_map_request(tvbuff_t *tvb, packet_info *pinfo, proto_tree *lisp_tre
break;
case AFNUM_LCAF:
src_eid = get_addr_str(tvb, offset, src_eid_afi, &addr_len);
ti_lcaf_src_eid = proto_tree_add_item(lisp_tree, hf_lisp_mreq_srceid_lcaf, tvb, offset, addr_len, ENC_ASCII|ENC_NA);
proto_item_append_text(ti_lcaf_src_eid, "%s", src_eid);
lcaf_src_eid_tree = proto_item_add_subtree(ti_lcaf_src_eid, ett_lisp_lcaf);
lcaf_src_eid_tree = proto_tree_add_subtree_format(lisp_tree, tvb, offset, addr_len, ett_lisp_lcaf, NULL, "Source EID: %s", src_eid);
dissect_lcaf(tvb, pinfo, lcaf_src_eid_tree, offset, NULL);
offset += addr_len;
break;
@ -2274,9 +2266,7 @@ dissect_lisp_map_request(tvbuff_t *tvb, packet_info *pinfo, proto_tree *lisp_tre
offset += INET6_ADDRLEN;
break;
case AFNUM_LCAF:
ti_lcaf_prefix = proto_tree_add_item(lisp_record_tree, hf_lisp_mreq_record_prefix_lcaf, tvb, offset, addr_len, ENC_ASCII|ENC_NA);
proto_item_append_text(ti_lcaf_prefix, "%s", prefix);
lcaf_prefix_tree = proto_item_add_subtree(ti_lcaf_prefix, ett_lisp_lcaf);
lcaf_prefix_tree = proto_tree_add_subtree_format(lisp_record_tree, tvb, offset, addr_len, ett_lisp_lcaf, NULL, "Prefix: %s", prefix);
dissect_lcaf(tvb, pinfo, lcaf_prefix_tree, offset, NULL);
offset += addr_len;
break;
@ -2751,8 +2741,7 @@ dissect_lisp_info(tvbuff_t *tvb, packet_info *pinfo, proto_tree *lisp_tree)
proto_tree_add_item(lisp_tree, hf_lisp_info_res2, tvb, offset, 1, ENC_BIG_ENDIAN);
offset += 1;
ti_prefix = proto_tree_add_item(lisp_tree, hf_lisp_info_prefix, tvb, offset, 3, ENC_ASCII|ENC_NA);
prefix_tree = proto_item_add_subtree(ti_prefix, ett_lisp_info_prefix);
prefix_tree = proto_tree_add_subtree(lisp_tree, tvb, offset, 3, ett_lisp_info_prefix, &ti_prefix, "EID Prefix: ");
proto_tree_add_item(prefix_tree, hf_lisp_info_prefix_masklen, tvb, offset, 1, ENC_BIG_ENDIAN);
prefix_mask = tvb_get_guint8(tvb, offset); offset += 1;
@ -2996,9 +2985,6 @@ proto_register_lisp(void)
{ &hf_lisp_mreq_srceid_mac,
{ "Source EID", "lisp.mreq.srceid.mac",
FT_ETHER, BASE_NONE, NULL, 0x0, NULL, HFILL }},
{ &hf_lisp_mreq_srceid_lcaf,
{ "Source EID", "lisp.mreq.srceid.lcaf",
FT_STRING, BASE_NONE, NULL, 0x0, "Source EID Address", HFILL }},
{ &hf_lisp_mreq_itr_rloc,
{ "ITR-RLOC", "lisp.mreq.itr_rloc",
FT_NONE, BASE_NONE, NULL, 0x0, "Originating ITR RLOC Address", HFILL }},
@ -3029,9 +3015,6 @@ proto_register_lisp(void)
{ &hf_lisp_mreq_record_prefix_mac,
{ "Prefix", "lisp.mreq.record.prefix.mac",
FT_ETHER, BASE_NONE, NULL, 0x0, NULL, HFILL }},
{ &hf_lisp_mreq_record_prefix_lcaf,
{ "Prefix", "lisp.mreq.record.prefix.lcaf",
FT_STRING, BASE_NONE, NULL, 0x0, NULL, HFILL }},
{ &hf_lisp_mreq_record,
{ "Map-Request Record", "lisp.mreq.record",
FT_NONE, BASE_NONE, NULL, 0x0, NULL, HFILL }},
@ -3116,9 +3099,6 @@ proto_register_lisp(void)
{ &hf_lisp_info_res2,
{ "Reserved bits", "lisp.info.res2",
FT_UINT8, BASE_HEX, NULL, 0xFF, "Must be zero", HFILL }},
{ &hf_lisp_info_prefix,
{ "EID Prefix", "lisp.info.prefix",
FT_STRING, BASE_NONE, NULL, 0x0, NULL, HFILL }},
{ &hf_lisp_info_prefix_masklen,
{ "EID Prefix Mask Length", "lisp.info.prefix.masklen",
FT_UINT8, BASE_DEC, NULL, 0x0, NULL, HFILL }},
@ -3215,9 +3195,6 @@ proto_register_lisp(void)
{ &hf_lisp_mapping_eid_mac,
{ "EID Prefix", "lisp.mapping.eid.mac",
FT_ETHER, BASE_NONE, NULL, 0x0, NULL, HFILL }},
{ &hf_lisp_mapping_eid_lcaf,
{ "EID Prefix", "lisp.mapping.eid.lcaf",
FT_STRING, BASE_NONE, NULL, 0x0, NULL, HFILL }},
{ &hf_lisp_ecm_flags_sec,
{ "S bit (LISP-SEC capable)", "lisp.ecm.flags.sec",
FT_BOOLEAN, 32, TFS(&tfs_set_notset), ECM_FLAG_S, NULL, HFILL }},