aboutsummaryrefslogtreecommitdiffstats
path: root/epan/dissectors
diff options
context:
space:
mode:
authorMichael Mann <mmann78@netscape.net>2014-07-01 18:31:05 -0400
committerMichael Mann <mmann78@netscape.net>2014-07-04 16:59:14 +0000
commitc7a6e6fa130611941a5d05e7646d7c38d78b2d0a (patch)
tree435964d38acd7196e6d6aa58be80e44634ebfa9c /epan/dissectors
parent93517043e96c26a1d3dad49c2f57b345e3bbbba0 (diff)
convert to proto_tree_add_subtree[_format]
Change-Id: I621f2e2cad9403449cb78f45302388f0c874d3bc Reviewed-on: https://code.wireshark.org/review/2852 Reviewed-by: Michael Mann <mmann78@netscape.net>
Diffstat (limited to 'epan/dissectors')
-rw-r--r--epan/dissectors/packet-m2pa.c12
-rw-r--r--epan/dissectors/packet-m2tp.c18
-rw-r--r--epan/dissectors/packet-m2ua.c18
-rw-r--r--epan/dissectors/packet-m3ua.c22
-rw-r--r--epan/dissectors/packet-mac-lte.c12
-rw-r--r--epan/dissectors/packet-maccontrol.c3
-rw-r--r--epan/dissectors/packet-mbim.c101
-rw-r--r--epan/dissectors/packet-mbtcp.c32
-rw-r--r--epan/dissectors/packet-mdshdr.c12
-rw-r--r--epan/dissectors/packet-megaco.c24
-rw-r--r--epan/dissectors/packet-mih.c37
-rw-r--r--epan/dissectors/packet-mip.c15
-rw-r--r--epan/dissectors/packet-mip6.c118
-rw-r--r--epan/dissectors/packet-mndp.c8
-rw-r--r--epan/dissectors/packet-mojito.c50
-rw-r--r--epan/dissectors/packet-mount.c15
-rw-r--r--epan/dissectors/packet-mp2t.c7
-rw-r--r--epan/dissectors/packet-mpeg-descriptor.c33
-rw-r--r--epan/dissectors/packet-mpeg-dsmcc.c37
-rw-r--r--epan/dissectors/packet-mpeg-pat.c5
-rw-r--r--epan/dissectors/packet-mpeg-pmt.c5
-rw-r--r--epan/dissectors/packet-mpls-echo.c72
-rw-r--r--epan/dissectors/packet-mpls-y1711.c4
-rw-r--r--epan/dissectors/packet-mq-pcf.c52
-rw-r--r--epan/dissectors/packet-mq.c123
-rw-r--r--epan/dissectors/packet-mqtt.c3
-rw-r--r--epan/dissectors/packet-msdp.c11
-rw-r--r--epan/dissectors/packet-msproxy.c9
-rw-r--r--epan/dissectors/packet-msrp.c5
-rw-r--r--epan/dissectors/packet-mtp2.c10
-rw-r--r--epan/dissectors/packet-mtp3.c20
-rw-r--r--epan/dissectors/packet-mtp3mg.c6
-rw-r--r--epan/dissectors/packet-mux27010.c4
33 files changed, 326 insertions, 577 deletions
diff --git a/epan/dissectors/packet-m2pa.c b/epan/dissectors/packet-m2pa.c
index 7ffc180867..120b1f3259 100644
--- a/epan/dissectors/packet-m2pa.c
+++ b/epan/dissectors/packet-m2pa.c
@@ -224,14 +224,12 @@ dissect_header(tvbuff_t *header_tvb, packet_info *pinfo, proto_tree *m2pa_tree)
static void
dissect_v2_user_data_message(tvbuff_t *message_data_tvb, packet_info *pinfo, proto_item *m2pa_item, proto_tree *m2pa_tree, proto_tree *tree)
{
- proto_item *m2pa_li_item;
proto_tree *m2pa_li_tree;
tvbuff_t *payload_tvb;
if (tvb_length(message_data_tvb) > 0) {
if (m2pa_tree) {
- m2pa_li_item = proto_tree_add_text(m2pa_tree, message_data_tvb, LI_OFFSET, LI_LENGTH, "Length Indicator");
- m2pa_li_tree = proto_item_add_subtree(m2pa_li_item, ett_m2pa_li);
+ m2pa_li_tree = proto_tree_add_subtree(m2pa_tree, message_data_tvb, LI_OFFSET, LI_LENGTH, ett_m2pa_li, NULL, "Length Indicator");
proto_tree_add_item(m2pa_li_tree, hf_v2_li_spare, message_data_tvb, LI_OFFSET, LI_LENGTH, ENC_BIG_ENDIAN);
proto_tree_add_item(m2pa_li_tree, hf_v2_li_prio, message_data_tvb, LI_OFFSET, LI_LENGTH, ENC_BIG_ENDIAN);
@@ -251,14 +249,12 @@ dissect_v2_user_data_message(tvbuff_t *message_data_tvb, packet_info *pinfo, pro
static void
dissect_v8_user_data_message(tvbuff_t *message_data_tvb, packet_info *pinfo, proto_item *m2pa_item, proto_tree *m2pa_tree, proto_tree *tree)
{
- proto_item *m2pa_li_item;
proto_tree *m2pa_li_tree;
tvbuff_t *payload_tvb;
if (tvb_length(message_data_tvb) > 0) {
if (m2pa_tree) {
- m2pa_li_item = proto_tree_add_text(m2pa_tree, message_data_tvb, LI_OFFSET, LI_LENGTH, "Length Indicator");
- m2pa_li_tree = proto_item_add_subtree(m2pa_li_item, ett_m2pa_li);
+ m2pa_li_tree = proto_tree_add_subtree(m2pa_tree, message_data_tvb, LI_OFFSET, LI_LENGTH, ett_m2pa_li, NULL, "Length Indicator");
proto_tree_add_item(m2pa_li_tree, hf_v8_li_prio, message_data_tvb, LI_OFFSET, LI_LENGTH, ENC_BIG_ENDIAN);
proto_tree_add_item(m2pa_li_tree, hf_v8_li_spare, message_data_tvb, LI_OFFSET, LI_LENGTH, ENC_BIG_ENDIAN);
@@ -280,14 +276,12 @@ dissect_v8_user_data_message(tvbuff_t *message_data_tvb, packet_info *pinfo, pro
static void
dissect_user_data_message(tvbuff_t *message_data_tvb, packet_info *pinfo, proto_item *m2pa_item, proto_tree *m2pa_tree, proto_tree *tree)
{
- proto_item *m2pa_li_item;
proto_tree *m2pa_li_tree;
tvbuff_t *payload_tvb;
if (tvb_length(message_data_tvb) > 0) {
if (m2pa_tree) {
- m2pa_li_item = proto_tree_add_text(m2pa_tree, message_data_tvb, PRI_OFFSET, PRI_LENGTH, "Priority");
- m2pa_li_tree = proto_item_add_subtree(m2pa_li_item, ett_m2pa_li);
+ m2pa_li_tree = proto_tree_add_subtree(m2pa_tree, message_data_tvb, PRI_OFFSET, PRI_LENGTH, ett_m2pa_li, NULL, "Priority");
proto_tree_add_item(m2pa_li_tree, hf_pri_prio, message_data_tvb, PRI_OFFSET, PRI_LENGTH, ENC_BIG_ENDIAN);
proto_tree_add_item(m2pa_li_tree, hf_pri_spare, message_data_tvb, PRI_OFFSET, PRI_LENGTH, ENC_BIG_ENDIAN);
diff --git a/epan/dissectors/packet-m2tp.c b/epan/dissectors/packet-m2tp.c
index 62b030ebf9..719bf0318f 100644
--- a/epan/dissectors/packet-m2tp.c
+++ b/epan/dissectors/packet-m2tp.c
@@ -452,8 +452,8 @@ dissect_m2tp_parameter(tvbuff_t *parameter_tvb, packet_info *pinfo, proto_tree *
if (tree) {
/* create proto_tree stuff */
- parameter_item = proto_tree_add_text(m2tp_tree, parameter_tvb, PARAMETER_HEADER_OFFSET, total_length, "Incomplete parameter");
- parameter_tree = proto_item_add_subtree(parameter_item, ett_m2tp_parameter);
+ parameter_tree = proto_tree_add_subtree(m2tp_tree, parameter_tvb, PARAMETER_HEADER_OFFSET, total_length,
+ ett_m2tp_parameter, &parameter_item, "Incomplete parameter");
/* add tag and length to the m2tp tree */
proto_tree_add_uint(parameter_tree, hf_m2tp_parameter_tag, parameter_tvb, PARAMETER_TAG_OFFSET, PARAMETER_TAG_LENGTH, tag);
@@ -534,16 +534,10 @@ dissect_m2tp(tvbuff_t *message_tvb, packet_info *pinfo, proto_tree *tree)
/* make entry in the Protocol column on summary display */
col_set_str(pinfo->cinfo, COL_PROTOCOL, "M2TP");
- /* In the interest of speed, if "tree" is NULL, don't do any work not
- necessary to generate protocol tree items. */
- if (tree) {
- /* create the m2tp protocol tree */
- m2tp_item = proto_tree_add_item(tree, proto_m2tp, message_tvb, 0, -1, ENC_NA);
- m2tp_tree = proto_item_add_subtree(m2tp_item, ett_m2tp);
- } else {
- m2tp_item = NULL;
- m2tp_tree = NULL;
- };
+ /* create the m2tp protocol tree */
+ m2tp_item = proto_tree_add_item(tree, proto_m2tp, message_tvb, 0, -1, ENC_NA);
+ m2tp_tree = proto_item_add_subtree(m2tp_item, ett_m2tp);
+
/* dissect the message */
dissect_m2tp_message(message_tvb, pinfo, m2tp_item, m2tp_tree, tree);
}
diff --git a/epan/dissectors/packet-m2ua.c b/epan/dissectors/packet-m2ua.c
index 95ec7a62a1..2c95c7b95e 100644
--- a/epan/dissectors/packet-m2ua.c
+++ b/epan/dissectors/packet-m2ua.c
@@ -888,9 +888,8 @@ dissect_parameter(tvbuff_t *parameter_tvb, packet_info *pinfo, proto_tree *tree,
padding_length = tvb_length(parameter_tvb) - length;
/* create proto_tree stuff */
- parameter_item = proto_tree_add_text(m2ua_tree, parameter_tvb, PARAMETER_HEADER_OFFSET, tvb_length(parameter_tvb), "%s",
- val_to_str_const(tag, parameter_tag_values, "Unknown parameter"));
- parameter_tree = proto_item_add_subtree(parameter_item, ett_m2ua_parameter);
+ parameter_tree = proto_tree_add_subtree(m2ua_tree, parameter_tvb, PARAMETER_HEADER_OFFSET, -1,
+ ett_m2ua_parameter, &parameter_item, val_to_str_const(tag, parameter_tag_values, "Unknown parameter"));
if ((protocol_data_1_global == PROTOCOL_DATA_1_DRAFT_7) &&
(tag == PROTOCOL_DATA_1_DRAFT_7))
@@ -1049,15 +1048,10 @@ dissect_m2ua(tvbuff_t *message_tvb, packet_info *pinfo, proto_tree *tree)
/* make entry in the Protocol column on summary display */
col_set_str(pinfo->cinfo, COL_PROTOCOL, "M2UA");
- /* In the interest of speed, if "tree" is NULL, don't do any work not
- necessary to generate protocol tree items. */
- if (tree) {
- /* create the m2ua protocol tree */
- m2ua_item = proto_tree_add_item(tree, proto_m2ua, message_tvb, 0, -1, ENC_NA);
- m2ua_tree = proto_item_add_subtree(m2ua_item, ett_m2ua);
- } else {
- m2ua_tree = NULL;
- };
+ /* create the m2ua protocol tree */
+ m2ua_item = proto_tree_add_item(tree, proto_m2ua, message_tvb, 0, -1, ENC_NA);
+ m2ua_tree = proto_item_add_subtree(m2ua_item, ett_m2ua);
+
/* dissect the message */
dissect_message(message_tvb, pinfo, tree, m2ua_tree);
}
diff --git a/epan/dissectors/packet-m3ua.c b/epan/dissectors/packet-m3ua.c
index a7637c2ffb..93723459b3 100644
--- a/epan/dissectors/packet-m3ua.c
+++ b/epan/dissectors/packet-m3ua.c
@@ -1074,8 +1074,7 @@ dissect_circuit_range_parameter(tvbuff_t *parameter_tvb, proto_tree *parameter_t
point_code_offset = PARAMETER_VALUE_OFFSET;
for(point_code_number = 0; point_code_number < number_of_point_codes; point_code_number++) {
- cic_range_item = proto_tree_add_text(parameter_tree, parameter_tvb, point_code_offset + CIC_RANGE_MASK_OFFSET, CIC_RANGE_LENGTH, "CIC range");
- cic_range_tree = proto_item_add_subtree(cic_range_item, ett_parameter);
+ cic_range_tree = proto_tree_add_subtree(parameter_tree, parameter_tvb, point_code_offset + CIC_RANGE_MASK_OFFSET, CIC_RANGE_LENGTH, ett_parameter, &cic_range_item, "CIC range");
proto_tree_add_item(cic_range_tree, hf_cic_range_mask, parameter_tvb, point_code_offset + CIC_RANGE_MASK_OFFSET, CIC_RANGE_MASK_LENGTH, ENC_BIG_ENDIAN);
@@ -1236,9 +1235,8 @@ dissect_protocol_data_parameter(tvbuff_t *parameter_tvb, packet_info *pinfo, pro
proto_item_append_text(parameter_item, " (SS7 message of %u byte%s)", ulp_length, plurality(ulp_length, "", "s"));
proto_item_set_len(parameter_item, PARAMETER_HEADER_LENGTH + DATA_HDR_LENGTH);
- item = proto_tree_add_text(parameter_tree,parameter_tvb,0,0,"MTP3 equivalents");
+ parameter_tree = proto_tree_add_subtree(parameter_tree,parameter_tvb,0,0,ett_mtp3_equiv,&item,"MTP3 equivalents");
PROTO_ITEM_SET_GENERATED(item);
- parameter_tree = proto_item_add_subtree(item,ett_mtp3_equiv);
item = proto_tree_add_item(parameter_tree, hf_protocol_data_mtp3_opc, parameter_tvb, DATA_OPC_OFFSET, DATA_OPC_LENGTH, ENC_BIG_ENDIAN);
PROTO_ITEM_SET_GENERATED(item);
@@ -1396,8 +1394,8 @@ dissect_v5_parameter(tvbuff_t *parameter_tvb, packet_info *pinfo, proto_tree *tr
return; /* Nothing to do here */
/* create proto_tree stuff */
- parameter_item = proto_tree_add_text(m3ua_tree, parameter_tvb, PARAMETER_HEADER_OFFSET, tvb_length(parameter_tvb), "%s", val_to_str_const(tag, v5_parameter_tag_values, "Unknown parameter"));
- parameter_tree = proto_item_add_subtree(parameter_item, ett_parameter);
+ parameter_tree = proto_tree_add_subtree(m3ua_tree, parameter_tvb, PARAMETER_HEADER_OFFSET, -1, ett_parameter, &parameter_item,
+ val_to_str_const(tag, v5_parameter_tag_values, "Unknown parameter"));
/* add tag and length to the parameter tree */
proto_tree_add_item(parameter_tree, hf_v5_parameter_tag, parameter_tvb, PARAMETER_TAG_OFFSET, PARAMETER_TAG_LENGTH, ENC_BIG_ENDIAN);
@@ -1523,8 +1521,8 @@ dissect_v6_parameter(tvbuff_t *parameter_tvb, packet_info *pinfo, proto_tree *tr
return; /* Nothing to do here */
/* create proto_tree stuff */
- parameter_item = proto_tree_add_text(m3ua_tree, parameter_tvb, PARAMETER_HEADER_OFFSET, tvb_length(parameter_tvb), "%s", val_to_str_const(tag, v6_parameter_tag_values, "Unknown parameter"));
- parameter_tree = proto_item_add_subtree(parameter_item, ett_parameter);
+ parameter_tree = proto_tree_add_subtree(m3ua_tree, parameter_tvb, PARAMETER_HEADER_OFFSET, -1,
+ ett_parameter, &parameter_item, val_to_str_const(tag, v6_parameter_tag_values, "Unknown parameter"));
/* add tag and length to the parameter tree */
proto_tree_add_item(parameter_tree, hf_v6_parameter_tag, parameter_tvb, PARAMETER_TAG_OFFSET, PARAMETER_TAG_LENGTH, ENC_BIG_ENDIAN);
@@ -1690,8 +1688,8 @@ dissect_v7_parameter(tvbuff_t *parameter_tvb, packet_info *pinfo, proto_tree *tr
return; /* Nothing to do here */
/* create proto_tree stuff */
- parameter_item = proto_tree_add_text(m3ua_tree, parameter_tvb, PARAMETER_HEADER_OFFSET, tvb_length(parameter_tvb), "%s", val_to_str_const(tag, v7_parameter_tag_values, "Unknown parameter"));
- parameter_tree = proto_item_add_subtree(parameter_item, ett_parameter);
+ parameter_tree = proto_tree_add_subtree(m3ua_tree, parameter_tvb, PARAMETER_HEADER_OFFSET, -1,
+ ett_parameter, &parameter_item, val_to_str_const(tag, v7_parameter_tag_values, "Unknown parameter"));
/* add tag and length to the parameter tree */
proto_tree_add_item(parameter_tree, hf_v7_parameter_tag, parameter_tvb, PARAMETER_TAG_OFFSET, PARAMETER_TAG_LENGTH, ENC_BIG_ENDIAN);
@@ -1857,8 +1855,8 @@ dissect_parameter(tvbuff_t *parameter_tvb, packet_info *pinfo, proto_tree *tree,
return; /* Nothing to do here */
/* create proto_tree stuff */
- parameter_item = proto_tree_add_text(m3ua_tree, parameter_tvb, PARAMETER_HEADER_OFFSET, tvb_length(parameter_tvb), "%s", val_to_str_const(tag, parameter_tag_values, "Unknown parameter"));
- parameter_tree = proto_item_add_subtree(parameter_item, ett_parameter);
+ parameter_tree = proto_tree_add_subtree(m3ua_tree, parameter_tvb, PARAMETER_HEADER_OFFSET, -1,
+ ett_parameter, &parameter_item, val_to_str_const(tag, parameter_tag_values, "Unknown parameter"));
/* add tag and length to the parameter tree */
proto_tree_add_item(parameter_tree, hf_parameter_tag, parameter_tvb, PARAMETER_TAG_OFFSET, PARAMETER_TAG_LENGTH, ENC_BIG_ENDIAN);
diff --git a/epan/dissectors/packet-mac-lte.c b/epan/dissectors/packet-mac-lte.c
index f4f0533953..c723e27011 100644
--- a/epan/dissectors/packet-mac-lte.c
+++ b/epan/dissectors/packet-mac-lte.c
@@ -4244,8 +4244,8 @@ static void dissect_ulsch_or_dlsch(tvbuff_t *tvb, packet_info *pinfo, proto_tree
break;
}
byte = tvb_get_guint8(tvb, curr_offset);
- ephr_cell_ti = proto_tree_add_text(ephr_tree, tvb, curr_offset, (!(byte&0x40)?2:1), "PCell PUCCH");
- ephr_cell_tree = proto_item_add_subtree(ephr_cell_ti, ett_mac_lte_extended_power_headroom_cell);
+ ephr_cell_tree = proto_tree_add_subtree(ephr_tree, tvb, curr_offset, (!(byte&0x40)?2:1),
+ ett_mac_lte_extended_power_headroom_cell, &ephr_cell_ti, "PCell PUCCH");
proto_tree_add_item(ephr_cell_tree, hf_mac_lte_control_ext_power_headroom_power_backoff,
tvb, curr_offset, 1, ENC_BIG_ENDIAN);
proto_tree_add_item(ephr_cell_tree, hf_mac_lte_control_ext_power_headroom_value,
@@ -4274,8 +4274,8 @@ static void dissect_ulsch_or_dlsch(tvbuff_t *tvb, packet_info *pinfo, proto_tree
}
}
byte = tvb_get_guint8(tvb, curr_offset);
- ephr_cell_ti = proto_tree_add_text(ephr_tree, tvb, curr_offset, (!(byte&0x40)?2:1), "PCell PUSCH");
- ephr_cell_tree = proto_item_add_subtree(ephr_cell_ti, ett_mac_lte_extended_power_headroom_cell);
+ ephr_cell_tree = proto_tree_add_subtree(ephr_tree, tvb, curr_offset, (!(byte&0x40)?2:1),
+ ett_mac_lte_extended_power_headroom_cell, &ephr_cell_ti, "PCell PUSCH");
proto_tree_add_item(ephr_cell_tree, hf_mac_lte_control_ext_power_headroom_power_backoff,
tvb, curr_offset, 1, ENC_BIG_ENDIAN);
proto_tree_add_item(ephr_cell_tree, hf_mac_lte_control_ext_power_headroom_value,
@@ -4305,8 +4305,8 @@ static void dissect_ulsch_or_dlsch(tvbuff_t *tvb, packet_info *pinfo, proto_tree
for (i = 1, scell_bitmap>>=1; i <= 7; i++, scell_bitmap>>=1) {
if (scell_bitmap & 0x01) {
byte = tvb_get_guint8(tvb, curr_offset);
- ephr_cell_ti = proto_tree_add_text(ephr_tree, tvb, curr_offset, (!(byte&0x40)?2:1), "SCell Index %u PUSCH", i);
- ephr_cell_tree = proto_item_add_subtree(ephr_cell_ti, ett_mac_lte_extended_power_headroom_cell);
+ ephr_cell_tree = proto_tree_add_subtree_format(ephr_tree, tvb, curr_offset, (!(byte&0x40)?2:1),
+ ett_mac_lte_extended_power_headroom_cell, &ephr_cell_ti, "SCell Index %u PUSCH", i);
proto_tree_add_item(ephr_cell_tree, hf_mac_lte_control_ext_power_headroom_power_backoff,
tvb, curr_offset, 1, ENC_BIG_ENDIAN);
proto_tree_add_item(ephr_cell_tree, hf_mac_lte_control_ext_power_headroom_value,
diff --git a/epan/dissectors/packet-maccontrol.c b/epan/dissectors/packet-maccontrol.c
index 1c4c2effb0..d6ccdecd78 100644
--- a/epan/dissectors/packet-maccontrol.c
+++ b/epan/dissectors/packet-maccontrol.c
@@ -210,8 +210,7 @@ dissect_macctrl(tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree)
proto_tree_add_bitmask(macctrl_tree, tvb, 2, hf_macctrl_cbfc_enbv,
ett_macctrl_cbfc_enbv, macctrl_cbfc_enbv_list, ENC_BIG_ENDIAN);
- ti = proto_tree_add_text(macctrl_tree, tvb, 4, 8*2, "CBFC Class Pause Times");
- pause_times_tree = proto_item_add_subtree(ti, ett_macctrl_cbfc_pause_times);
+ pause_times_tree = proto_tree_add_subtree(macctrl_tree, tvb, 4, 8*2, ett_macctrl_cbfc_pause_times, NULL, "CBFC Class Pause Times");
for (i=0; i<8; i++) {
proto_tree_add_item(pause_times_tree, *macctrl_cbfc_pause_times_list[i], tvb, 4+i*2, 2, ENC_BIG_ENDIAN);
diff --git a/epan/dissectors/packet-mbim.c b/epan/dissectors/packet-mbim.c
index 4db4340776..f6f45907d3 100644
--- a/epan/dissectors/packet-mbim.c
+++ b/epan/dissectors/packet-mbim.c
@@ -1942,7 +1942,6 @@ mbim_dissect_device_caps_info(tvbuff_t *tvb, packet_info *pinfo _U_, proto_tree
static void
mbim_dissect_subscriber_ready_status(tvbuff_t *tvb, packet_info *pinfo _U_, proto_tree *tree, gint offset)
{
- proto_item *ti;
proto_tree *subtree;
gint base_offset, tel_nb_ref_list_offset = 0;
guint32 i, subscriber_id_offset, subscriber_id_size, sim_icc_id_offset, sim_icc_id_size, elem_count,
@@ -1970,8 +1969,7 @@ mbim_dissect_subscriber_ready_status(tvbuff_t *tvb, packet_info *pinfo _U_, prot
offset += 4;
if (elem_count) {
tel_nb_ref_list_offset = offset;
- ti = proto_tree_add_text(tree, tvb, offset, 8*elem_count, "Telephone Numbers Ref List");
- subtree = proto_item_add_subtree(ti, ett_mbim_pair_list);
+ subtree = proto_tree_add_subtree(tree, tvb, offset, 8*elem_count, ett_mbim_pair_list, NULL, "Telephone Numbers Ref List");
for (i = 0; i < elem_count; i++) {
proto_tree_add_item(subtree, hf_mbim_subscr_ready_status_tel_nb_offset, tvb, offset, 4, ENC_LITTLE_ENDIAN);
offset += 4;
@@ -2038,12 +2036,10 @@ mbim_dissect_pin_list_info(tvbuff_t *tvb, packet_info *pinfo _U_, proto_tree *tr
"Custom"};
guint i;
guint32 length;
- proto_item *ti;
proto_tree *subtree;
for (i = 0; i < 10; i++) {
- ti = proto_tree_add_text(tree, tvb, offset, 16, "%s", pin_list[i]);
- subtree = proto_item_add_subtree(ti, ett_mbim_pin);
+ subtree = proto_tree_add_subtree(tree, tvb, offset, 16, ett_mbim_pin, NULL, pin_list[i]);
proto_tree_add_item(subtree, hf_mbim_pin_list_pin_mode, tvb, offset, 4, ENC_LITTLE_ENDIAN);
offset += 4;
proto_tree_add_item(subtree, hf_mbim_pin_list_pin_format, tvb, offset, 4, ENC_LITTLE_ENDIAN);
@@ -2108,7 +2104,6 @@ mbim_dissect_provider(tvbuff_t *tvb, packet_info *pinfo _U_, proto_tree *tree, g
static void
mbim_dissect_providers(tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree, gint offset)
{
- proto_item *ti;
proto_tree *subtree;
gint base_offset;
guint32 i, elem_count, providers_list_offset, provider_offset, provider_size;
@@ -2120,8 +2115,7 @@ mbim_dissect_providers(tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree, gint
offset += 4;
if (elem_count) {
providers_list_offset = offset;
- ti = proto_tree_add_text(tree, tvb, offset, 8*elem_count, "Providers Ref List");
- subtree = proto_item_add_subtree(ti, ett_mbim_pair_list);
+ subtree = proto_tree_add_subtree(tree, tvb, offset, 8*elem_count, ett_mbim_pair_list, NULL, "Providers Ref List");
for (i = 0; i < elem_count; i++) {
proto_tree_add_item(subtree, hf_mbim_providers_provider_offset, tvb, offset, 4, ENC_LITTLE_ENDIAN);
offset += 4;
@@ -2132,8 +2126,8 @@ mbim_dissect_providers(tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree, gint
provider_offset = tvb_get_letohl(tvb, providers_list_offset + 8*i);
provider_size = tvb_get_letohl(tvb, providers_list_offset + 8*i + 4);
if (provider_offset && provider_size) {
- ti = proto_tree_add_text(tree, tvb, base_offset + provider_offset, provider_size, "Provider #%u", i+1);
- subtree = proto_item_add_subtree(ti, ett_mbim_pair_list);
+ subtree = proto_tree_add_subtree_format(tree, tvb, base_offset + provider_offset, provider_size,
+ ett_mbim_pair_list, NULL, "Provider #%u", i+1);
mbim_dissect_provider(tvb, pinfo, subtree, base_offset + provider_offset);
}
}
@@ -2448,7 +2442,6 @@ mbim_dissect_context(tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree, gint o
static void
mbim_dissect_provisioned_contexts_info(tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree, gint offset)
{
- proto_item *ti;
proto_tree *subtree;
gint base_offset;
guint32 i, elem_count, provisioned_contexts_list_offset, provisioned_context_offset, provisioned_context_size;
@@ -2459,8 +2452,7 @@ mbim_dissect_provisioned_contexts_info(tvbuff_t *tvb, packet_info *pinfo, proto_
offset += 4;
if (elem_count) {
provisioned_contexts_list_offset = offset;
- ti = proto_tree_add_text(tree, tvb, offset, 8*elem_count, "Provisioned Context Ref List");
- subtree = proto_item_add_subtree(ti, ett_mbim_pair_list);
+ subtree = proto_tree_add_subtree(tree, tvb, offset, 8*elem_count, ett_mbim_pair_list, NULL, "Provisioned Context Ref List");
for (i = 0; i < elem_count; i++) {
proto_tree_add_item(subtree, hf_mbim_provisioned_contexts_info_provisioned_context_offset,
tvb, offset, 4, ENC_LITTLE_ENDIAN);
@@ -2473,9 +2465,8 @@ mbim_dissect_provisioned_contexts_info(tvbuff_t *tvb, packet_info *pinfo, proto_
provisioned_context_offset = tvb_get_letohl(tvb, provisioned_contexts_list_offset + 8*i);
provisioned_context_size = tvb_get_letohl(tvb, provisioned_contexts_list_offset + 8*i + 4);
if (provisioned_context_offset && provisioned_context_size) {
- ti = proto_tree_add_text(tree, tvb, base_offset + provisioned_context_offset,
- provisioned_context_size, "Provisioned Context #%u", i+1);
- subtree = proto_item_add_subtree(ti, ett_mbim_pair_list);
+ subtree = proto_tree_add_subtree_format(tree, tvb, base_offset + provisioned_context_offset,
+ provisioned_context_size, ett_mbim_pair_list, NULL, "Provisioned Context #%u", i+1);
mbim_dissect_context(tvb, pinfo, subtree, base_offset + provisioned_context_offset, FALSE);
}
}
@@ -2683,7 +2674,6 @@ mbim_dissect_device_service_element(tvbuff_t *tvb, packet_info *pinfo, proto_tre
static void
mbim_dissect_device_services_info(tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree, gint offset)
{
- proto_item *ti;
proto_tree *subtree;
gint base_offset;
guint32 i, device_services_count, device_services_ref_list_base, device_service_elem_offset,
@@ -2697,8 +2687,7 @@ mbim_dissect_device_services_info(tvbuff_t *tvb, packet_info *pinfo, proto_tree
offset += 4;
if (device_services_count) {
device_services_ref_list_base = offset;
- ti = proto_tree_add_text(tree, tvb, offset, 8*device_services_count, "Device Services Ref List");
- subtree = proto_item_add_subtree(ti, ett_mbim_pair_list);
+ subtree = proto_tree_add_subtree(tree, tvb, offset, 8*device_services_count, ett_mbim_pair_list, NULL, "Device Services Ref List");
for (i = 0; i < device_services_count; i++) {
proto_tree_add_item(subtree, hf_mbim_device_services_info_device_services_offset,
tvb, offset, 4, ENC_LITTLE_ENDIAN);
@@ -2711,9 +2700,8 @@ mbim_dissect_device_services_info(tvbuff_t *tvb, packet_info *pinfo, proto_tree
device_service_elem_offset = tvb_get_letohl(tvb, device_services_ref_list_base + 8*i);
device_service_elem_size = tvb_get_letohl(tvb, device_services_ref_list_base + 8*i + 4);
if (device_service_elem_offset && device_service_elem_size) {
- ti = proto_tree_add_text(tree, tvb, base_offset + device_service_elem_offset,
- device_service_elem_size, "Device Service Element #%u", i+1);
- subtree = proto_item_add_subtree(ti, ett_mbim_pair_list);
+ subtree = proto_tree_add_subtree_format(tree, tvb, base_offset + device_service_elem_offset,
+ device_service_elem_size, ett_mbim_pair_list, NULL, "Device Service Element #%u", i+1);
mbim_dissect_device_service_element(tvb, pinfo, subtree, base_offset + device_service_elem_offset);
}
}
@@ -2793,7 +2781,6 @@ mbim_dissect_event_entry(tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree, gi
static void
mbim_dissect_device_service_subscribe_list(tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree, gint offset)
{
- proto_item *ti;
proto_tree *subtree;
gint base_offset;
guint32 i, element_count, device_service_subscribe_ref_list_base, device_service_elem_offset,
@@ -2805,8 +2792,7 @@ mbim_dissect_device_service_subscribe_list(tvbuff_t *tvb, packet_info *pinfo, pr
offset += 4;
if (element_count) {
device_service_subscribe_ref_list_base = offset;
- ti = proto_tree_add_text(tree, tvb, offset, 8*element_count, "Device Service Subscribe Ref List");
- subtree = proto_item_add_subtree(ti, ett_mbim_pair_list);
+ subtree = proto_tree_add_subtree(tree, tvb, offset, 8*element_count, ett_mbim_pair_list, NULL, "Device Service Subscribe Ref List");
for (i = 0; i < element_count; i++) {
proto_tree_add_item(subtree, hf_mbim_device_service_subscribe_device_service_offset,
tvb, offset, 4, ENC_LITTLE_ENDIAN);
@@ -2819,9 +2805,8 @@ mbim_dissect_device_service_subscribe_list(tvbuff_t *tvb, packet_info *pinfo, pr
device_service_elem_offset = tvb_get_letohl(tvb, device_service_subscribe_ref_list_base + 8*i);
device_service_elem_size = tvb_get_letohl(tvb, device_service_subscribe_ref_list_base + 8*i + 4);
if (device_service_elem_offset && device_service_elem_size) {
- ti = proto_tree_add_text(tree, tvb, base_offset + device_service_elem_offset,
- device_service_elem_size, "Device Service Element #%u", i+1);
- subtree = proto_item_add_subtree(ti, ett_mbim_pair_list);
+ subtree = proto_tree_add_subtree_format(tree, tvb, base_offset + device_service_elem_offset,
+ device_service_elem_size, ett_mbim_pair_list, NULL, "Device Service Element #%u", i+1);
mbim_dissect_event_entry(tvb, pinfo, subtree, base_offset + device_service_elem_offset);
}
}
@@ -2879,7 +2864,6 @@ mbim_dissect_single_packet_filter(tvbuff_t *tvb, packet_info *pinfo _U_, proto_t
static void
mbim_dissect_packet_filters(tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree, gint offset)
{
- proto_item *ti;
proto_tree *subtree;
gint base_offset;
guint32 i, packet_filters_count, packet_filter_ref_list_base, packet_filter_offset, packet_filter_size;
@@ -2892,8 +2876,7 @@ mbim_dissect_packet_filters(tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree,
offset += 4;
if (packet_filters_count) {
packet_filter_ref_list_base = offset;
- ti = proto_tree_add_text(tree, tvb, offset, 8*packet_filters_count, "Packet Filter Ref List");
- subtree = proto_item_add_subtree(ti, ett_mbim_pair_list);
+ subtree = proto_tree_add_subtree(tree, tvb, offset, 8*packet_filters_count, ett_mbim_pair_list, NULL, "Packet Filter Ref List");
for (i = 0; i < packet_filters_count; i++) {
proto_tree_add_item(subtree, hf_mbim_packet_filters_packet_filters_packet_filter_offset,
tvb, offset, 4, ENC_LITTLE_ENDIAN);
@@ -2906,9 +2889,8 @@ mbim_dissect_packet_filters(tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree,
packet_filter_offset = tvb_get_letohl(tvb, packet_filter_ref_list_base + 8*i);
packet_filter_size = tvb_get_letohl(tvb, packet_filter_ref_list_base + 8*i + 4);
if (packet_filter_offset && packet_filter_size) {
- ti = proto_tree_add_text(tree, tvb, base_offset + packet_filter_offset,
- packet_filter_size, "Packet Filter Element #%u", i+1);
- subtree = proto_item_add_subtree(ti, ett_mbim_pair_list);
+ subtree = proto_tree_add_subtree_format(tree, tvb, base_offset + packet_filter_offset,
+ packet_filter_size, ett_mbim_pair_list, NULL, "Packet Filter Element #%u", i+1);
mbim_dissect_single_packet_filter(tvb, pinfo, subtree, base_offset + packet_filter_offset);
}
}
@@ -2993,9 +2975,8 @@ mbim_dissect_sms_pdu_record(tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree,
pdu_data_size, ENC_NA);
subtree = proto_item_add_subtree(ti, ett_mbim_buffer);
sc_address_size = tvb_get_guint8(tvb, base_offset + pdu_data_offset);
- ti = proto_tree_add_text(subtree, tvb, base_offset + pdu_data_offset, 1 + sc_address_size,
- "Service Center Address");
- sc_tree = proto_item_add_subtree(ti, ett_mbim_sc_address);
+ sc_tree = proto_tree_add_subtree(subtree, tvb, base_offset + pdu_data_offset, 1 + sc_address_size,
+ ett_mbim_sc_address, NULL, "Service Center Address");
proto_tree_add_uint(sc_tree, hf_mbim_sms_pdu_record_pdu_data_sc_address_size, tvb,
base_offset + pdu_data_offset, 1, sc_address_size);
if (sc_address_size) {
@@ -3126,7 +3107,6 @@ static void
mbim_dissect_sms_read_info(tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree, gint offset,
struct mbim_conv_info *mbim_conv)
{
- proto_item *ti;
proto_tree *subtree;
gint base_offset;
guint32 i, format, element_count, sms_ref_list_base, sms_offset, sms_size;
@@ -3140,8 +3120,7 @@ mbim_dissect_sms_read_info(tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree,
offset += 4;
if (element_count) {
sms_ref_list_base = offset;
- ti = proto_tree_add_text(tree, tvb, offset, 8*element_count, "SMS Ref List");
- subtree = proto_item_add_subtree(ti, ett_mbim_pair_list);
+ subtree = proto_tree_add_subtree(tree, tvb, offset, 8*element_count, ett_mbim_pair_list, NULL, "SMS Ref List");
for (i = 0; i < element_count; i++) {
proto_tree_add_item(subtree, hf_mbim_sms_read_info_sms_offset,
tvb, offset, 4, ENC_LITTLE_ENDIAN);
@@ -3154,9 +3133,8 @@ mbim_dissect_sms_read_info(tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree,
sms_offset = tvb_get_letohl(tvb, sms_ref_list_base + 8*i);
sms_size = tvb_get_letohl(tvb, sms_ref_list_base + 8*i + 4);
if (sms_offset && sms_size) {
- ti = proto_tree_add_text(tree, tvb, base_offset + sms_offset,
- sms_size, "SMS Element #%u", i+1);
- subtree = proto_item_add_subtree(ti, ett_mbim_pair_list);
+ subtree = proto_tree_add_subtree_format(tree, tvb, base_offset + sms_offset,
+ sms_size, ett_mbim_pair_list, NULL, "SMS Element #%u", i+1);
if (format == MBIM_SMS_FORMAT_PDU) {
mbim_dissect_sms_pdu_record(tvb, pinfo, subtree, base_offset + sms_offset, mbim_conv);
} else if (format == MBIM_SMS_FORMAT_CDMA) {
@@ -3195,9 +3173,8 @@ mbim_dissect_sms_send_pdu(tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree, g
pdu_data_size, ENC_NA);
subtree = proto_item_add_subtree(ti, ett_mbim_buffer);
sc_address_size = tvb_get_guint8(tvb, base_offset + pdu_data_offset);
- ti = proto_tree_add_text(subtree, tvb, base_offset + pdu_data_offset, 1 + sc_address_size,
- "Service Center Address");
- sc_tree = proto_item_add_subtree(ti, ett_mbim_sc_address);
+ sc_tree = proto_tree_add_subtree(subtree, tvb, base_offset + pdu_data_offset, 1 + sc_address_size,
+ ett_mbim_sc_address, NULL, "Service Center Address");
proto_tree_add_uint(sc_tree, hf_mbim_sms_send_pdu_pdu_data_sc_address_size, tvb,
base_offset + pdu_data_offset, 1, sc_address_size);
if (sc_address_size) {
@@ -3435,7 +3412,6 @@ mbim_dissect_phonebook_entry(tvbuff_t *tvb, packet_info *pinfo _U_, proto_tree *
static void
mbim_dissect_phonebook_read_info(tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree, gint offset)
{
- proto_item *ti;
proto_tree *subtree;
gint base_offset;
guint32 i, element_count, phonebook_ref_list_base, phonebook_offset, phonebook_size;
@@ -3446,8 +3422,7 @@ mbim_dissect_phonebook_read_info(tvbuff_t *tvb, packet_info *pinfo, proto_tree *
offset += 4;
if (element_count) {
phonebook_ref_list_base = offset;
- ti = proto_tree_add_text(tree, tvb, offset, 8*element_count, "Phonebook Ref List");
- subtree = proto_item_add_subtree(ti, ett_mbim_pair_list);
+ subtree = proto_tree_add_subtree(tree, tvb, offset, 8*element_count, ett_mbim_pair_list, NULL, "Phonebook Ref List");
for (i = 0; i < element_count; i++) {
proto_tree_add_item(subtree, hf_mbim_phonebook_read_info_phonebook_offset,
tvb, offset, 4, ENC_LITTLE_ENDIAN);
@@ -3460,9 +3435,8 @@ mbim_dissect_phonebook_read_info(tvbuff_t *tvb, packet_info *pinfo, proto_tree *
phonebook_offset = tvb_get_letohl(tvb, phonebook_ref_list_base + 8*i);
phonebook_size = tvb_get_letohl(tvb, phonebook_ref_list_base + 8*i + 4);
if (phonebook_offset && phonebook_size) {
- ti = proto_tree_add_text(tree, tvb, base_offset + phonebook_offset,
- phonebook_size, "Phonebook Element #%u", i+1);
- subtree = proto_item_add_subtree(ti, ett_mbim_pair_list);
+ subtree = proto_tree_add_subtree_format(tree, tvb, base_offset + phonebook_offset,
+ phonebook_size, ett_mbim_pair_list, NULL, "Phonebook Element #%u", i+1);
mbim_dissect_phonebook_entry(tvb, pinfo, subtree, base_offset + phonebook_offset);
}
}
@@ -3832,8 +3806,7 @@ dissect_mbim_control(tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree, void *
ti = proto_tree_add_item(mbim_tree, hf_mbim_control, tvb, offset, 0, ENC_NA);
PROTO_ITEM_SET_HIDDEN(ti);
- ti = proto_tree_add_text(mbim_tree, tvb, offset, 12, "Message Header");
- header_tree = proto_item_add_subtree(ti, ett_mbim_msg_header);
+ header_tree = proto_tree_add_subtree(mbim_tree, tvb, offset, 12, ett_mbim_msg_header, NULL, "Message Header");
msg_type = tvb_get_letohl(tvb, offset);
col_add_fstr(pinfo->cinfo, COL_INFO, "%-19s", val_to_str_const(msg_type, mbim_msg_type_vals, "Unknown"));
proto_tree_add_uint(header_tree, hf_mbim_header_message_type, tvb, offset, 4, msg_type);
@@ -3874,8 +3847,7 @@ dissect_mbim_control(tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree, void *
tvbuff_t *frag_tvb;
struct mbim_uuid_ext *uuid_ext_info = NULL;
- ti = proto_tree_add_text(mbim_tree, tvb, offset, 8, "Fragment Header");
- subtree = proto_item_add_subtree(ti, ett_mbim_frag_header);
+ subtree = proto_tree_add_subtree(mbim_tree, tvb, offset, 8, ett_mbim_frag_header, NULL, "Fragment Header");
total_frag = tvb_get_letohl(tvb, offset);
proto_tree_add_uint(subtree, hf_mbim_fragment_total, tvb, offset, 4, total_frag);
offset += 4;
@@ -3933,8 +3905,7 @@ dissect_mbim_control(tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree, void *
offset += 4;
subtree = mbim_tree;
if (info_buff_len) {
- ti = proto_tree_add_text(mbim_tree, frag_tvb, offset, info_buff_len, "Information Buffer");
- subtree = proto_item_add_subtree(ti, ett_mbim_info_buffer);
+ subtree = proto_tree_add_subtree(mbim_tree, frag_tvb, offset, info_buff_len, ett_mbim_info_buffer, NULL, "Information Buffer");
}
switch (uuid_idx) {
case UUID_BASIC_CONNECT:
@@ -4396,8 +4367,7 @@ dissect_mbim_control(tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree, void *
tvbuff_t *frag_tvb;
struct mbim_uuid_ext *uuid_ext_info = NULL;
- ti = proto_tree_add_text(mbim_tree, tvb, offset, 8, "Fragment Header");
- subtree = proto_item_add_subtree(ti, ett_mbim_frag_header);
+ subtree = proto_tree_add_subtree(mbim_tree, tvb, offset, 8, ett_mbim_frag_header, NULL, "Fragment Header");
total_frag = tvb_get_letohl(tvb, offset);
proto_tree_add_uint(subtree, hf_mbim_fragment_total, tvb, offset, 4, total_frag);
offset += 4;
@@ -4452,8 +4422,7 @@ dissect_mbim_control(tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree, void *
if (info_buff_len == 0) {
break;
}
- ti = proto_tree_add_text(mbim_tree, frag_tvb, offset, info_buff_len, "Information Buffer");
- subtree = proto_item_add_subtree(ti, ett_mbim_info_buffer);
+ subtree = proto_tree_add_subtree(mbim_tree, frag_tvb, offset, info_buff_len, ett_mbim_info_buffer, NULL, "Information Buffer");
switch (uuid_idx) {
case UUID_BASIC_CONNECT:
switch (cid) {
@@ -4915,8 +4884,7 @@ dissect_mbim_bulk(tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree, void *dat
ti =proto_tree_add_item(mbim_tree, hf_mbim_bulk, tvb, 0, 0, ENC_NA);
PROTO_ITEM_SET_HIDDEN(ti);
- ti = proto_tree_add_text(mbim_tree, tvb, 0, 0, "NCM Transfer Header");
- subtree = proto_item_add_subtree(ti, ett_mbim_msg_header);
+ subtree = proto_tree_add_subtree(mbim_tree, tvb, 0, 0, ett_mbim_msg_header, NULL, "NCM Transfer Header");
proto_tree_add_item(subtree, hf_mbim_bulk_nth_signature, tvb, 0, 4, ENC_ASCII|ENC_NA);
length = tvb_get_letohs(tvb, 4);
proto_tree_add_uint(subtree, hf_mbim_bulk_nth_header_length, tvb, 4, 2, length);
@@ -4950,8 +4918,7 @@ dissect_mbim_bulk(tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree, void *dat
while (next_index) {
base_offset = offset = next_index;
nb = 0;
- ti = proto_tree_add_text(mbim_tree, tvb, offset, 0, "NCM Datagram Pointer");
- subtree = proto_item_add_subtree(ti, ett_mbim_msg_header);
+ subtree = proto_tree_add_subtree(mbim_tree, tvb, offset, 0, ett_mbim_msg_header, NULL, "NCM Datagram Pointer");
signature = tvb_get_string_enc(wmem_packet_scope(), tvb, offset, 4, ENC_ASCII);
if ((!is_32bits && !strncmp(signature, "IPS", 3)) ||
(is_32bits && !strncmp(signature, "ips", 3))) {
diff --git a/epan/dissectors/packet-mbtcp.c b/epan/dissectors/packet-mbtcp.c
index 75687b560e..3da2f63a04 100644
--- a/epan/dissectors/packet-mbtcp.c
+++ b/epan/dissectors/packet-mbtcp.c
@@ -841,7 +841,7 @@ dissect_modbus(tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree, void *data _
proto_tree *modbus_tree, *group_tree, *event_tree,
*event_item_tree, *device_objects_tree,
*device_objects_item_tree;
- proto_item *mi, *mf, *me, *mei, *doe, *doie;
+ proto_item *mi, *mei;
int offset = 0, group_offset;
gint payload_start, payload_len, event_index,
ii, byte_cnt, len, num_objects, object_index,
@@ -885,8 +885,7 @@ dissect_modbus(tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree, void *data _
}
/* Add items to protocol tree specific to Modbus generic */
- mf = proto_tree_add_text(tree, tvb, offset, len, "Modbus");
- modbus_tree = proto_item_add_subtree(mf, ett_modbus_hdr);
+ modbus_tree = proto_tree_add_subtree(tree, tvb, offset, len, ett_modbus_hdr, NULL, "Modbus");
mi = proto_tree_add_uint(modbus_tree, hf_mbtcp_functioncode, tvb, offset, 1,
function_code);
@@ -1093,8 +1092,7 @@ dissect_modbus(tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree, void *data _
if (byte_cnt-6 > 0) {
byte_cnt -= 6;
event_index = 0;
- me = proto_tree_add_text(modbus_tree, tvb, payload_start+7, byte_cnt, "Events");
- event_tree = proto_item_add_subtree(me, ett_events);
+ event_tree = proto_tree_add_subtree(modbus_tree, tvb, payload_start+7, byte_cnt, ett_events, NULL, "Events");
while (byte_cnt > 0) {
event_code = tvb_get_guint8(tvb, payload_start+7+event_index);
if (event_code == 0) {
@@ -1185,9 +1183,8 @@ dissect_modbus(tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree, void *data _
/* add subtrees to describe each group of packet */
group_offset = payload_start + 1;
for (ii = 0; ii < byte_cnt / 7; ii++) {
- mi = proto_tree_add_text( modbus_tree, tvb, group_offset, 7,
- "Group %u", ii);
- group_tree = proto_item_add_subtree(mi, ett_group_hdr);
+ group_tree = proto_tree_add_subtree_format( modbus_tree, tvb, group_offset, 7,
+ ett_group_hdr, NULL, "Group %u", ii);
proto_tree_add_item(group_tree, hf_modbus_reftype, tvb, group_offset, 1, ENC_BIG_ENDIAN);
proto_tree_add_item(group_tree, hf_modbus_lreference, tvb, group_offset + 1, 4, ENC_BIG_ENDIAN);
proto_tree_add_item(group_tree, hf_modbus_wordcnt, tvb, group_offset + 5, 2, ENC_BIG_ENDIAN);
@@ -1204,9 +1201,8 @@ dissect_modbus(tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree, void *data _
ii = 0;
while (byte_cnt > 0) {
group_byte_cnt = (guint32)tvb_get_guint8(tvb, group_offset);
- mi = proto_tree_add_text( modbus_tree, tvb, group_offset, group_byte_cnt + 1,
- "Group %u", ii);
- group_tree = proto_item_add_subtree(mi, ett_group_hdr);
+ group_tree = proto_tree_add_subtree_format( modbus_tree, tvb, group_offset, group_byte_cnt + 1,
+ ett_group_hdr, NULL, "Group %u", ii);
proto_tree_add_uint(group_tree, hf_modbus_bytecnt, tvb, group_offset, 1,
group_byte_cnt);
proto_tree_add_item(group_tree, hf_modbus_reftype, tvb, group_offset + 1, 1, ENC_BIG_ENDIAN);
@@ -1230,9 +1226,8 @@ dissect_modbus(tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree, void *data _
while (byte_cnt > 0) {
group_word_cnt = tvb_get_ntohs(tvb, group_offset + 5);
group_byte_cnt = (2 * group_word_cnt) + 7;
- mi = proto_tree_add_text( modbus_tree, tvb, group_offset,
- group_byte_cnt, "Group %u", ii);
- group_tree = proto_item_add_subtree(mi, ett_group_hdr);
+ group_tree = proto_tree_add_subtree_format( modbus_tree, tvb, group_offset,
+ group_byte_cnt, ett_group_hdr, NULL, "Group %u", ii);
proto_tree_add_item(group_tree, hf_modbus_reftype, tvb, group_offset, 1, ENC_BIG_ENDIAN);
proto_tree_add_item(group_tree, hf_modbus_lreference, tvb, group_offset + 1, 4, ENC_BIG_ENDIAN);
proto_tree_add_uint(group_tree, hf_modbus_wordcnt, tvb, group_offset + 5, 2,
@@ -1315,21 +1310,20 @@ dissect_modbus(tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree, void *data _
proto_tree_add_item(modbus_tree, hf_modbus_next_object_id, tvb, payload_start+4, 1, ENC_BIG_ENDIAN);
num_objects = tvb_get_guint8(tvb, payload_start+5);
proto_tree_add_uint(modbus_tree, hf_modbus_num_objects, tvb, payload_start+5, 1, num_objects);
- doe = proto_tree_add_text(modbus_tree, tvb, payload_start+6, payload_len-6, "Objects");
+ device_objects_tree = proto_tree_add_subtree(modbus_tree, tvb, payload_start+6, payload_len-6,
+ ett_device_id_objects, NULL, "Objects");
object_index = 0;
for (ii = 0; ii < num_objects; ii++)
{
- device_objects_tree = proto_item_add_subtree(doe, ett_device_id_objects);
-
/* add each "object item" as its own subtree */
/* compute length of object */
object_type = tvb_get_guint8(tvb, payload_start+6+object_index);
object_len = tvb_get_guint8(tvb, payload_start+6+object_index+1);
- doie = proto_tree_add_text(device_objects_tree, tvb, payload_start+6+object_index, 2+object_len, "Object #%d", ii+1);
- device_objects_item_tree = proto_item_add_subtree(doie, ett_device_id_object_items);
+ device_objects_item_tree = proto_tree_add_subtree_format(device_objects_tree, tvb, payload_start+6+object_index, 2+object_len,
+ ett_device_id_object_items, NULL, "Object #%d", ii+1);
proto_tree_add_item(device_objects_item_tree, hf_modbus_object_id, tvb, payload_start+6+object_index, 1, ENC_BIG_ENDIAN);
object_index++;
diff --git a/epan/dissectors/packet-mdshdr.c b/epan/dissectors/packet-mdshdr.c
index 7c57f915cc..a3515c1912 100644
--- a/epan/dissectors/packet-mdshdr.c
+++ b/epan/dissectors/packet-mdshdr.c
@@ -135,7 +135,7 @@ dissect_mdshdr(tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree)
{
/* Set up structures needed to add the protocol subtree and manage it */
- proto_item *ti_main, *ti_hdr, *ti_trlr;
+ proto_item *ti_main;
proto_item *hidden_item;
proto_tree *mdshdr_tree_main, *mdshdr_tree_hdr, *mdshdr_tree_trlr;
int offset = 0;
@@ -192,10 +192,9 @@ dissect_mdshdr(tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree)
mdshdr_tree_main = proto_item_add_subtree(ti_main, ett_mdshdr);
/* Add Header part as subtree first */
- ti_hdr = proto_tree_add_text(mdshdr_tree_main, tvb, MDSHDR_VER_OFFSET,
- MDSHDR_HEADER_SIZE, "MDS Header");
+ mdshdr_tree_hdr = proto_tree_add_subtree(mdshdr_tree_main, tvb, MDSHDR_VER_OFFSET,
+ MDSHDR_HEADER_SIZE, ett_mdshdr_hdr, NULL, "MDS Header");
- mdshdr_tree_hdr = proto_item_add_subtree(ti_hdr, ett_mdshdr_hdr);
hidden_item = proto_tree_add_item(mdshdr_tree_hdr, hf_mdshdr_sof, tvb, MDSHDR_SOF_OFFSET,
MDSHDR_SIZE_BYTE, ENC_BIG_ENDIAN);
PROTO_ITEM_SET_HIDDEN(hidden_item);
@@ -215,10 +214,9 @@ dissect_mdshdr(tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree)
/* Add Mdshdr Trailer part */
if (tvb_length(tvb) >= MDSHDR_HEADER_SIZE + pktlen
&& 0 != trailer_start) {
- ti_trlr = proto_tree_add_text(mdshdr_tree_main, tvb, trailer_start,
+ mdshdr_tree_trlr = proto_tree_add_subtree(mdshdr_tree_main, tvb, trailer_start,
MDSHDR_TRAILER_SIZE,
- "MDS Trailer");
- mdshdr_tree_trlr = proto_item_add_subtree(ti_trlr, ett_mdshdr_trlr);
+ ett_mdshdr_trlr, NULL, "MDS Trailer");
proto_tree_add_item(mdshdr_tree_trlr, hf_mdshdr_eof, tvb,
trailer_start, MDSHDR_SIZE_BYTE, ENC_BIG_ENDIAN);
diff --git a/epan/dissectors/packet-megaco.c b/epan/dissectors/packet-megaco.c
index 34ffbe0f50..fedfe80950 100644
--- a/epan/dissectors/packet-megaco.c
+++ b/epan/dissectors/packet-megaco.c
@@ -567,9 +567,8 @@ dissect_megaco_text(tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree)
tvb_LBRKT = tvb_find_guint8(tvb, tvb_offset, tvb_transaction_end_offset, '{');
tvb_offset = tvb_LBRKT;
- ti = proto_tree_add_text(megaco_tree, tvb, tvb_previous_offset, tvb_offset-tvb_previous_offset,
- "%s",tvb_format_text(tvb, tvb_previous_offset, tvb_offset-tvb_previous_offset+1));
- message_body_tree = proto_item_add_subtree(ti, ett_megaco_message_body);
+ message_body_tree = proto_tree_add_subtree(megaco_tree, tvb, tvb_previous_offset, tvb_offset-tvb_previous_offset,
+ ett_megaco_message_body, NULL, tvb_format_text(tvb, tvb_previous_offset, tvb_offset-tvb_previous_offset+1));
my_proto_tree_add_string(message_body_tree, hf_megaco_transaction, tvb,
tvb_previous_offset, tokenlen,
@@ -603,9 +602,8 @@ dissect_megaco_text(tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree)
tvb_offset = megaco_tvb_skip_wsp(tvb, tvb_offset);
tvb_LBRKT = tvb_find_guint8(tvb, tvb_offset, tvb_transaction_end_offset, '{');
tvb_current_offset = tvb_LBRKT;
- ti = proto_tree_add_text(megaco_tree, tvb, tvb_previous_offset, tvb_current_offset-tvb_previous_offset,
- "%s",tvb_format_text(tvb, tvb_previous_offset, tvb_current_offset-tvb_previous_offset+1));
- message_body_tree = proto_item_add_subtree(ti, ett_megaco_message_body);
+ message_body_tree = proto_tree_add_subtree(megaco_tree, tvb, tvb_previous_offset, tvb_current_offset-tvb_previous_offset,
+ ett_megaco_message_body, NULL, tvb_format_text(tvb, tvb_previous_offset, tvb_current_offset-tvb_previous_offset+1));
tvb_current_offset = megaco_tvb_skip_wsp_return(tvb, tvb_current_offset-1);
len = tvb_current_offset - tvb_offset;
@@ -630,9 +628,8 @@ dissect_megaco_text(tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree)
case REPLYTOKEN:
trx_type = GCP_TRX_REPLY;
tvb_LBRKT = tvb_find_guint8(tvb, tvb_offset, tvb_transaction_end_offset, '{');
- ti = proto_tree_add_text(megaco_tree, tvb, tvb_previous_offset, tvb_LBRKT-tvb_previous_offset,
- "%s",tvb_format_text(tvb, tvb_previous_offset, tvb_LBRKT-tvb_previous_offset+1));
- message_body_tree = proto_item_add_subtree(ti, ett_megaco_message_body);
+ message_body_tree = proto_tree_add_subtree(megaco_tree, tvb, tvb_previous_offset, tvb_LBRKT-tvb_previous_offset,
+ ett_megaco_message_body, NULL, tvb_format_text(tvb, tvb_previous_offset, tvb_LBRKT-tvb_previous_offset+1));
if (tree)
my_proto_tree_add_string(message_body_tree, hf_megaco_transaction, tvb,
@@ -665,9 +662,8 @@ dissect_megaco_text(tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree)
case TRANSTOKEN:
/* TransactionRequest */
trx_type = GCP_TRX_REQUEST;
- ti = proto_tree_add_text(megaco_tree, tvb, tvb_previous_offset, tvb_current_offset-tvb_previous_offset,
- "%s",tvb_format_text(tvb, tvb_previous_offset, tvb_current_offset-tvb_previous_offset+1));
- message_body_tree = proto_item_add_subtree(ti, ett_megaco_message_body);
+ message_body_tree = proto_tree_add_subtree(megaco_tree, tvb, tvb_previous_offset, tvb_current_offset-tvb_previous_offset,
+ ett_megaco_message_body, NULL, tvb_format_text(tvb, tvb_previous_offset, tvb_current_offset-tvb_previous_offset+1));
if(tree)
my_proto_tree_add_string(message_body_tree, hf_megaco_transaction, tvb,
@@ -1653,8 +1649,8 @@ dissect_megaco_mediadescriptor(tvbuff_t *tvb, proto_tree *megaco_tree_command_li
proto_tree *megaco_mediadescriptor_tree, *megaco_mediadescriptor_ti;
/*
- megaco_mediadescriptor_ti = proto_tree_add_text(megaco_tree_command_line,tvb,tvb_previous_offset,tokenlen,"Media Descriptor");
- megaco_mediadescriptor_tree = proto_item_add_subtree(megaco_mediadescriptor_ti, ett_megaco_mediadescriptor);
+ megaco_mediadescriptor_tree = proto_tree_add_subtree(megaco_tree_command_line,tvb,tvb_previous_offset,tokenlen,
+ ett_megaco_mediadescriptor, NULL, "Media Descriptor");
*/
while ( tvb_previous_offset < tvb_last_RBRKT){
/* Start of token */
diff --git a/epan/dissectors/packet-mih.c b/epan/dissectors/packet-mih.c
index def5217599..9de528e211 100644
--- a/epan/dissectors/packet-mih.c
+++ b/epan/dissectors/packet-mih.c
@@ -1991,25 +1991,22 @@ static void dissect_mih(tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree)
col_set_str(pinfo->cinfo, COL_PROTOCOL, "MIH");
col_clear(pinfo->cinfo,COL_INFO);
- if (tree)
- {
- /* we are being asked for details */
- ti = proto_tree_add_item(tree, proto_mih, tvb, 0, -1, ENC_NA);
- }
+ /* we are being asked for details */
+ ti = proto_tree_add_item(tree, proto_mih, tvb, 0, -1, ENC_NA);
mih_tree = proto_item_add_subtree(ti, ett_mih);
if(mih_tree)
- item = proto_tree_add_item(mih_tree, hf_mih_version, tvb, offset, 1, ENC_BIG_ENDIAN);
- if(item)
{
- ver_flags_tree = proto_item_add_subtree(item, ett_ver_flags);
- proto_tree_add_item(ver_flags_tree, hf_mih_version, tvb, offset, 1, ENC_BIG_ENDIAN);
- proto_tree_add_item(ver_flags_tree, hf_mih_ack_req, tvb, offset, 1, ENC_BIG_ENDIAN);
- proto_tree_add_item(ver_flags_tree, hf_mih_ack_resp, tvb, offset, 1, ENC_BIG_ENDIAN);
- proto_tree_add_item(ver_flags_tree, hf_mih_uir, tvb, offset, 1, ENC_BIG_ENDIAN);
- proto_tree_add_item(ver_flags_tree, hf_mih_more_frag, tvb, offset, 1, ENC_BIG_ENDIAN);
- fragment = tvb_get_guint8(tvb, offset);
- fragment = fragment << 7;
+ item = proto_tree_add_item(mih_tree, hf_mih_version, tvb, offset, 1, ENC_BIG_ENDIAN);
+
+ ver_flags_tree = proto_item_add_subtree(item, ett_ver_flags);
+ proto_tree_add_item(ver_flags_tree, hf_mih_version, tvb, offset, 1, ENC_BIG_ENDIAN);
+ proto_tree_add_item(ver_flags_tree, hf_mih_ack_req, tvb, offset, 1, ENC_BIG_ENDIAN);
+ proto_tree_add_item(ver_flags_tree, hf_mih_ack_resp, tvb, offset, 1, ENC_BIG_ENDIAN);
+ proto_tree_add_item(ver_flags_tree, hf_mih_uir, tvb, offset, 1, ENC_BIG_ENDIAN);
+ proto_tree_add_item(ver_flags_tree, hf_mih_more_frag, tvb, offset, 1, ENC_BIG_ENDIAN);
+ fragment = tvb_get_guint8(tvb, offset);
+ fragment = fragment << 7;
}
offset += 1;
@@ -2150,8 +2147,8 @@ static void dissect_mih(tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree)
if(len <= (guint64)payload_length)
{
/*for type...*/
- item = proto_tree_add_text(mih_tree, tvb, offset, 1 + len_of_len + (guint32)len, "MIH TLV : %s", val_to_str(tvb_get_guint8(tvb, offset), typevaluenames, "UNKNOWN"));
- tlv_tree = proto_item_add_subtree(item, ett_tlv);
+ tlv_tree = proto_tree_add_subtree_format(mih_tree, tvb, offset, 1 + len_of_len + (guint32)len, ett_tlv, NULL,
+ "MIH TLV : %s", val_to_str(tvb_get_guint8(tvb, offset), typevaluenames, "UNKNOWN"));
if(tlv_tree)
{
proto_tree_add_item(tlv_tree, hf_mih_type, tvb, offset, 1, ENC_BIG_ENDIAN);
@@ -2176,9 +2173,9 @@ static void dissect_mih(tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree)
dissect_mih_tlv(tvb, offset, tlv_tree, type, (guint32)len);
offset += (guint32)len;
payload_length -= (1 + len_of_len + (guint16)len);
- }else{
- return;
- }
+ }else{
+ return;
+ }
}
else
{
diff --git a/epan/dissectors/packet-mip.c b/epan/dissectors/packet-mip.c
index 8939a25f0c..98ba689845 100644
--- a/epan/dissectors/packet-mip.c
+++ b/epan/dissectors/packet-mip.c
@@ -498,12 +498,10 @@ dissect_mip_priv_ext_3gpp2(tvbuff_t *tvb, packet_info *pinfo _U_, proto_tree *tr
static void
dissect_mip_extensions( tvbuff_t *tvb, int offset, proto_tree *tree, packet_info *pinfo)
{
- proto_item *ti;
proto_tree *exts_tree=NULL;
proto_tree *ext_tree;
proto_tree *tf;
proto_tree *ext_flags_tree;
- proto_tree *tp;
proto_tree *pmipv4_tree;
gint ext_len;
guint8 ext_type;
@@ -520,8 +518,7 @@ dissect_mip_extensions( tvbuff_t *tvb, int offset, proto_tree *tree, packet_info
if (!tree) return;
/* Add our tree, if we have extensions */
- ti = proto_tree_add_text(tree, tvb, offset, -1, "Extensions");
- exts_tree = proto_item_add_subtree(ti, ett_mip_exts);
+ exts_tree = proto_tree_add_subtree(tree, tvb, offset, -1, ett_mip_exts, NULL, "Extensions");
/* And, handle each extension */
while (tvb_reported_length_remaining(tvb, offset) > 0) {
@@ -550,11 +547,10 @@ dissect_mip_extensions( tvbuff_t *tvb, int offset, proto_tree *tree, packet_info
hdrLen = 2;
}
- ti = proto_tree_add_text(exts_tree, tvb, offset, ext_len + hdrLen,
- "Extension: %s",
+ ext_tree = proto_tree_add_subtree_format(exts_tree, tvb, offset, ext_len + hdrLen,
+ ett_mip_ext, NULL, "Extension: %s",
val_to_str(ext_type, mip_ext_types,
"Unknown Extension %u"));
- ext_tree = proto_item_add_subtree(ti, ett_mip_ext);
proto_tree_add_uint(ext_tree, hf_mip_ext_type, tvb, offset, 1, ext_type);
offset++;
@@ -676,10 +672,9 @@ dissect_mip_extensions( tvbuff_t *tvb, int offset, proto_tree *tree, packet_info
case PMIPv4_SKIP_EXT: /* draft-leung-mip4-proxy-mode */
/* sub-type */
ext_subtype = tvb_get_guint8(tvb, offset);
- tp = proto_tree_add_text(ext_tree, tvb, offset, ext_len,
- "PMIPv4 Sub-Type: %s",
+ pmipv4_tree = proto_tree_add_subtree_format(ext_tree, tvb, offset, ext_len,
+ ett_mip_pmipv4_ext, NULL, "PMIPv4 Sub-Type: %s",
val_to_str(ext_subtype, mip_pmipv4skipext_stypes, "Unknown Sub-Type %u"));
- pmipv4_tree = proto_item_add_subtree(tp, ett_mip_pmipv4_ext);
proto_tree_add_uint(pmipv4_tree, hf_mip_pmipv4skipext_stype, tvb, offset, 1, ext_subtype);
if (ext_subtype == PMIPv4_SKIPEXT_STYPE_INTERFACE_ID) {
diff --git a/epan/dissectors/packet-mip6.c b/epan/dissectors/packet-mip6.c
index 02f9e5aa06..396f90a666 100644
--- a/epan/dissectors/packet-mip6.c
+++ b/epan/dissectors/packet-mip6.c
@@ -1224,11 +1224,9 @@ dissect_mip6_hoti(tvbuff_t *tvb, proto_tree *mip6_tree, packet_info *pinfo _U_)
{
if (mip6_tree) {
proto_tree *data_tree;
- proto_item *ti;
- ti = proto_tree_add_text(mip6_tree, tvb, MIP6_DATA_OFF,
- MIP6_HOTI_LEN, "Home Test Init");
- data_tree = proto_item_add_subtree(ti, ett_mip6);
+ data_tree = proto_tree_add_subtree(mip6_tree, tvb, MIP6_DATA_OFF,
+ MIP6_HOTI_LEN, ett_mip6, NULL, "Home Test Init");
proto_tree_add_item(data_tree, hf_mip6_hoti_cookie, tvb,
MIP6_HOTI_COOKIE_OFF, MIP6_HOTI_COOKIE_LEN, ENC_BIG_ENDIAN);
@@ -1242,11 +1240,9 @@ dissect_mip6_coti(tvbuff_t *tvb, proto_tree *mip6_tree, packet_info *pinfo _U_)
{
if (mip6_tree) {
proto_tree *data_tree;
- proto_item *ti;
- ti = proto_tree_add_text(mip6_tree, tvb, MIP6_DATA_OFF,
- MIP6_COTI_LEN, "Care-of Test Init");
- data_tree = proto_item_add_subtree(ti, ett_mip6);
+ data_tree = proto_tree_add_subtree(mip6_tree, tvb, MIP6_DATA_OFF,
+ MIP6_COTI_LEN, ett_mip6, NULL, "Care-of Test Init");
proto_tree_add_item(data_tree, hf_mip6_coti_cookie, tvb,
MIP6_COTI_COOKIE_OFF, MIP6_COTI_COOKIE_LEN, ENC_BIG_ENDIAN);
@@ -1260,11 +1256,9 @@ dissect_mip6_hot(tvbuff_t *tvb, proto_tree *mip6_tree, packet_info *pinfo _U_)
{
if (mip6_tree) {
proto_tree *data_tree;
- proto_item *ti;
- ti = proto_tree_add_text(mip6_tree, tvb, MIP6_DATA_OFF,
- MIP6_HOT_LEN, "Home Test");
- data_tree = proto_item_add_subtree(ti, ett_mip6);
+ data_tree = proto_tree_add_subtree(mip6_tree, tvb, MIP6_DATA_OFF,
+ MIP6_HOT_LEN, ett_mip6, NULL, "Home Test");
proto_tree_add_item(data_tree, hf_mip6_hot_nindex, tvb,
MIP6_HOT_INDEX_OFF, MIP6_HOT_INDEX_LEN, ENC_BIG_ENDIAN);
@@ -1282,11 +1276,9 @@ dissect_mip6_cot(tvbuff_t *tvb, proto_tree *mip6_tree, packet_info *pinfo _U_)
{
if (mip6_tree) {
proto_tree *data_tree;
- proto_item *ti;
- ti = proto_tree_add_text(mip6_tree, tvb, MIP6_DATA_OFF,
- MIP6_COT_LEN, "Care-of Test");
- data_tree = proto_item_add_subtree(ti, ett_mip6);
+ data_tree = proto_tree_add_subtree(mip6_tree, tvb, MIP6_DATA_OFF,
+ MIP6_COT_LEN, ett_mip6, NULL, "Care-of Test");
proto_tree_add_item(data_tree, hf_mip6_cot_nindex, tvb,
MIP6_COT_INDEX_OFF, MIP6_COT_INDEX_LEN, ENC_BIG_ENDIAN);
@@ -1319,12 +1311,10 @@ dissect_mip6_bu(tvbuff_t *tvb, proto_tree *mip6_tree, packet_info *pinfo _U_)
{
if (mip6_tree) {
proto_tree *data_tree;
- proto_item *ti;
int lifetime;
- ti = proto_tree_add_text(mip6_tree, tvb, MIP6_DATA_OFF,
- MIP6_BU_LEN, "Binding Update");
- data_tree = proto_item_add_subtree(ti, ett_mip6);
+ data_tree = proto_tree_add_subtree(mip6_tree, tvb, MIP6_DATA_OFF,
+ MIP6_BU_LEN, ett_mip6, NULL, "Binding Update");
proto_tree_add_item(data_tree, hf_mip6_bu_seqnr, tvb,
MIP6_BU_SEQNR_OFF, MIP6_BU_SEQNR_LEN, ENC_BIG_ENDIAN);
@@ -1369,12 +1359,10 @@ dissect_mip6_ba(tvbuff_t *tvb, proto_tree *mip6_tree, packet_info *pinfo _U_)
{
if (mip6_tree) {
proto_tree *data_tree;
- proto_item *ti;
int lifetime;
- ti = proto_tree_add_text(mip6_tree, tvb, MIP6_DATA_OFF,
- MIP6_BA_LEN, "Binding Acknowledgement");
- data_tree = proto_item_add_subtree(ti, ett_mip6);
+ data_tree = proto_tree_add_subtree(mip6_tree, tvb, MIP6_DATA_OFF,
+ MIP6_BA_LEN, ett_mip6, NULL, "Binding Acknowledgement");
proto_tree_add_item(data_tree, hf_mip6_ba_status, tvb,
MIP6_BA_STATUS_OFF, MIP6_BA_STATUS_LEN, ENC_BIG_ENDIAN);
@@ -1410,11 +1398,9 @@ dissect_mip6_be(tvbuff_t *tvb, proto_tree *mip6_tree, packet_info *pinfo _U_)
{
if (mip6_tree) {
proto_tree *data_tree;
- proto_item *ti;
- ti = proto_tree_add_text(mip6_tree, tvb, MIP6_DATA_OFF,
- MIP6_BE_LEN, "Binding Error");
- data_tree = proto_item_add_subtree(ti, ett_mip6);
+ data_tree = proto_tree_add_subtree(mip6_tree, tvb, MIP6_DATA_OFF,
+ MIP6_BE_LEN, ett_mip6, NULL, "Binding Error");
proto_tree_add_item(data_tree, hf_mip6_be_status, tvb,
MIP6_BE_STATUS_OFF, MIP6_BE_STATUS_LEN, ENC_BIG_ENDIAN);
@@ -1430,11 +1416,9 @@ dissect_mip6_hb(tvbuff_t *tvb, proto_tree *mip6_tree, packet_info *pinfo _U_)
{
if (mip6_tree) {
proto_tree *data_tree;
- proto_item *ti;
- ti = proto_tree_add_text(mip6_tree, tvb, MIP6_DATA_OFF,
- MIP6_HB_LEN, "Heartbeat");
- data_tree = proto_item_add_subtree(ti, ett_mip6);
+ data_tree = proto_tree_add_subtree(mip6_tree, tvb, MIP6_DATA_OFF,
+ MIP6_HB_LEN, ett_mip6, NULL, "Heartbeat");
proto_tree_add_item(data_tree, hf_mip6_hb_u_flag, tvb,
MIP6_HB_FLAGS_OFF, MIP6_HB_FLAGS_LEN, ENC_BIG_ENDIAN);
@@ -1471,10 +1455,8 @@ dissect_mip6_hi(tvbuff_t *tvb, proto_tree *mip6_tree, packet_info *pinfo _U_)
{
if (mip6_tree) {
proto_tree *data_tree;
- proto_item *ti;
- ti = proto_tree_add_text(mip6_tree, tvb, MIP6_DATA_OFF, 4, "Handover Initiate");
- data_tree = proto_item_add_subtree(ti, ett_mip6);
+ data_tree = proto_tree_add_subtree(mip6_tree, tvb, MIP6_DATA_OFF, 4, ett_mip6, NULL, "Handover Initiate");
proto_tree_add_item(data_tree, hf_mip6_hi_seqnr, tvb,
MIP6_DATA_OFF, 2, ENC_BIG_ENDIAN);
@@ -1516,10 +1498,8 @@ dissect_mip6_hack(tvbuff_t *tvb, proto_tree *mip6_tree, packet_info *pinfo _U_)
{
if (mip6_tree) {
proto_tree *data_tree;
- proto_item *ti;
- ti = proto_tree_add_text(mip6_tree, tvb, MIP6_DATA_OFF, 4, "Handover Acknowledge ");
- data_tree = proto_item_add_subtree(ti, ett_mip6);
+ data_tree = proto_tree_add_subtree(mip6_tree, tvb, MIP6_DATA_OFF, 4, ett_mip6, NULL, "Handover Acknowledge ");
proto_tree_add_item(data_tree, hf_mip6_hack_seqnr, tvb,
MIP6_DATA_OFF, 2, ENC_BIG_ENDIAN);
@@ -1553,12 +1533,10 @@ dissect_fmip6_fbu(tvbuff_t *tvb, proto_tree *mip6_tree, packet_info *pinfo _U_)
{
if (mip6_tree) {
proto_tree *data_tree;
- proto_item *ti;
int lifetime;
- ti = proto_tree_add_text(mip6_tree, tvb, MIP6_DATA_OFF,
- MIP6_BU_LEN, "Fast Binding Update");
- data_tree = proto_item_add_subtree(ti, ett_mip6);
+ data_tree = proto_tree_add_subtree(mip6_tree, tvb, MIP6_DATA_OFF,
+ MIP6_BU_LEN, ett_mip6, NULL, "Fast Binding Update");
proto_tree_add_item(data_tree, hf_fmip6_fbu_seqnr, tvb,
FMIP6_FBU_SEQNR_OFF, FMIP6_FBU_SEQNR_LEN, ENC_BIG_ENDIAN);
@@ -1588,12 +1566,10 @@ dissect_fmip6_fback(tvbuff_t *tvb, proto_tree *mip6_tree, packet_info *pinfo _U_
{
if (mip6_tree) {
proto_tree *data_tree;
- proto_item *ti;
int lifetime;
- ti = proto_tree_add_text(mip6_tree, tvb, MIP6_DATA_OFF,
- FMIP6_FBACK_LEN, "Fast Binding Acknowledgement");
- data_tree = proto_item_add_subtree(ti, ett_mip6);
+ data_tree = proto_tree_add_subtree(mip6_tree, tvb, MIP6_DATA_OFF,
+ FMIP6_FBACK_LEN, ett_mip6, NULL, "Fast Binding Acknowledgement");
proto_tree_add_item(data_tree, hf_fmip6_fback_status, tvb,
FMIP6_FBACK_STATUS_OFF, FMIP6_FBACK_STATUS_LEN, ENC_BIG_ENDIAN);
@@ -1634,7 +1610,6 @@ dissect_pmip6_bri(tvbuff_t *tvb, proto_tree *mip6_tree, packet_info *pinfo)
#define INDICATION 1
#define ACKNOWLEDGE 2
- proto_item *ti;
proto_tree *field_tree;
guint8 br_type;
@@ -1647,10 +1622,8 @@ dissect_pmip6_bri(tvbuff_t *tvb, proto_tree *mip6_tree, packet_info *pinfo)
if (mip6_tree)
{
- ti = proto_tree_add_text(mip6_tree, tvb, MIP6_DATA_OFF,
- PMIP6_BRI_LEN, "Binding Revocation Indication");
-
- field_tree = proto_item_add_subtree(ti, ett_mip6);
+ field_tree = proto_tree_add_subtree(mip6_tree, tvb, MIP6_DATA_OFF,
+ PMIP6_BRI_LEN, ett_mip6, NULL, "Binding Revocation Indication");
proto_tree_add_item(field_tree, hf_pmip6_bri_brtype, tvb,
PMIP6_BRI_BRTYPE_OFF, PMIP6_BRI_BRTYPE_LEN, ENC_BIG_ENDIAN);
@@ -1679,10 +1652,8 @@ dissect_pmip6_bri(tvbuff_t *tvb, proto_tree *mip6_tree, packet_info *pinfo)
if (mip6_tree)
{
- ti = proto_tree_add_text(mip6_tree, tvb, MIP6_DATA_OFF,
- PMIP6_BRI_LEN, "Binding Revocation Acknowledge");
-
- field_tree = proto_item_add_subtree(ti, ett_mip6);
+ field_tree = proto_tree_add_subtree(mip6_tree, tvb, MIP6_DATA_OFF,
+ PMIP6_BRI_LEN, ett_mip6, NULL, "Binding Revocation Acknowledge");
proto_tree_add_item(field_tree, hf_pmip6_bri_brtype, tvb,
PMIP6_BRI_BRTYPE_OFF, PMIP6_BRI_BRTYPE_LEN, ENC_BIG_ENDIAN);
@@ -1934,10 +1905,8 @@ dissect_mip6_opt_ni(const mip6_opt *optp, tvbuff_t *tvb, int offset,
proto_tree *opt_tree, proto_item *hdr_item _U_ )
{
proto_tree *field_tree;
- proto_item *tf;
- tf = proto_tree_add_text(opt_tree, tvb, offset, optlen, "%s", optp->name);
- field_tree = proto_item_add_subtree(tf, *optp->subtree_index);
+ field_tree = proto_tree_add_subtree(opt_tree, tvb, offset, optlen, *optp->subtree_index, NULL, optp->name);
proto_tree_add_item(field_tree, hf_mip6_ni_hni, tvb,
offset + MIP6_NI_HNI_OFF, MIP6_NI_HNI_LEN, ENC_BIG_ENDIAN);
@@ -1952,10 +1921,8 @@ dissect_mip6_opt_bad(const mip6_opt *optp _U_, tvbuff_t *tvb, int offset,
proto_tree *opt_tree, proto_item *hdr_item _U_ )
{
proto_tree *field_tree;
- proto_item *tf;
- tf = proto_tree_add_text(opt_tree, tvb, offset, optlen, "%s", optp->name);
- field_tree = proto_item_add_subtree(tf, *optp->subtree_index);
+ field_tree = proto_tree_add_subtree(opt_tree, tvb, offset, optlen, *optp->subtree_index, NULL, optp->name);
proto_tree_add_item(field_tree, hf_mip6_bad_auth, tvb,
offset + MIP6_BAD_AUTH_OFF,
@@ -1969,10 +1936,8 @@ dissect_mip6_nemo_opt_mnp(const mip6_opt *optp _U_, tvbuff_t *tvb, int offset,
proto_tree *opt_tree, proto_item *hdr_item _U_ )
{
proto_tree *field_tree;
- proto_item *tf;
- tf = proto_tree_add_text(opt_tree, tvb, offset, optlen, "%s", optp->name);
- field_tree = proto_item_add_subtree(tf, *optp->subtree_index);
+ field_tree = proto_tree_add_subtree(opt_tree, tvb, offset, optlen, *optp->subtree_index, NULL, optp->name);
proto_tree_add_item(opt_tree, hf_mip6_nemo_mnp_pfl, tvb,
offset + MIP6_NEMO_MNP_PL_OFF, 1, ENC_BIG_ENDIAN);
@@ -1987,11 +1952,9 @@ dissect_fmip6_opt_lla(const mip6_opt *optp _U_, tvbuff_t *tvb, int offset,
proto_tree *opt_tree, proto_item *hdr_item _U_ )
{
proto_tree *field_tree;
- proto_item *tf;
int len, p;
- tf = proto_tree_add_text(opt_tree, tvb, offset, optlen, "%s", optp->name);
- field_tree = proto_item_add_subtree(tf, *optp->subtree_index);
+ field_tree = proto_tree_add_subtree(opt_tree, tvb, offset, optlen, *optp->subtree_index, NULL, optp->name);
proto_tree_add_item(field_tree, hf_mip6_opt_len, tvb, offset+1, 1, ENC_BIG_ENDIAN);
@@ -2427,12 +2390,10 @@ dissect_pmip6_opt_mnlli(const mip6_opt *optp _U_, tvbuff_t *tvb, int offset,
static void dissect_pmip6_opt_lla(const mip6_opt *optp _U_, tvbuff_t *tvb, int offset,
guint optlen, packet_info *pinfo _U_, proto_tree *opt_tree, proto_item *hdr_item _U_ )
{
- proto_item *ti;
proto_tree *field_tree;
if (opt_tree) {
- ti = proto_tree_add_text(opt_tree, tvb, offset, optlen, "%s", optp->name);
- field_tree = proto_item_add_subtree(ti, *optp->subtree_index);
+ field_tree = proto_tree_add_subtree(opt_tree, tvb, offset, optlen, *optp->subtree_index, NULL, optp->name);
proto_tree_add_item(field_tree, hf_pmip6_opt_lila_lla, tvb, offset + 2, 16, ENC_NA);
}
@@ -2492,11 +2453,9 @@ dissect_pmip6_opt_ipv4ha(const mip6_opt *optp _U_, tvbuff_t *tvb, int offset,
guint optlen, packet_info *pinfo _U_, proto_tree *opt_tree, proto_item *hdr_item _U_ )
{
proto_tree *field_tree;
- proto_item *tf;
int len, p;
- tf = proto_tree_add_text(opt_tree, tvb, offset, optlen, "%s", optp->name);
- field_tree = proto_item_add_subtree(tf, *optp->subtree_index);
+ field_tree = proto_tree_add_subtree(opt_tree, tvb, offset, optlen, *optp->subtree_index, NULL, optp->name);
p = offset + MIP6_IPV4HA_PREFIXL_OFF;
len = MIP6_IPV4HA_PREFIXL_LEN;
@@ -2515,10 +2474,8 @@ dissect_pmip6_opt_ipv4aa(const mip6_opt *optp _U_, tvbuff_t *tvb, int offset,
guint optlen, packet_info *pinfo _U_, proto_tree *opt_tree, proto_item *hdr_item _U_ )
{
proto_tree *field_tree;
- proto_item *tf;
- tf = proto_tree_add_text(opt_tree, tvb, offset, optlen, "%s", optp->name);
- field_tree = proto_item_add_subtree(tf, *optp->subtree_index);
+ field_tree = proto_tree_add_subtree(opt_tree, tvb, offset, optlen, *optp->subtree_index, NULL, optp->name);
proto_tree_add_item(field_tree, hf_mip6_ipv4aa_status, tvb,
offset + MIP6_IPV4AA_STATUS_OFF, MIP6_IPV4AA_STATUS_LEN, ENC_BIG_ENDIAN);
@@ -3586,15 +3543,8 @@ dissect_mip6_options(tvbuff_t *tvb, proto_tree *mip6_tree, int offset, int len,
packet_info *pinfo)
{
proto_tree *opts_tree;
- proto_item *ti;
-
-#if 0 /* dissect_mipv6_options() calls expert...() */
- if (!mip6_tree)
- return len;
-#endif
- ti = proto_tree_add_text(mip6_tree, tvb, offset, len, "Mobility Options");
- opts_tree = proto_item_add_subtree(ti, ett_mip6);
+ opts_tree = proto_tree_add_subtree(mip6_tree, tvb, offset, len, ett_mip6, NULL, "Mobility Options");
dissect_mipv6_options(tvb, offset, len, mip6_opts, N_MIP6_OPTS, -1, pinfo, opts_tree);
diff --git a/epan/dissectors/packet-mndp.c b/epan/dissectors/packet-mndp.c
index 4dd58d94a7..ce3109e908 100644
--- a/epan/dissectors/packet-mndp.c
+++ b/epan/dissectors/packet-mndp.c
@@ -149,7 +149,6 @@ dissect_tlv(tvbuff_t *tvb, packet_info *pinfo, proto_tree *mndp_tree,
{
guint32 tlv_type;
guint32 tlv_length;
- proto_item *tlv_item;
proto_item *tlv_tree;
proto_item *type_item;
int type_index;
@@ -159,14 +158,13 @@ dissect_tlv(tvbuff_t *tvb, packet_info *pinfo, proto_tree *mndp_tree,
tlv_type = tvb_get_ntohs(tvb, offset);
tlv_length = tvb_get_ntohs(tvb, offset + 2);
/* DISSECTOR_ASSERT(tlv_length >= 4); */
- tlv_item = proto_tree_add_text(mndp_tree, tvb,
- offset, tlv_length+4,
+ tlv_tree = proto_tree_add_subtree_format(mndp_tree, tvb,
+ offset, tlv_length+4, ett_mndp_tlv_header, NULL,
"T %d, L %d: %s",
tlv_type,
tlv_length,
extval_to_str_idx(tlv_type, value_array, NULL, "Unknown"));
- tlv_tree = proto_item_add_subtree(tlv_item,
- ett_mndp_tlv_header);
+
type_item = proto_tree_add_item(tlv_tree, hf_mndp_tlv_type,
tvb, offset, 2, ENC_BIG_ENDIAN);
proto_item_append_text(type_item, " = %s",
diff --git a/epan/dissectors/packet-mojito.c b/epan/dissectors/packet-mojito.c
index 3af8cd9b03..5f127a5d20 100644
--- a/epan/dissectors/packet-mojito.c
+++ b/epan/dissectors/packet-mojito.c
@@ -197,8 +197,7 @@ dissect_mojito_address(tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree,
/* new subtree for socket address*/
socket_address_version = tvb_get_guint8(tvb, offset);
- socket_item = proto_tree_add_text(tree, tvb, offset, 1, "%s", title);
- socket_tree = proto_item_add_subtree(socket_item, ett_mojito_socket_address);
+ socket_tree = proto_tree_add_subtree(tree, tvb, offset, 1, ett_mojito_socket_address, &socket_item, title);
proto_tree_add_item(socket_tree, hf_mojito_socketaddress_version, tvb, offset, 1, ENC_NA);
offset += 1;
@@ -241,13 +240,12 @@ dissect_mojito_contact(tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree, int
if (contact_id > 0)
{
- contact_item = proto_tree_add_text(tree, tvb, offset, 1, "Contact #%d", contact_id);
+ contact_tree = proto_tree_add_subtree_format(tree, tvb, offset, 1, ett_mojito_contact, &contact_item, "Contact #%d", contact_id);
}
else
{
- contact_item = proto_tree_add_text(tree, tvb, offset, 1, "Contact");
+ contact_tree = proto_tree_add_subtree(tree, tvb, offset, 1, ett_mojito_contact, &contact_item, "Contact");
}
- contact_tree = proto_item_add_subtree(contact_item, ett_mojito_contact);
proto_tree_add_item(contact_tree, hf_mojito_contactvendor, tvb, offset, 4, ENC_ASCII|ENC_NA);
offset += 4;
@@ -279,12 +277,11 @@ dissect_mojito_header(tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree,
int offset, mojito_header_data_t* header_data)
{
proto_tree *header_tree, *version_tree, *contact_tree, *flag_tree;
- proto_item *header_item, *version_item, *contact_item, *flag_item;
+ proto_item *header_item, *contact_item, *flag_item;
int start_offset = offset;
int contact_start_offset;
- header_item = proto_tree_add_text(tree, tvb, offset, 61, "Gnutella Header");
- header_tree = proto_item_add_subtree(header_item, ett_mojito_header);
+ header_tree = proto_tree_add_subtree(tree, tvb, offset, 61, ett_mojito_header, &header_item, "Gnutella Header");
proto_tree_add_item(header_tree, hf_mojito_messageid, tvb, offset, 16, ENC_NA);
offset += 16;
@@ -292,8 +289,7 @@ dissect_mojito_header(tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree,
proto_tree_add_item(header_tree, hf_mojito_fdhtmessage, tvb, offset, 1, ENC_BIG_ENDIAN);
offset += 1;
- version_item = proto_tree_add_text(header_tree, tvb, offset, 2, "Version");
- version_tree = proto_item_add_subtree(version_item, ett_mojito_header_version);
+ version_tree = proto_tree_add_subtree(header_tree, tvb, offset, 2, ett_mojito_header_version, NULL, "Version");
proto_tree_add_item(version_tree, hf_mojito_mjrversion, tvb, offset, 1, ENC_BIG_ENDIAN);
offset += 1;
@@ -311,14 +307,12 @@ dissect_mojito_header(tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree,
offset += 1;
contact_start_offset = offset;
- contact_item = proto_tree_add_text(header_tree, tvb, offset, 35, "Originating Contact");
- contact_tree = proto_item_add_subtree(contact_item, ett_mojito_contact);
+ contact_tree = proto_tree_add_subtree(header_tree, tvb, offset, 35, ett_mojito_contact, &contact_item, "Originating Contact");
proto_tree_add_item(contact_tree, hf_mojito_vendor, tvb, offset, 4, ENC_ASCII|ENC_NA);
offset += 4;
- version_item = proto_tree_add_text(contact_tree, tvb, offset, 2, "Contact Version");
- version_tree = proto_item_add_subtree(version_item, ett_mojito_contact_version);
+ version_tree = proto_tree_add_subtree(contact_tree, tvb, offset, 2, ett_mojito_contact_version, NULL, "Contact Version");
proto_tree_add_item(version_tree, hf_mojito_origmjrversion, tvb, offset, 1, ENC_BIG_ENDIAN);
offset += 1;
@@ -371,8 +365,7 @@ dissect_mojito_ping_response(tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree
/* BigInt subtree */
bigintlen = tvb_get_guint8(tvb, offset);
- bigint_item = proto_tree_add_text(tree, tvb, offset, bigintlen + 1 , "Estimated DHT size");
- bigint_tree = proto_item_add_subtree(bigint_item, ett_mojito_bigint);
+ bigint_tree = proto_tree_add_subtree(tree, tvb, offset, bigintlen + 1, ett_mojito_bigint, &bigint_item, "Estimated DHT size");
proto_tree_add_item(bigint_tree, hf_mojito_bigintegerlen, tvb, offset, 1, ENC_BIG_ENDIAN);
offset += 1;
@@ -427,8 +420,7 @@ dissect_mojito_store_request(tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree
/* For each Contact, display the info */
for (ii = 0; ii < contactcount; ii++)
{
- dht_item = proto_tree_add_text(tree, tvb, offset, 1, "DHTValue #%d", ii+1);
- dht_tree = proto_item_add_subtree(dht_item, ett_mojito_dht);
+ dht_tree = proto_tree_add_subtree_format(tree, tvb, offset, 1, ett_mojito_dht, &dht_item, "DHTValue #%d", ii+1);
start_offset = offset;
contact_offset = dissect_mojito_contact(tvb, pinfo, dht_tree, offset, -1);
if (contact_offset == 0)
@@ -476,8 +468,7 @@ dissect_mojito_store_response(tvbuff_t *tvb, packet_info *pinfo _U_, proto_tree
/* For each Contact, display the info */
for (ii = 0; ii < contactcount; ii++)
{
- sc_item = proto_tree_add_text(tree, tvb, offset, 23, "Status Code %d", ii+1);
- sc_tree = proto_item_add_subtree(sc_item, ett_mojito_status_code);
+ sc_tree = proto_tree_add_subtree_format(tree, tvb, offset, 23, ett_mojito_status_code, &sc_item, "Status Code %d", ii+1);
start_offset = offset;
@@ -537,7 +528,6 @@ static void
dissect_mojito_find_value_request(tvbuff_t *tvb, packet_info *pinfo _U_, proto_tree *tree, int offset)
{
proto_tree *kuid_tree;
- proto_item *kuid_item;
guint8 i, kuidcount;
if (!tree)
@@ -548,8 +538,7 @@ dissect_mojito_find_value_request(tvbuff_t *tvb, packet_info *pinfo _U_, proto_t
kuidcount = tvb_get_guint8(tvb, offset);
- kuid_item = proto_tree_add_text(tree, tvb, offset, (20 * kuidcount) + 1 , "Secondary KUID\'s");
- kuid_tree = proto_item_add_subtree(kuid_item, ett_mojito_kuids);
+ kuid_tree = proto_tree_add_subtree(tree, tvb, offset, (20 * kuidcount) + 1, ett_mojito_kuids, NULL, "Secondary KUID\'s");
proto_tree_add_item(kuid_tree, hf_mojito_kuidcount, tvb, offset, 1, ENC_BIG_ENDIAN);
offset += 1;
@@ -569,7 +558,7 @@ static void
dissect_mojito_find_value_response(tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree, int offset)
{
proto_tree *dht_tree, *version_tree, *kuid_tree;
- proto_item *dht_item, *version_item, *kuid_item;
+ proto_item *dht_item, *version_item;
guint16 dhtvaluelength;
int contact_offset, start_offset;
guint8 ii, dhtvaluescount, kuidcount;
@@ -584,8 +573,7 @@ dissect_mojito_find_value_response(tvbuff_t *tvb, packet_info *pinfo, proto_tree
/* For each Contact, display the info */
for (ii = 0; ii < dhtvaluescount; ii++)
{
- dht_item = proto_tree_add_text(tree, tvb, offset, 1, "DHTValue #%d", ii+1);
- dht_tree = proto_item_add_subtree(dht_item, ett_mojito_dht);
+ dht_tree = proto_tree_add_subtree_format(tree, tvb, offset, 1, ett_mojito_dht, &dht_item, "DHTValue #%d", ii+1);
start_offset = offset;
contact_offset = dissect_mojito_contact(tvb, pinfo, dht_tree, offset, -1);
if (contact_offset == 0)
@@ -622,8 +610,7 @@ dissect_mojito_find_value_response(tvbuff_t *tvb, packet_info *pinfo, proto_tree
/*KUID Count */
kuidcount = tvb_get_guint8(tvb, offset);
- kuid_item = proto_tree_add_text(tree, tvb, offset, (20 * kuidcount) + 1 , "Secondary KUID\'s");
- kuid_tree = proto_item_add_subtree(kuid_item, ett_mojito_kuids);
+ kuid_tree = proto_tree_add_subtree(tree, tvb, offset, (20 * kuidcount) + 1, ett_mojito_kuids, NULL, "Secondary KUID\'s");
proto_tree_add_item(kuid_tree, hf_mojito_kuidcount, tvb, offset, 1, ENC_BIG_ENDIAN);
offset += 1;
@@ -639,7 +626,7 @@ static int
dissect_mojito(tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree, void *data _U_)
{
proto_tree *mojito_tree, *opcode_tree;
- proto_item *ti, *opcode_item;
+ proto_item *ti;
mojito_header_data_t header_data;
gint offset = 0;
@@ -654,11 +641,10 @@ dissect_mojito(tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree, void *data _
if (offset == 0) /* Some error occurred */
return 0;
- opcode_item = proto_tree_add_text(mojito_tree, tvb,
+ opcode_tree = proto_tree_add_subtree_format(mojito_tree, tvb,
offset, header_data.payloadlength - MOJITO_HEADER_LENGTH,
- "Opcode specific data (%s)",
+ ett_mojito_opcode, NULL, "Opcode specific data (%s)",
val_to_str_const(header_data.opcode, opcodeflags, "Unknown"));
- opcode_tree = proto_item_add_subtree(opcode_item, ett_mojito_opcode);
/* Now use the opcode to figure out what to do next */
switch (header_data.opcode)
diff --git a/epan/dissectors/packet-mount.c b/epan/dissectors/packet-mount.c
index a535d8056b..b34e40de22 100644
--- a/epan/dissectors/packet-mount.c
+++ b/epan/dissectors/packet-mount.c
@@ -209,18 +209,16 @@ dissect_mount1_mnt_reply(tvbuff_t *tvb, int offset, packet_info *pinfo, proto_tr
static int
dissect_mountlist(tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, void* data _U_)
{
- proto_item* lock_item = NULL;
- proto_tree* lock_tree = NULL;
+ proto_item* lock_item;
+ proto_tree* lock_tree;
int old_offset = offset;
const char* hostname;
const char* directory;
- if (tree) {
- lock_item = proto_tree_add_item(tree, hf_mount_mountlist, tvb,
+ lock_item = proto_tree_add_item(tree, hf_mount_mountlist, tvb,
offset, -1, ENC_NA);
- if (lock_item)
- lock_tree = proto_item_add_subtree(lock_item, ett_mount_mountlist);
- }
+
+ lock_tree = proto_item_add_subtree(lock_item, ett_mount_mountlist);
offset = dissect_rpc_string(tvb, lock_tree,
hf_mount_mountlist_hostname, offset, &hostname);
@@ -306,8 +304,7 @@ dissect_exportlist(tvbuff_t *tvb, int offset, packet_info *pinfo, proto_tree *tr
if (tree) {
groups_item = proto_tree_add_item(exportlist_tree, hf_mount_groups, tvb,
offset, -1, ENC_NA);
- if (groups_item)
- groups_tree = proto_item_add_subtree(groups_item, ett_mount_groups);
+ groups_tree = proto_item_add_subtree(groups_item, ett_mount_groups);
}
offset = dissect_rpc_list(tvb, pinfo, groups_tree, offset,
diff --git a/epan/dissectors/packet-mp2t.c b/epan/dissectors/packet-mp2t.c
index 676a0541fd..2f0d0e5cc2 100644
--- a/epan/dissectors/packet-mp2t.c
+++ b/epan/dissectors/packet-mp2t.c
@@ -582,7 +582,6 @@ mp2t_process_fragmented_payload(tvbuff_t *tvb, gint offset, guint remaining_len,
guint8 pointer = 0;
proto_item *pi;
guint stuff_len = 0;
- proto_item *si;
proto_tree *stuff_tree;
packet_analysis_data_t *pdata = NULL;
subpacket_analysis_data_t *spdata = NULL;
@@ -735,8 +734,7 @@ mp2t_process_fragmented_payload(tvbuff_t *tvb, gint offset, guint remaining_len,
}
if (stuff_len) {
- si = proto_tree_add_text(tree, tvb, offset, stuff_len, "Stuffing");
- stuff_tree = proto_item_add_subtree(si, ett_stuff);
+ stuff_tree = proto_tree_add_subtree_format(tree, tvb, offset, stuff_len, ett_stuff, NULL, "Stuffing");
proto_tree_add_item(stuff_tree, hf_mp2t_stuff_bytes, tvb, offset, stuff_len, ENC_NA);
offset += stuff_len;
if (stuff_len >= remaining_len) {
@@ -1175,9 +1173,8 @@ dissect_tsp(tvbuff_t *tvb, volatile gint offset, packet_info *pinfo,
offset += 4;
/* Create a subtree for analysis stuff */
- item = proto_tree_add_text(mp2t_tree, tvb, offset, 0, "MPEG2 PCR Analysis");
+ mp2t_analysis_tree = proto_tree_add_subtree_format(mp2t_tree, tvb, offset, 0, ett_mp2t_analysis, &item, "MPEG2 PCR Analysis");
PROTO_ITEM_SET_GENERATED(item);
- mp2t_analysis_tree = proto_item_add_subtree(item, ett_mp2t_analysis);
skips = detect_cc_drops(tvb, mp2t_analysis_tree, pinfo, pid, cc, mp2t_data);
diff --git a/epan/dissectors/packet-mpeg-descriptor.c b/epan/dissectors/packet-mpeg-descriptor.c
index a517d1f20b..ef03a71db1 100644
--- a/epan/dissectors/packet-mpeg-descriptor.c
+++ b/epan/dissectors/packet-mpeg-descriptor.c
@@ -631,15 +631,14 @@ proto_mpeg_descriptor_dissect_service_list(tvbuff_t *tvb, guint offset, guint le
guint end = offset + len;
guint16 svc_id;
- proto_item *si;
proto_tree *svc_tree;
while (offset < end) {
svc_id = tvb_get_ntohs(tvb, offset);
- si = proto_tree_add_text(tree, tvb, offset, 3, "Service 0x%02x", svc_id);
- svc_tree = proto_item_add_subtree(si, ett_mpeg_descriptor_service_list);
+ svc_tree = proto_tree_add_subtree_format(tree, tvb, offset, 3,
+ ett_mpeg_descriptor_service_list, NULL, "Service 0x%02x", svc_id);
proto_tree_add_item(svc_tree, hf_mpeg_descr_service_list_id, tvb, offset, 2, ENC_BIG_ENDIAN);
offset += 2;
@@ -906,14 +905,13 @@ proto_mpeg_descriptor_dissect_vbi_data(tvbuff_t *tvb, guint offset, guint len, p
guint8 svc_id, svc_len;
guint end = offset + len, svc_end;
- proto_item *si;
proto_tree *svc_tree;
while (offset < end) {
svc_id = tvb_get_guint8(tvb, offset);
svc_len = tvb_get_guint8(tvb, offset + 1);
- si = proto_tree_add_text(tree, tvb, offset, svc_len + 2, "Service 0x%02x", svc_id);
- svc_tree = proto_item_add_subtree(si, ett_mpeg_descriptor_vbi_data_service);
+ svc_tree = proto_tree_add_subtree_format(tree, tvb, offset, svc_len + 2,
+ ett_mpeg_descriptor_vbi_data_service, NULL, "Service 0x%02x", svc_id);
proto_tree_add_item(svc_tree, hf_mpeg_descr_vbi_data_service_id, tvb, offset, 1, ENC_BIG_ENDIAN);
offset += 1;
@@ -1271,7 +1269,6 @@ proto_mpeg_descriptor_dissect_extended_event(tvbuff_t *tvb, guint offset, proto_
guint8 items_len, item_descr_len, item_len, text_len;
guint items_end;
- proto_item *ii;
proto_tree *item_tree;
guint enc_len;
dvb_encoding_e encoding;
@@ -1290,8 +1287,7 @@ proto_mpeg_descriptor_dissect_extended_event(tvbuff_t *tvb, guint offset, proto_
items_end = offset + items_len;
while (offset < items_end) {
- ii = proto_tree_add_text(tree, tvb, offset, 0, "Item");
- item_tree = proto_item_add_subtree(ii, ett_mpeg_descriptor_extended_event_item);
+ item_tree = proto_tree_add_subtree(tree, tvb, offset, 0, ett_mpeg_descriptor_extended_event_item, NULL, "Item");
item_descr_len = tvb_get_guint8(tvb, offset);
proto_tree_add_item(item_tree, hf_mpeg_descr_extended_event_item_description_length, tvb, offset, 1, ENC_BIG_ENDIAN);
@@ -2165,7 +2161,6 @@ proto_mpeg_descriptor_dissect_ac3(tvbuff_t *tvb, guint offset, guint len, proto_
guint end = offset + len;
guint8 flags, component_type;
- proto_item *ci;
proto_tree *component_type_tree;
flags = tvb_get_guint8(tvb, offset);
@@ -2178,8 +2173,8 @@ proto_mpeg_descriptor_dissect_ac3(tvbuff_t *tvb, guint offset, guint len, proto_
if (flags & MPEG_DESCR_AC3_COMPONENT_TYPE_FLAG_MASK) {
component_type = tvb_get_guint8(tvb, offset);
- ci = proto_tree_add_text(tree, tvb, offset, 3, "Component Type 0x%02x", component_type);
- component_type_tree = proto_item_add_subtree(ci, ett_mpeg_descriptor_ac3_component_type);
+ component_type_tree = proto_tree_add_subtree_format(tree, tvb, offset, 3,
+ ett_mpeg_descriptor_ac3_component_type, NULL, "Component Type 0x%02x", component_type);
proto_tree_add_item(component_type_tree, hf_mpeg_descr_ac3_component_type_reserved_flag, tvb, offset, 1, ENC_BIG_ENDIAN);
proto_tree_add_item(component_type_tree, hf_mpeg_descr_ac3_component_type_full_service_flag, tvb, offset, 1, ENC_BIG_ENDIAN);
proto_tree_add_item(component_type_tree, hf_mpeg_descr_ac3_component_type_service_type_flags, tvb, offset, 1, ENC_BIG_ENDIAN);
@@ -2267,7 +2262,6 @@ proto_mpeg_descriptor_dissect_content_identifier(tvbuff_t *tvb, guint offset, gu
guint end = offset + len, crid_len;
guint8 crid, crid_location, crid_type;
- proto_item *ci;
proto_tree *crid_tree;
while (offset < end) {
@@ -2283,8 +2277,8 @@ proto_mpeg_descriptor_dissect_content_identifier(tvbuff_t *tvb, guint offset, gu
crid_len = 1;
}
- ci = proto_tree_add_text(tree, tvb, offset, crid_len, "CRID type=0%02x", crid_type);
- crid_tree = proto_item_add_subtree(ci, ett_mpeg_descriptor_content_identifier_crid);
+ crid_tree = proto_tree_add_subtree_format(tree, tvb, offset, crid_len,
+ ett_mpeg_descriptor_content_identifier_crid, NULL, "CRID type=0%02x", crid_type);
proto_tree_add_item(crid_tree, hf_mpeg_descr_content_identifier_crid_type, tvb, offset, 1, ENC_BIG_ENDIAN);
proto_tree_add_item(crid_tree, hf_mpeg_descr_content_identifier_crid_location, tvb, offset, 1, ENC_BIG_ENDIAN);
@@ -2613,8 +2607,8 @@ proto_mpeg_descriptor_dissect_private_ciplus(tvbuff_t *tvb, guint offset, proto_
if (!tag_str)
return 0;
- di = proto_tree_add_text(tree, tvb, offset_start, -1, "CI+ private descriptor Tag=0x%02x", tag);
- descriptor_tree = proto_item_add_subtree(di, ett_mpeg_descriptor);
+ descriptor_tree = proto_tree_add_subtree_format(tree, tvb, offset_start, -1,
+ ett_mpeg_descriptor, &di, "CI+ private descriptor Tag=0x%02x", tag);
proto_tree_add_uint_format(descriptor_tree, hf_mpeg_descriptor_tag,
tvb, offset, 1, tag, "Descriptor Tag: %s (0x%02x)", tag_str, tag);
@@ -2698,14 +2692,13 @@ proto_mpeg_descriptor_dissect(tvbuff_t *tvb, guint offset, proto_tree *tree)
{
guint tag, len;
- proto_item *di;
proto_tree *descriptor_tree;
tag = tvb_get_guint8(tvb, offset);
len = tvb_get_guint8(tvb, offset + 1);
- di = proto_tree_add_text(tree, tvb, offset, len + 2, "Descriptor Tag=0x%02x", tag);
- descriptor_tree = proto_item_add_subtree(di, ett_mpeg_descriptor);
+ descriptor_tree = proto_tree_add_subtree_format(tree, tvb, offset, len + 2,
+ ett_mpeg_descriptor, NULL, "Descriptor Tag=0x%02x", tag);
proto_tree_add_item(descriptor_tree, hf_mpeg_descriptor_tag, tvb, offset, 1, ENC_BIG_ENDIAN);
offset += 1;
diff --git a/epan/dissectors/packet-mpeg-dsmcc.c b/epan/dissectors/packet-mpeg-dsmcc.c
index b4b64ecaf0..00ab6b685a 100644
--- a/epan/dissectors/packet-mpeg-dsmcc.c
+++ b/epan/dissectors/packet-mpeg-dsmcc.c
@@ -263,8 +263,7 @@ dissect_dsmcc_adaptation_header(tvbuff_t *tvb, packet_info *pinfo, proto_tree *t
type = tvb_get_guint8(tvb, offset);
if (1 == type) {
- pi = proto_tree_add_text(tree, tvb, offset, -1, "Adaptation Header");
- sub_tree = proto_item_add_subtree(pi, ett_dsmcc_adaptation_header);
+ sub_tree = proto_tree_add_subtree(tree, tvb, offset, -1, ett_dsmcc_adaptation_header, NULL, "Adaptation Header");
proto_tree_add_item(sub_tree, hf_dsmcc_adaptation_type, tvb,
offset, 1, ENC_BIG_ENDIAN);
offset +=1;
@@ -286,8 +285,7 @@ dissect_dsmcc_adaptation_header(tvbuff_t *tvb, packet_info *pinfo, proto_tree *t
sub_tvb = tvb_new_subset_length(tvb, offset, ca_len);
call_dissector(data_handle, sub_tvb, pinfo, tree);
} else if (2 == type) {
- pi = proto_tree_add_text(tree, tvb, offset, -1, "Adaptation Header");
- sub_tree = proto_item_add_subtree(pi, ett_dsmcc_adaptation_header);
+ sub_tree = proto_tree_add_subtree(tree, tvb, offset, -1, ett_dsmcc_adaptation_header, NULL, "Adaptation Header");
proto_tree_add_item(sub_tree, hf_dsmcc_adaptation_type, tvb,
offset, 1, ENC_BIG_ENDIAN);
offset +=1;
@@ -301,8 +299,7 @@ dissect_dsmcc_adaptation_header(tvbuff_t *tvb, packet_info *pinfo, proto_tree *t
/*offset +=1;*/
/* TODO: handle the userId */
} else {
- pi = proto_tree_add_text(tree, tvb, offset, -1, "Unknown Adaptation Header");
- sub_tree = proto_item_add_subtree(pi, ett_dsmcc_adaptation_header);
+ sub_tree = proto_tree_add_subtree(tree, tvb, offset, -1, ett_dsmcc_adaptation_header, NULL, "Unknown Adaptation Header");
proto_tree_add_item(sub_tree, hf_dsmcc_adaptation_type, tvb,
offset, 1, ENC_BIG_ENDIAN);
}
@@ -327,8 +324,7 @@ dissect_dsmcc_header(tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree, guint
reserved = tvb_get_guint8(tvb, 8+offset);
adaptation_len = tvb_get_guint8(tvb, 9+offset);
- pi = proto_tree_add_text(tree, tvb, offset, 12+adaptation_len, "DSM-CC Header");
- sub_tree = proto_item_add_subtree(pi, ett_dsmcc_header);
+ sub_tree = proto_tree_add_subtree(tree, tvb, offset, 12+adaptation_len, ett_dsmcc_header, NULL, "DSM-CC Header");
pi = proto_tree_add_item(sub_tree, hf_dsmcc_protocol_discriminator, tvb,
offset, 1, ENC_BIG_ENDIAN);
if (DSMCC_PROT_DISC != prot_disc) {
@@ -384,7 +380,6 @@ dissect_dsmcc_dii_compat_desc(tvbuff_t *tvb, packet_info *pinfo, proto_tree *tre
gint i, j;
guint8 sub_count, sub_len;
guint16 len, count;
- proto_item *pi;
proto_tree *compat_tree;
proto_tree *desc_sub_tree;
@@ -400,8 +395,7 @@ dissect_dsmcc_dii_compat_desc(tvbuff_t *tvb, packet_info *pinfo, proto_tree *tre
offset += 2;
for (i = 0; i < count; i++) {
- pi = proto_tree_add_text(tree, tvb, offset, len, "Compatibility Descriptor");
- compat_tree = proto_item_add_subtree(pi, ett_dsmcc_compat);
+ compat_tree = proto_tree_add_subtree(tree, tvb, offset, len, ett_dsmcc_compat, NULL, "Compatibility Descriptor");
proto_tree_add_item(compat_tree, hf_desc_type, tvb, offset,
1, ENC_BIG_ENDIAN);
offset +=1;
@@ -429,8 +423,8 @@ dissect_dsmcc_dii_compat_desc(tvbuff_t *tvb, packet_info *pinfo, proto_tree *tre
for (j = 0; j < sub_count; j++) {
sub_len = tvb_get_guint8(tvb, offset+1);
- pi = proto_tree_add_text(compat_tree, tvb, offset, sub_len+2, "Sub Descriptor");
- desc_sub_tree = proto_item_add_subtree(pi, ett_dsmcc_compat_sub_desc);
+ desc_sub_tree = proto_tree_add_subtree(compat_tree, tvb, offset, sub_len+2,
+ ett_dsmcc_compat_sub_desc, NULL, "Sub Descriptor");
proto_tree_add_item(desc_sub_tree, hf_desc_sub_desc_type, tvb, offset,
1, ENC_BIG_ENDIAN);
offset +=1;
@@ -460,7 +454,6 @@ dissect_dsmcc_dii(tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree,
guint8 module_version;
guint module_size;
guint i;
- proto_item *pi;
proto_tree *mod_tree;
proto_tree_add_item(tree, hf_dsmcc_dii_download_id, tvb, offset, 4, ENC_BIG_ENDIAN);
@@ -485,10 +478,9 @@ dissect_dsmcc_dii(tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree,
module_size = tvb_get_ntohl(tvb, 2+offset);
module_version = tvb_get_guint8(tvb, 6+offset);
- pi = proto_tree_add_text(tree, tvb, offset, -1,
- "Module Id: 0x%x, Version: %u, Size: %u",
+ mod_tree = proto_tree_add_subtree_format(tree, tvb, offset, -1,
+ ett_dsmcc_dii_module, NULL, "Module Id: 0x%x, Version: %u, Size: %u",
module_id, module_version, module_size);
- mod_tree = proto_item_add_subtree(pi, ett_dsmcc_dii_module);
proto_tree_add_item(mod_tree, hf_dsmcc_dii_module_id, tvb, offset, 2, ENC_BIG_ENDIAN);
offset += 2;
proto_tree_add_item(mod_tree, hf_dsmcc_dii_module_size, tvb, offset, 4, ENC_BIG_ENDIAN);
@@ -550,16 +542,14 @@ static void
dissect_dsmcc_un_download(tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree,
proto_tree *top_tree)
{
- proto_item *pi;
proto_tree *sub_tree;
guint16 msg_id;
guint offset = 0;
msg_id = tvb_get_ntohs(tvb, offset+2);
- pi = proto_tree_add_text(tree, tvb, 0, -1, "User Network Message - %s",
- val_to_str(msg_id, dsmcc_dd_message_id_vals, "%u"));
- sub_tree = proto_item_add_subtree(pi, ett_dsmcc_payload);
+ sub_tree = proto_tree_add_subtree_format(tree, tvb, 0, -1, ett_dsmcc_payload, NULL,
+ "User Network Message - %s", val_to_str(msg_id, dsmcc_dd_message_id_vals, "%u"));
switch (msg_id) {
case 0x1001:
@@ -630,12 +620,11 @@ dissect_dsmcc_un_session(tvbuff_t *tvb, packet_info *pinfo,
msg_id = tvb_get_ntohs(tvb, offset+2);
- pi = proto_tree_add_text(tree, tvb, offset, -1,
- "User Network Message (Session) - %s",
+ sub_tree = proto_tree_add_subtree_format(tree, tvb, offset, -1,
+ ett_dsmcc_payload, &pi, "User Network Message (Session) - %s",
val_to_str(msg_id, dsmcc_un_sess_message_id_vals, "0x%x"));
col_append_sep_fstr(pinfo->cinfo, COL_INFO, NULL, "%s",
val_to_str(msg_id, dsmcc_un_sess_message_id_vals, "0x%x"));
- sub_tree = proto_item_add_subtree(pi, ett_dsmcc_payload);
switch (msg_id) {
case DSMCC_UN_SESS_SRV_SESS_REL_REQ:
diff --git a/epan/dissectors/packet-mpeg-pat.c b/epan/dissectors/packet-mpeg-pat.c
index c754bfa8cc..61b8602f54 100644
--- a/epan/dissectors/packet-mpeg-pat.c
+++ b/epan/dissectors/packet-mpeg-pat.c
@@ -70,7 +70,6 @@ dissect_mpeg_pat(tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree)
proto_item *ti;
proto_tree *mpeg_pat_tree;
- proto_item *pi;
proto_tree *mpeg_pat_prog_tree;
/* The TVB should start right after the section_length in the Section packet */
@@ -107,8 +106,8 @@ dissect_mpeg_pat(tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree)
prog_num = tvb_get_ntohs(tvb, offset);
prog_pid = tvb_get_ntohs(tvb, offset + 2) & MPEG_PAT_PROGRAM_MAP_PID_MASK;
- pi = proto_tree_add_text(mpeg_pat_tree, tvb, offset, 4, "Program 0x%04hx -> PID 0x%04hx", prog_num, prog_pid);
- mpeg_pat_prog_tree = proto_item_add_subtree(pi, ett_mpeg_pat_prog);
+ mpeg_pat_prog_tree = proto_tree_add_subtree_format(mpeg_pat_tree, tvb, offset, 4,
+ ett_mpeg_pat_prog, NULL, "Program 0x%04hx -> PID 0x%04hx", prog_num, prog_pid);
proto_tree_add_item(mpeg_pat_prog_tree, hf_mpeg_pat_program_number, tvb, offset, 2, ENC_BIG_ENDIAN);
offset += 2;
diff --git a/epan/dissectors/packet-mpeg-pmt.c b/epan/dissectors/packet-mpeg-pmt.c
index f41102cef3..128714c7f3 100644
--- a/epan/dissectors/packet-mpeg-pmt.c
+++ b/epan/dissectors/packet-mpeg-pmt.c
@@ -126,7 +126,6 @@ dissect_mpeg_pmt(tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree, void *data
proto_item *ti;
proto_tree *mpeg_pmt_tree;
- proto_item *si;
proto_tree *mpeg_pmt_stream_tree;
/* The TVB should start right after the section_length in the Section packet */
@@ -169,8 +168,8 @@ dissect_mpeg_pmt(tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree, void *data
pid = tvb_get_ntohs(tvb, offset + 1) & MPEG_PMT_STREAM_ELEMENTARY_PID_MASK;
es_info_len = tvb_get_ntohs(tvb, offset + 3) & MPEG_PMT_STREAM_ES_INFO_LENGTH_MASK;
- si = proto_tree_add_text(mpeg_pmt_tree, tvb, offset, 5 + es_info_len, "Stream PID=0x%04hx", pid);
- mpeg_pmt_stream_tree = proto_item_add_subtree(si, ett_mpeg_pmt_stream);
+ mpeg_pmt_stream_tree = proto_tree_add_subtree_format(mpeg_pmt_tree, tvb, offset, 5 + es_info_len,
+ ett_mpeg_pmt_stream, NULL, "Stream PID=0x%04hx", pid);
proto_tree_add_item(mpeg_pmt_stream_tree, hf_mpeg_pmt_stream_type, tvb, offset, 1, ENC_BIG_ENDIAN);
offset += 1;
diff --git a/epan/dissectors/packet-mpls-echo.c b/epan/dissectors/packet-mpls-echo.c
index 6e26cbd199..d2741aee91 100644
--- a/epan/dissectors/packet-mpls-echo.c
+++ b/epan/dissectors/packet-mpls-echo.c
@@ -538,10 +538,10 @@ dissect_mpls_echo_tlv_fec(tvbuff_t *tvb, packet_info *pinfo, guint offset, proto
tlv_fec_tree = NULL;
if (tree) {
- ti = proto_tree_add_text(tree, tvb, offset, length + 4 + (4-(length%4)), "FEC Element %u: %s",
+ tlv_fec_tree = proto_tree_add_subtree_format(tree, tvb, offset, length + 4 + (4-(length%4)),
+ ett_mpls_echo_tlv_fec, NULL, "FEC Element %u: %s",
idx, val_to_str_ext(type, &mpls_echo_tlv_fec_names_ext,
"Unknown FEC type (0x%04X)"));
- tlv_fec_tree = proto_item_add_subtree(ti, ett_mpls_echo_tlv_fec);
/* FEC sub-TLV Type and Length */
proto_tree_add_uint_format_value(tlv_fec_tree, hf_mpls_echo_tlv_fec_type, tvb,
@@ -977,9 +977,8 @@ dissect_mpls_echo_tlv_ds_map(tvbuff_t *tvb, packet_info *pinfo, guint offset, pr
mplen);
break;
}
- ti = proto_tree_add_text(tree, tvb, offset, 4,
- "Multipath Information");
- tlv_ds_map_tree = proto_item_add_subtree(ti, ett_mpls_echo_tlv_ds_map);
+ tlv_ds_map_tree = proto_tree_add_subtree(tree, tvb, offset, 4,
+ ett_mpls_echo_tlv_ds_map, NULL, "Multipath Information");
proto_tree_add_item(tlv_ds_map_tree, hf_mpls_echo_tlv_ds_map_mp_ip, tvb,
offset, 4, ENC_BIG_ENDIAN);
break;
@@ -990,9 +989,8 @@ dissect_mpls_echo_tlv_ds_map(tvbuff_t *tvb, packet_info *pinfo, guint offset, pr
mplen);
break;
}
- ti = proto_tree_add_text(tree, tvb, offset, 8,
- "Multipath Information");
- tlv_ds_map_tree = proto_item_add_subtree(ti, ett_mpls_echo_tlv_ds_map);
+ tlv_ds_map_tree = proto_tree_add_subtree(tree, tvb, offset, 8,
+ ett_mpls_echo_tlv_ds_map, NULL, "Multipath Information");
proto_tree_add_item(tlv_ds_map_tree, hf_mpls_echo_tlv_ds_map_mp_ip_low, tvb,
offset, 4, ENC_BIG_ENDIAN);
proto_tree_add_item(tlv_ds_map_tree, hf_mpls_echo_tlv_ds_map_mp_ip_high, tvb,
@@ -1012,9 +1010,8 @@ dissect_mpls_echo_tlv_ds_map(tvbuff_t *tvb, packet_info *pinfo, guint offset, pr
mplen);
break;
}
- ti = proto_tree_add_text(tree, tvb, offset, mplen,
- "Multipath Information");
- tlv_ds_map_tree = proto_item_add_subtree(ti, ett_mpls_echo_tlv_ds_map);
+ tlv_ds_map_tree = proto_tree_add_subtree(tree, tvb, offset, mplen,
+ ett_mpls_echo_tlv_ds_map, NULL, "Multipath Information");
proto_tree_add_item(tlv_ds_map_tree, hf_mpls_echo_tlv_ds_map_mp_ip, tvb,
offset, 4, ENC_BIG_ENDIAN);
if (mplen > 4)
@@ -1033,8 +1030,8 @@ dissect_mpls_echo_tlv_ds_map(tvbuff_t *tvb, packet_info *pinfo, guint offset, pr
if (tree) {
while (rem >= 4) {
decode_mpls_label(tvb, offset, &label, &exp, &bos, &proto);
- ti = proto_tree_add_text(tree, tvb, offset, 4, "Downstream Label Element %u", idx);
- tlv_ds_map_tree = proto_item_add_subtree(ti, ett_mpls_echo_tlv_ds_map);
+ tlv_ds_map_tree = proto_tree_add_subtree_format(tree, tvb, offset, 4,
+ ett_mpls_echo_tlv_ds_map, &ti, "Downstream Label Element %u", idx);
proto_item_append_text(ti, ", Label: %u", label);
if (label <= MPLS_LABEL_MAX_RESERVED) {
proto_tree_add_uint(tlv_ds_map_tree, hf_mpls_echo_tlv_ds_map_mp_label,
@@ -1147,9 +1144,8 @@ dissect_mpls_echo_tlv_dd_map(tvbuff_t *tvb, packet_info *pinfo, guint offset, pr
case TLV_FEC_MULTIPATH_DATA:
multipath_type = tvb_get_guint8(tvb, offset);
multipath_length = tvb_get_ntohs(tvb, offset + 1);
- ddsti = proto_tree_add_text(tree, tvb, offset - 4, multipath_length + 8,
- "Multipath sub-TLV");
- tlv_dd_map_tree = proto_item_add_subtree(ddsti, ett_mpls_echo_tlv_dd_map);
+ tlv_dd_map_tree = proto_tree_add_subtree(tree, tvb, offset - 4, multipath_length + 8,
+ ett_mpls_echo_tlv_dd_map, &ddsti, "Multipath sub-TLV");
switch (multipath_type) {
case TLV_MULTIPATH_NO_MULTIPATH:
@@ -1161,9 +1157,8 @@ dissect_mpls_echo_tlv_dd_map(tvbuff_t *tvb, packet_info *pinfo, guint offset, pr
hf_mpls_echo_sub_tlv_multipath_length, tvb, offset + 1, 2, ENC_BIG_ENDIAN);
proto_tree_add_item(tlv_dd_map_tree, hf_mpls_echo_sub_tlv_resv, tvb,
offset + 3, 1, ENC_BIG_ENDIAN);
- ddsti2 = proto_tree_add_text(tlv_dd_map_tree, tvb, offset + 4, multipath_length,
- "Empty (Multipath Length = 0)");
- tlv_ddstlv_map_tree = proto_item_add_subtree(ddsti2, ett_mpls_echo_tlv_ddstlv_map);
+ tlv_ddstlv_map_tree = proto_tree_add_subtree(tlv_dd_map_tree, tvb, offset + 4, multipath_length,
+ ett_mpls_echo_tlv_ddstlv_map, NULL, "Empty (Multipath Length = 0)");
proto_tree_add_item(tlv_ddstlv_map_tree, hf_mpls_echo_sub_tlv_multipath_info,
tvb, offset + 4, multipath_length, ENC_NA);
break;
@@ -1184,9 +1179,8 @@ dissect_mpls_echo_tlv_dd_map(tvbuff_t *tvb, packet_info *pinfo, guint offset, pr
proto_tree_add_item(tlv_dd_map_tree, hf_mpls_echo_sub_tlv_resv, tvb,
offset + 3, 1, ENC_BIG_ENDIAN);
- ddsti2 = proto_tree_add_text(tlv_dd_map_tree, tvb, offset + 4, multipath_length,
- "Multipath Information (IP addresses)");
- tlv_ddstlv_map_tree = proto_item_add_subtree(ddsti2, ett_mpls_echo_tlv_ddstlv_map);
+ tlv_ddstlv_map_tree = proto_tree_add_subtree(tlv_dd_map_tree, tvb, offset + 4, multipath_length,
+ ett_mpls_echo_tlv_ddstlv_map, NULL, "Multipath Information (IP addresses)");
proto_tree_add_item(tlv_ddstlv_map_tree, hf_mpls_echo_sub_tlv_multipath_ip, tvb,
offset + 4, 4, ENC_BIG_ENDIAN);
@@ -1208,9 +1202,8 @@ dissect_mpls_echo_tlv_dd_map(tvbuff_t *tvb, packet_info *pinfo, guint offset, pr
proto_tree_add_item(tlv_dd_map_tree, hf_mpls_echo_sub_tlv_resv, tvb,
offset + 3, 1, ENC_BIG_ENDIAN);
- ddsti2 = proto_tree_add_text(tlv_dd_map_tree, tvb, offset + 4, multipath_length,
- "Multipath Information (low/high address pairs)");
- tlv_ddstlv_map_tree = proto_item_add_subtree(ddsti2, ett_mpls_echo_tlv_ddstlv_map);
+ tlv_ddstlv_map_tree = proto_tree_add_subtree(tlv_dd_map_tree, tvb, offset + 4, multipath_length,
+ ett_mpls_echo_tlv_ddstlv_map, NULL, "Multipath Information (low/high address pairs)");
proto_tree_add_item(tlv_ddstlv_map_tree, hf_mpls_echo_sub_tlv_mp_ip_low, tvb,
offset + 4, 4, ENC_BIG_ENDIAN);
@@ -1234,9 +1227,8 @@ dissect_mpls_echo_tlv_dd_map(tvbuff_t *tvb, packet_info *pinfo, guint offset, pr
proto_tree_add_item(tlv_dd_map_tree, hf_mpls_echo_sub_tlv_resv, tvb,
offset + 3, 1, ENC_BIG_ENDIAN);
- ddsti2 = proto_tree_add_text(tlv_dd_map_tree, tvb, offset + 4, multipath_length,
- "Multipath Information (IP address prefix and bit mask)");
- tlv_ddstlv_map_tree = proto_item_add_subtree(ddsti2, ett_mpls_echo_tlv_ddstlv_map);
+ tlv_ddstlv_map_tree = proto_tree_add_subtree(tlv_dd_map_tree, tvb, offset + 4, multipath_length,
+ ett_mpls_echo_tlv_ddstlv_map, NULL, "Multipath Information (IP address prefix and bit mask)");
proto_tree_add_item(tlv_ddstlv_map_tree, hf_mpls_echo_sub_tlv_multipath_ip, tvb,
offset + 4, 4, ENC_BIG_ENDIAN);
@@ -1268,16 +1260,15 @@ dissect_mpls_echo_tlv_dd_map(tvbuff_t *tvb, packet_info *pinfo, guint offset, pr
break;
case TLV_FEC_LABEL_STACK:
- ddsti = proto_tree_add_text(tree, tvb, offset - 4, subtlv_length + 4, "Label stack sub-TLV");
- tlv_dd_map_tree = proto_item_add_subtree(ddsti, ett_mpls_echo_tlv_dd_map);
+ tlv_dd_map_tree = proto_tree_add_subtree(tree, tvb, offset - 4, subtlv_length + 4,
+ ett_mpls_echo_tlv_dd_map, NULL, "Label stack sub-TLV");
while (rem >= 4) {
if (tree) {
decode_mpls_label(tvb, offset, &label, &tc, &s_bit, &proto);
- ddsti2 = proto_tree_add_text(tlv_dd_map_tree,
- tvb, offset, 4, "Downstream Label Element %u", idx);
- tlv_ddstlv_map_tree = proto_item_add_subtree(ddsti2, ett_mpls_echo_tlv_ddstlv_map);
+ tlv_ddstlv_map_tree = proto_tree_add_subtree_format(tlv_dd_map_tree, tvb, offset, 4,
+ ett_mpls_echo_tlv_ddstlv_map, &ddsti2, "Downstream Label Element %u", idx);
proto_item_append_text(ddsti2, ", Label: %u , Protocol: %u", label, proto);
proto_tree_add_text(tlv_ddstlv_map_tree, tvb, offset, 3, "Label: %u", label);
proto_tree_add_text(tlv_ddstlv_map_tree, tvb, offset + 2, 1, "Traffic Class: %u", tc);
@@ -1294,8 +1285,8 @@ dissect_mpls_echo_tlv_dd_map(tvbuff_t *tvb, packet_info *pinfo, guint offset, pr
case TLV_FEC_STACK_CHANGE: {
addr_type = tvb_get_guint8(tvb, offset + 1);
fec_tlv_length = tvb_get_guint8(tvb, offset + 2);
- ddsti = proto_tree_add_text(tree, tvb, offset - 4, fec_tlv_length + 12, "Stack change sub-TLV");
- tlv_dd_map_tree = proto_item_add_subtree(ddsti, ett_mpls_echo_tlv_dd_map);
+ tlv_dd_map_tree = proto_tree_add_subtree(tree, tvb, offset - 4, fec_tlv_length + 12,
+ ett_mpls_echo_tlv_dd_map, NULL, "Stack change sub-TLV");
proto_tree_add_item(tlv_dd_map_tree, hf_mpls_echo_sub_tlv_op_type, tvb, offset, 1, ENC_BIG_ENDIAN);
proto_tree_add_item(tlv_dd_map_tree, hf_mpls_echo_sub_tlv_addr_type, tvb, offset + 1, 1, ENC_BIG_ENDIAN);
@@ -1325,8 +1316,7 @@ dissect_mpls_echo_tlv_dd_map(tvbuff_t *tvb, packet_info *pinfo, guint offset, pr
}
default:
- ddsti = proto_tree_add_text(tree, tvb, offset, subtlv_length, "Error processing sub-TLV");
- tlv_dd_map_tree = proto_item_add_subtree(ddsti, ett_mpls_echo_tlv_dd_map);
+ tlv_dd_map_tree = proto_tree_add_subtree(tree, tvb, offset, subtlv_length, ett_mpls_echo_tlv_dd_map, NULL, "Error processing sub-TLV");
proto_tree_add_item(tlv_dd_map_tree, hf_mpls_echo_tlv_dd_map_type, tvb, offset - 4, 2, ENC_BIG_ENDIAN);
proto_tree_add_item(tlv_dd_map_tree, hf_mpls_echo_tlv_dd_map_length, tvb, offset - 2, 2, ENC_BIG_ENDIAN);
proto_tree_add_item(tlv_dd_map_tree, hf_mpls_echo_tlv_dd_map_value, tvb, offset, subtlv_length, ENC_NA);
@@ -1400,8 +1390,7 @@ dissect_mpls_echo_tlv_ilso(tvbuff_t *tvb, packet_info *pinfo, guint offset, prot
proto_tree *tlv_ilso;
decode_mpls_label(tvb, offset, &label, &exp, &bos, &ttl);
- ti = proto_tree_add_text(tree, tvb, offset, 4, "Label Stack Element %u", idx);
- tlv_ilso = proto_item_add_subtree(ti, ett_mpls_echo_tlv_ilso);
+ tlv_ilso = proto_tree_add_subtree_format(tree, tvb, offset, 4, ett_mpls_echo_tlv_ilso, &ti, "Label Stack Element %u", idx);
proto_item_append_text(ti, ", Label: %u", label);
if (label <= MPLS_LABEL_MAX_RESERVED) {
proto_tree_add_uint_format_value(tlv_ilso, hf_mpls_echo_tlv_ilso_label,
@@ -1478,10 +1467,9 @@ dissect_mpls_echo_tlv(tvbuff_t *tvb, packet_info *pinfo, guint offset, proto_tre
type = TLV_VENDOR_PRIVATE_START;
if (tree) {
- ti = proto_tree_add_text(tree, tvb, offset, length + 4, "%s%s",
- in_errored ? "Errored TLV Type: " : "",
+ mpls_echo_tlv_tree = proto_tree_add_subtree_format(tree, tvb, offset, length + 4, ett_mpls_echo_tlv, NULL,
+ "%s%s", in_errored ? "Errored TLV Type: " : "",
val_to_str_ext(type, &mpls_echo_tlv_type_names_ext, "Unknown TLV type (0x%04X)"));
- mpls_echo_tlv_tree = proto_item_add_subtree(ti, ett_mpls_echo_tlv);
/* MPLS Echo TLV Type and Length */
if (in_errored) {
diff --git a/epan/dissectors/packet-mpls-y1711.c b/epan/dissectors/packet-mpls-y1711.c
index 27f1dbda82..cb05b86781 100644
--- a/epan/dissectors/packet-mpls-y1711.c
+++ b/epan/dissectors/packet-mpls-y1711.c
@@ -119,7 +119,6 @@ dissect_mpls_y1711(tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree, void *da
{
struct mplsinfo *mplsinfo;
int offset = 0;
- proto_item *ti;
proto_tree *mpls_y1711_tree;
int functype;
tvbuff_t *data_tvb;
@@ -156,8 +155,7 @@ dissect_mpls_y1711(tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree, void *da
return tvb_reported_length(tvb);
}
- ti = proto_tree_add_text(tree, tvb, offset, 44, "Y.1711 OAM");
- mpls_y1711_tree = proto_item_add_subtree(ti, ett_mpls_y1711);
+ mpls_y1711_tree = proto_tree_add_subtree(tree, tvb, offset, 44, ett_mpls_y1711, NULL, "Y.1711 OAM");
/* checks for exp, bos and ttl encoding */
if (mplsinfo->label != MPLS_LABEL_OAM_ALERT)
diff --git a/epan/dissectors/packet-mq-pcf.c b/epan/dissectors/packet-mq-pcf.c
index d3e1d811df..4e9635644c 100644
--- a/epan/dissectors/packet-mq-pcf.c
+++ b/epan/dissectors/packet-mq-pcf.c
@@ -247,15 +247,14 @@ static void dissect_mqpcf_parm(tvbuff_t *tvb, packet_info *pinfo, proto_tree *mq
pVal = dissect_mqpcf_parm_getintval(uPrm, uVal);
if (pVal)
{
- ti = proto_tree_add_text(mq_tree, tvb, offset, uLen, "%s %d-%s",
- strPrm, uVal, pVal);
+ tree = proto_tree_add_subtree_format(mq_tree, tvb, offset, uLen, ett_mqpcf_prm, NULL,
+ "%s %d-%s", strPrm, uVal, pVal);
}
else
{
- ti = proto_tree_add_text(mq_tree, tvb, offset, uLen, "%s %8x-%d",
- strPrm, uVal, uVal);
+ tree = proto_tree_add_subtree_format(mq_tree, tvb, offset, uLen, ett_mqpcf_prm, NULL,
+ "%s %8x-%d", strPrm, uVal, uVal);
}
- tree = proto_item_add_subtree(ti, ett_mqpcf_prm);
proto_tree_add_item(tree, hf_mq_pcf_prmtyp, tvb, offset , 4, bLittleEndian);
proto_tree_add_item(tree, hf_mq_pcf_prmlen, tvb, offset + 4, 4, bLittleEndian);
proto_tree_add_item(tree, (bParse) ? hf_mq_pcf_prmid : hf_mq_pcf_prmidnovals, tvb, offset + 8, 4, bLittleEndian);
@@ -276,8 +275,7 @@ static void dissect_mqpcf_parm(tvbuff_t *tvb, packet_info *pinfo, proto_tree *mq
if (*sStr)
format_text_chr(sStr, strlen(sStr), '.');
- ti = proto_tree_add_text(mq_tree, tvb, offset, uLen, "%s %s", strPrm, sStr);
- tree = proto_item_add_subtree(ti, ett_mqpcf_prm);
+ tree = proto_tree_add_subtree_format(mq_tree, tvb, offset, uLen, ett_mqpcf_prm, NULL, "%s %s", strPrm, sStr);
proto_tree_add_item(tree, hf_mq_pcf_prmtyp , tvb, offset , 4, bLittleEndian);
proto_tree_add_item(tree, hf_mq_pcf_prmlen , tvb, offset + 4, 4, bLittleEndian);
@@ -296,8 +294,7 @@ static void dissect_mqpcf_parm(tvbuff_t *tvb, packet_info *pinfo, proto_tree *mq
uCnt = tvb_get_guint32_endian(tvb, offset+uLenF, bLittleEndian);
uDigit = dissect_mqpcf_getDigits(uCnt);
- ti = proto_tree_add_text(mq_tree, tvb, offset, uLen, "%s Cnt(%d)", strPrm, uCnt);
- tree = proto_item_add_subtree(ti, ett_mqpcf_prm);
+ tree = proto_tree_add_subtree_format(mq_tree, tvb, offset, uLen, ett_mqpcf_prm, &ti, "%s Cnt(%d)", strPrm, uCnt);
proto_tree_add_item(tree, hf_mq_pcf_prmtyp , tvb, offset , 4, bLittleEndian);
proto_tree_add_item(tree, hf_mq_pcf_prmlen , tvb, offset + 4, 4, bLittleEndian);
@@ -331,9 +328,8 @@ static void dissect_mqpcf_parm(tvbuff_t *tvb, packet_info *pinfo, proto_tree *mq
uCnt = tvb_get_guint32_endian(tvb, offset + uLenF + 4, bLittleEndian);
uSLn = tvb_get_guint32_endian(tvb, offset + uLenF + 8, bLittleEndian);
- ti = proto_tree_add_text(mq_tree, tvb, offset, uLen, "%s Cnt(%d)", strPrm, uCnt);
+ tree = proto_tree_add_subtree_format(mq_tree, tvb, offset, uLen, ett_mqpcf_prm, NULL, "%s Cnt(%d)", strPrm, uCnt);
- tree = proto_item_add_subtree(ti, ett_mqpcf_prm);
proto_tree_add_item(tree, hf_mq_pcf_prmtyp , tvb, offset , 4, bLittleEndian);
proto_tree_add_item(tree, hf_mq_pcf_prmlen , tvb, offset + 4, 4, bLittleEndian);
proto_tree_add_item(tree, (bParse) ? hf_mq_pcf_prmid : hf_mq_pcf_prmidnovals, tvb, offset + 8, 4, bLittleEndian);
@@ -368,8 +364,7 @@ static void dissect_mqpcf_parm(tvbuff_t *tvb, packet_info *pinfo, proto_tree *mq
break;
case MQ_MQCFT_USER:
{
- ti = proto_tree_add_text(mq_tree, tvb, offset, uLen, "%s", strPrm);
- tree = proto_item_add_subtree(ti, ett_mqpcf_prm);
+ tree = proto_tree_add_subtree(mq_tree, tvb, offset, uLen, ett_mqpcf_prm, NULL, strPrm);
proto_tree_add_item(tree, hf_mq_pcf_prmtyp , tvb, offset , 4, bLittleEndian);
proto_tree_add_item(tree, hf_mq_pcf_prmlen , tvb, offset + 4, 4, bLittleEndian);
@@ -386,18 +381,19 @@ static void dissect_mqpcf_parm(tvbuff_t *tvb, packet_info *pinfo, proto_tree *mq
guint8 *sStrE = format_text_chr(tvb_get_string_enc(wmem_packet_scope(), tvb, offset + uLenF + 4, uSLn, ENC_EBCDIC), uSLn, '.');
if (uSLn > 35)
{
- ti = proto_tree_add_text(mq_tree, tvb, offset, uLen, "%s [Truncated] A(%-.35s) E(%-.35s)", strPrm, sStrA, sStrE);
+ tree = proto_tree_add_subtree_format(mq_tree, tvb, offset, uLen, ett_mqpcf_prm, NULL,
+ "%s [Truncated] A(%-.35s) E(%-.35s)", strPrm, sStrA, sStrE);
}
else
{
- ti = proto_tree_add_text(mq_tree, tvb, offset, uLen, "%s A(%s) E(%s)", strPrm, sStrA, sStrE);
+ tree = proto_tree_add_subtree_format(mq_tree, tvb, offset, uLen, ett_mqpcf_prm, NULL,
+ "%s A(%s) E(%s)", strPrm, sStrA, sStrE);
}
}
else
{
- ti = proto_tree_add_text(mq_tree, tvb, offset, uLen, "%s <MISSING>", strPrm);
+ tree = proto_tree_add_subtree_format(mq_tree, tvb, offset, uLen, ett_mqpcf_prm, NULL, "%s <MISSING>", strPrm);
}
- tree = proto_item_add_subtree(ti, ett_mqpcf_prm);
proto_tree_add_item(tree, hf_mq_pcf_prmtyp , tvb, offset , 4, bLittleEndian);
proto_tree_add_item(tree, hf_mq_pcf_prmlen , tvb, offset + 4, 4, bLittleEndian);
@@ -418,9 +414,8 @@ static void dissect_mqpcf_parm(tvbuff_t *tvb, packet_info *pinfo, proto_tree *mq
uOpe = tvb_get_guint32_endian(tvb, offset + uLenF , bLittleEndian);
uVal = tvb_get_guint32_endian(tvb, offset + uLenF + 4, bLittleEndian);
- ti = proto_tree_add_text(mq_tree, tvb, offset, uLen, "%s %s %d",
+ tree = proto_tree_add_subtree_format(mq_tree, tvb, offset, uLen, ett_mqpcf_prm, NULL, "%s %s %d",
strPrm, val_to_str(uOpe, GET_VALSV(FilterOP), " Unknown (0x%02x)")+7, uVal);
- tree = proto_item_add_subtree(ti, ett_mqpcf_prm);
proto_tree_add_item(tree, hf_mq_pcf_prmtyp , tvb, offset , 4, bLittleEndian);
proto_tree_add_item(tree, hf_mq_pcf_prmlen , tvb, offset + 4, 4, bLittleEndian);
@@ -441,9 +436,8 @@ static void dissect_mqpcf_parm(tvbuff_t *tvb, packet_info *pinfo, proto_tree *mq
sStr = format_text_chr(tvb_get_string_enc(wmem_packet_scope(), tvb, offset + uLenF + 12, uSLn, (uCCS != 500) ? ENC_ASCII : ENC_EBCDIC), uSLn, '.');
strip_trailing_blanks(sStr, uSLn);
- ti = proto_tree_add_text(mq_tree, tvb, offset, uLen, "%s %s %s",
+ tree = proto_tree_add_subtree_format(mq_tree, tvb, offset, uLen, ett_mqpcf_prm, NULL, "%s %s %s",
strPrm, val_to_str(uOpe, GET_VALSV(FilterOP), " Unknown (0x%02x)")+7, sStr);
- tree = proto_item_add_subtree(ti, ett_mqpcf_prm);
proto_tree_add_item(tree, hf_mq_pcf_prmtyp , tvb, offset , 4, bLittleEndian);
proto_tree_add_item(tree, hf_mq_pcf_prmlen , tvb, offset + 4, 4, bLittleEndian);
@@ -464,15 +458,14 @@ static void dissect_mqpcf_parm(tvbuff_t *tvb, packet_info *pinfo, proto_tree *mq
{
guint8 *sStrA = format_text_chr(tvb_get_string_enc(wmem_packet_scope(), tvb, offset + uLenF + 8, uSLn, ENC_ASCII), uSLn, '.');
guint8 *sStrE = format_text_chr(tvb_get_string_enc(wmem_packet_scope(), tvb, offset + uLenF + 8, uSLn, ENC_EBCDIC), uSLn, '.');
- ti = proto_tree_add_text(mq_tree, tvb, offset, uLen, "%s %s A(%s) E(%s)",
+ tree = proto_tree_add_subtree_format(mq_tree, tvb, offset, uLen, ett_mqpcf_prm, NULL, "%s %s A(%s) E(%s)",
strPrm, val_to_str(uOpe, GET_VALSV(FilterOP), " Unknown (0x%02x)")+7, sStrA, sStrE);
}
else
{
- ti = proto_tree_add_text(mq_tree, tvb, offset, uLen, "%s %s <MISSING>",
+ tree = proto_tree_add_subtree_format(mq_tree, tvb, offset, uLen, ett_mqpcf_prm, NULL, "%s %s <MISSING>",
strPrm, val_to_str(uOpe, GET_VALSV(FilterOP), " Unknown (0x%02x)")+7);
}
- tree = proto_item_add_subtree(ti, ett_mqpcf_prm);
proto_tree_add_item(tree, hf_mq_pcf_prmtyp , tvb, offset , 4, bLittleEndian);
proto_tree_add_item(tree, hf_mq_pcf_prmlen , tvb, offset + 4, 4, bLittleEndian);
@@ -500,9 +493,8 @@ static void dissect_mqpcf_parm(tvbuff_t *tvb, packet_info *pinfo, proto_tree *mq
case MQ_MQCFT_INTEGER64:
{
uVal64 = tvb_get_guint64_endian(tvb, offset + uLenF + 4, bLittleEndian);
- ti = proto_tree_add_text(mq_tree, tvb, offset, uLen, "%s %" G_GINT64_MODIFIER "x (%" G_GINT64_MODIFIER "d)",
- strPrm, uVal64, uVal64);
- tree = proto_item_add_subtree(ti, ett_mqpcf_prm);
+ tree = proto_tree_add_subtree_format(mq_tree, tvb, offset, uLen, ett_mqpcf_prm, NULL,
+ "%s %" G_GINT64_MODIFIER "x (%" G_GINT64_MODIFIER "d)", strPrm, uVal64, uVal64);
proto_tree_add_item(tree, hf_mq_pcf_prmtyp , tvb, offset , 4, bLittleEndian);
proto_tree_add_item(tree, hf_mq_pcf_prmlen , tvb, offset + 4, 4, bLittleEndian);
@@ -521,8 +513,7 @@ static void dissect_mqpcf_parm(tvbuff_t *tvb, packet_info *pinfo, proto_tree *mq
hfinfo = proto_registrar_get_nth(hf_mq_pcf_int64list);
uCnt = tvb_get_guint32_endian(tvb, offset + uLenF, bLittleEndian);
- ti = proto_tree_add_text(mq_tree, tvb, offset, uLen, "%s Cnt(%d)", strPrm, uCnt);
- tree = proto_item_add_subtree(ti, ett_mqpcf_prm);
+ tree = proto_tree_add_subtree_format(mq_tree, tvb, offset, uLen, ett_mqpcf_prm, NULL, "%s Cnt(%d)", strPrm, uCnt);
uDigit = dissect_mqpcf_getDigits(uCnt);
proto_tree_add_item(tree, hf_mq_pcf_prmtyp , tvb, offset , 4, bLittleEndian);
@@ -609,8 +600,7 @@ static void dissect_mqpcf(tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree, m
proto_item_append_text(ti, " (%s)", val_to_str(iCommand, GET_VALSV(mqcmd), "Unknown (0x%02x)"));
mqroot_tree = proto_item_add_subtree(ti, ett_mqpcf);
- ti = proto_tree_add_text(mqroot_tree, tvb, offset, iSizeMQCFH, "%s", sTmp);
- mq_tree = proto_item_add_subtree(ti, ett_mqpcf_cfh);
+ mq_tree = proto_tree_add_subtree(mqroot_tree, tvb, offset, iSizeMQCFH, ett_mqpcf_cfh, NULL, sTmp);
proto_tree_add_item(mq_tree, hf_mqpcf_cfh_type , tvb, offset + 0, 4, bLittleEndian);
proto_tree_add_item(mq_tree, hf_mqpcf_cfh_length , tvb, offset + 4, 4, bLittleEndian);
diff --git a/epan/dissectors/packet-mq.c b/epan/dissectors/packet-mq.c
index e77a98fd12..a801c9a9b6 100644
--- a/epan/dissectors/packet-mq.c
+++ b/epan/dissectors/packet-mq.c
@@ -1850,13 +1850,11 @@ static gint dissect_mq_MQCO(tvbuff_t *tvb, proto_tree *mq_tree, gint offset, mq_
}
static gint dissect_mq_charv(tvbuff_t *tvb, proto_tree *tree, gint offset, gint iSize, gint idx, guint8 *pStr, mq_parm_t *p_mq_parm)
{
- proto_item *ti;
proto_tree *mq_tree_sub;
guint32 lStr;
guint32 oStr;
gint32 eStr;
- guint8 *sStr;
- static guint8 sEmpty[] = "[Empty]";
+ const char *sStr;
lStr = tvb_get_guint32_endian(tvb, offset + 12, p_mq_parm->mq_int_enc);
oStr = tvb_get_guint32_endian(tvb, offset + 4, p_mq_parm->mq_int_enc);
@@ -1868,8 +1866,8 @@ static gint dissect_mq_charv(tvbuff_t *tvb, proto_tree *tree, gint offset, gint
else
sStr = NULL;
- ti = proto_tree_add_text(tree, tvb, offset, iSize, "%s - %s", pStr, (sStr) ? sStr : sEmpty);
- mq_tree_sub = proto_item_add_subtree(ti, idx);
+ mq_tree_sub = proto_tree_add_subtree_format(tree, tvb, offset, iSize, idx, NULL, "%s - %s", pStr, (sStr) ? sStr : "[Empty]");
+
proto_tree_add_item(mq_tree_sub, hf_mq_charv_vsptr , tvb, offset, 4, p_mq_parm->mq_int_enc);
proto_tree_add_item(mq_tree_sub, hf_mq_charv_vsoffset , tvb, offset + 4, 4, p_mq_parm->mq_int_enc);
proto_tree_add_item(mq_tree_sub, hf_mq_charv_vsbufsize, tvb, offset + 8, 4, p_mq_parm->mq_int_enc);
@@ -1901,8 +1899,7 @@ static gint dissect_mq_pmr(tvbuff_t *tvb, proto_tree *tree, gint offset, gint iN
gint iRecord = 0;
for (iRecord = 0; iRecord < iNbrRecords; iRecord++)
{
- proto_item *ti = proto_tree_add_text(tree, tvb, offset + iOffsetPMR, iSizePMR1, MQ_TEXT_PMR);
- proto_tree *mq_tree = proto_item_add_subtree(ti, ett_mq_pmr);
+ proto_tree *mq_tree = proto_tree_add_subtree(tree, tvb, offset + iOffsetPMR, iSizePMR1, ett_mq_pmr, NULL, MQ_TEXT_PMR);
if ((recFlags & MQ_PMRF_MSG_ID) != 0)
{
proto_tree_add_item(mq_tree, hf_mq_pmr_msgid, tvb, offset + iOffsetPMR, 24, ENC_NA);
@@ -1949,8 +1946,7 @@ static gint dissect_mq_or(tvbuff_t *tvb, proto_tree *tree, gint offset, gint iNb
gint iRecord = 0;
for (iRecord = 0; iRecord < iNbrRecords ; iRecord++)
{
- proto_item *ti = proto_tree_add_text(tree, tvb, offset + iOffsetOR, 96, MQ_TEXT_OR);
- proto_tree *mq_tree = proto_item_add_subtree(ti, ett_mq_or);
+ proto_tree *mq_tree = proto_tree_add_subtree(tree, tvb, offset + iOffsetOR, 96, ett_mq_or, NULL, MQ_TEXT_OR);
proto_tree_add_item(mq_tree, hf_mq_or_objname, tvb, offset + iOffsetOR, 48, p_mq_parm->mq_str_enc);
proto_tree_add_item(mq_tree, hf_mq_or_objqmgrname, tvb, offset + iOffsetOR + 48, 48, p_mq_parm->mq_str_enc);
iOffsetOR += 96;
@@ -1975,8 +1971,7 @@ static gint dissect_mq_rr(tvbuff_t *tvb, proto_tree *tree, gint offset, gint iNb
gint iRecord = 0;
for (iRecord = 0; iRecord < iNbrRecords; iRecord++)
{
- proto_item *ti = proto_tree_add_text(tree, tvb, offset + iOffsetRR, 8, MQ_TEXT_RR);
- proto_tree *mq_tree = proto_item_add_subtree(ti, ett_mq_rr);
+ proto_tree *mq_tree = proto_tree_add_subtree(tree, tvb, offset + iOffsetRR, 8, ett_mq_rr, NULL, MQ_TEXT_RR);
proto_tree_add_item(mq_tree, hf_mq_rr_compcode, tvb, offset + iOffsetRR, 4, p_mq_parm->mq_int_enc);
proto_tree_add_item(mq_tree, hf_mq_rr_reascode, tvb, offset + iOffsetRR + 4, 4, p_mq_parm->mq_int_enc);
iOffsetRR += 8;
@@ -2016,10 +2011,8 @@ static gint dissect_mq_gmo(tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree,
if (tree)
{
proto_tree *mq_tree;
- proto_item *ti;
- ti = proto_tree_add_text(tree, tvb, offset, iSize, MQ_TEXT_GMO);
- mq_tree = proto_item_add_subtree(ti, ett_mq_gmo);
+ mq_tree = proto_tree_add_subtree(tree, tvb, offset, iSize, ett_mq_gmo, NULL, MQ_TEXT_GMO);
proto_tree_add_item(mq_tree, hf_mq_gmo_StructID, tvb, offset, 4, p_mq_parm->mq_str_enc);
proto_tree_add_item(mq_tree, hf_mq_gmo_version , tvb, offset + 4, 4, p_mq_parm->mq_int_enc);
@@ -2082,10 +2075,8 @@ static gint dissect_mq_pmo(tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree,
if (tree)
{
proto_tree *mq_tree;
- proto_item *ti;
- ti = proto_tree_add_text(tree, tvb, offset, iSize, MQ_TEXT_PMO);
- mq_tree = proto_item_add_subtree(ti, ett_mq_pmo);
+ mq_tree = proto_tree_add_subtree(tree, tvb, offset, iSize, ett_mq_pmo, NULL, MQ_TEXT_PMO);
proto_tree_add_item(mq_tree, hf_mq_pmo_StructID, tvb, offset, 4, p_mq_parm->mq_str_enc);
proto_tree_add_item(mq_tree, hf_mq_pmo_version, tvb, offset + 4, 4, p_mq_parm->mq_int_enc);
@@ -2173,10 +2164,8 @@ static gint dissect_mq_od(tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree, g
if (tree)
{
proto_tree *mq_tree;
- proto_item *ti;
- ti = proto_tree_add_text(tree, tvb, offset, iSize, MQ_TEXT_OD);
- mq_tree = proto_item_add_subtree(ti, ett_mq_od);
+ mq_tree = proto_tree_add_subtree(tree, tvb, offset, iSize, ett_mq_od, NULL, MQ_TEXT_OD);
proto_tree_add_item(mq_tree, hf_mq_od_StructID , tvb, offset, 4, p_mq_parm->mq_str_enc);
proto_tree_add_item(mq_tree, hf_mq_od_version , tvb, offset + 4, 4, p_mq_parm->mq_int_enc);
@@ -2245,10 +2234,8 @@ static gint dissect_mq_xid(tvbuff_t *tvb, proto_tree *tree, mq_parm_t *p_mq_parm
if (tree)
{
proto_tree *mq_tree;
- proto_item *ti;
- ti = proto_tree_add_text(tree, tvb, offset, iSizeXid, MQ_TEXT_XID);
- mq_tree = proto_item_add_subtree(ti, ett_mq_xa_xid);
+ mq_tree = proto_tree_add_subtree(tree, tvb, offset, iSizeXid, ett_mq_xa_xid, NULL, MQ_TEXT_XID);
proto_tree_add_item(mq_tree, hf_mq_xa_xid_formatid , tvb, offset , 4, p_mq_parm->mq_int_enc);
proto_tree_add_item(mq_tree, hf_mq_xa_xid_glbxid_len, tvb, offset + 4 , 1, p_mq_parm->mq_int_enc);
@@ -2327,8 +2314,7 @@ static gint dissect_mq_id(tvbuff_t *tvb, packet_info *pinfo, proto_tree *mqroot_
}
if (mqroot_tree)
{
- proto_item *ti = proto_tree_add_text(mqroot_tree, tvb, offset, iSize, MQ_TEXT_ID);
- proto_tree *mq_tree = proto_item_add_subtree(ti, ett_mq_id);
+ proto_tree *mq_tree = proto_tree_add_subtree(mqroot_tree, tvb, offset, iSize, ett_mq_id, NULL, MQ_TEXT_ID);
proto_tree_add_item(mq_tree, hf_mq_id_StructID, tvb, offset, 4, p_mq_parm->mq_str_enc);
proto_tree_add_item(mq_tree, hf_mq_id_FapLevel, tvb, offset + 4, 1, ENC_BIG_ENDIAN);
@@ -2411,8 +2397,7 @@ static gint dissect_mq_md(tvbuff_t *tvb, proto_tree *tree, gint offset, mq_parm_
p_mq_parm->mq_md_ccsid.ccsid = tvb_get_guint32_endian(tvb, offset + 28, p_mq_parm->mq_int_enc);
if (tree)
{
- proto_item *ti = proto_tree_add_text(tree, tvb, offset, iSize, MQ_TEXT_MD);
- proto_tree *mq_tree = proto_item_add_subtree(ti, ett_mq_md);
+ proto_tree *mq_tree = proto_tree_add_subtree(tree, tvb, offset, iSize, ett_mq_md, NULL, MQ_TEXT_MD);
proto_tree_add_item(mq_tree, hf_mq_md_StructID , tvb, offset, 4, p_mq_parm->mq_str_enc);
proto_tree_add_item(mq_tree, hf_mq_md_version , tvb, offset + 4, 4, p_mq_parm->mq_int_enc);
@@ -2464,8 +2449,7 @@ static gint dissect_mq_fopa(tvbuff_t *tvb, proto_tree *tree, gint offset, mq_par
{
if (tree)
{
- proto_item *ti = proto_tree_add_text(tree, tvb, offset, iSize, MQ_TEXT_FOPA);
- proto_tree *mq_tree = proto_item_add_subtree(ti, ett_mq_fopa);
+ proto_tree *mq_tree = proto_tree_add_subtree(tree, tvb, offset, iSize, ett_mq_fopa, NULL, MQ_TEXT_FOPA);
proto_tree_add_item(mq_tree, hf_mq_fopa_StructID, tvb, offset, 4, p_mq_parm->mq_str_enc);
proto_tree_add_item(mq_tree, hf_mq_fopa_version , tvb, offset + 4, 4, p_mq_parm->mq_int_enc);
@@ -2580,8 +2564,7 @@ static void dissect_mq_pdu(tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree)
mqroot_tree = tree;
}
- ti = proto_tree_add_text(mqroot_tree, tvb, offset, iSizeTSH, MQ_TEXT_TSH);
- mq_tree = proto_item_add_subtree(ti, ett_mq_tsh);
+ mq_tree = proto_tree_add_subtree(mqroot_tree, tvb, offset, iSizeTSH, ett_mq_tsh, NULL, MQ_TEXT_TSH);
proto_tree_add_item(mq_tree, hf_mq_tsh_StructID, tvb, offset + 0, 4, p_mq_parm->mq_str_enc);
proto_tree_add_item(mq_tree, hf_mq_tsh_mqseglen, tvb, offset + 4, 4, ENC_BIG_ENDIAN);
@@ -2626,8 +2609,7 @@ static void dissect_mq_pdu(tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree)
if (tree)
{
- ti = proto_tree_add_text(mqroot_tree, tvb, offset, iSizeAPI, MQ_TEXT_API);
- mq_tree = proto_item_add_subtree(ti, ett_mq_api);
+ mq_tree = proto_tree_add_subtree(mqroot_tree, tvb, offset, iSizeAPI, ett_mq_api, NULL, MQ_TEXT_API);
proto_tree_add_item(mq_tree, hf_mq_api_replylen, tvb, offset, 4, ENC_BIG_ENDIAN);
proto_tree_add_item(mq_tree, hf_mq_api_compcode, tvb, offset + 4, 4, p_mq_parm->mq_int_enc);
@@ -2644,8 +2626,7 @@ static void dissect_mq_pdu(tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree)
bPayload = TRUE;
if (tree)
{
- ti = proto_tree_add_text(mqroot_tree, tvb, offset, iSize, MQ_TEXT_MSH);
- mq_tree = proto_item_add_subtree(ti, ett_mq_msh);
+ mq_tree = proto_tree_add_subtree(mqroot_tree, tvb, offset, iSize, ett_mq_msh, NULL, MQ_TEXT_MSH);
proto_tree_add_item(mq_tree, hf_mq_msh_StructID, tvb, offset + 0, 4, p_mq_parm->mq_str_enc);
proto_tree_add_item(mq_tree, hf_mq_msh_seqnum, tvb, offset + 4, 4, p_mq_parm->mq_int_enc);
@@ -2666,8 +2647,7 @@ static void dissect_mq_pdu(tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree)
if (tree)
{
- ti = proto_tree_add_text(mqroot_tree, tvb, offset, iSize, MQ_TEXT_CAUT);
- mq_tree = proto_item_add_subtree(ti, ett_mq_caut);
+ mq_tree = proto_tree_add_subtree(mqroot_tree, tvb, offset, iSize, ett_mq_caut, NULL, MQ_TEXT_CAUT);
proto_tree_add_item(mq_tree, hf_mq_caut_StructID, tvb, offset, 4, p_mq_parm->mq_str_enc);
proto_tree_add_item(mq_tree, hf_mq_caut_AuthType, tvb, offset + 4, 4, p_mq_parm->mq_int_enc);
@@ -2689,8 +2669,7 @@ static void dissect_mq_pdu(tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree)
gint iSize = 20;
if (tree)
{
- ti = proto_tree_add_text(mqroot_tree, tvb, offset, iSizeAPI, MQ_TEXT_SOCKET);
- mq_tree = proto_item_add_subtree(ti, ett_mq_socket);
+ mq_tree = proto_tree_add_subtree(mqroot_tree, tvb, offset, iSizeAPI, ett_mq_socket, NULL, MQ_TEXT_SOCKET);
proto_tree_add_item(mq_tree, hf_mq_socket_conversid, tvb, offset, 4, p_mq_parm->mq_int_enc);
proto_tree_add_item(mq_tree, hf_mq_socket_requestid, tvb, offset + 4, 4, p_mq_parm->mq_int_enc);
@@ -2717,8 +2696,7 @@ static void dissect_mq_pdu(tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree)
if (tree)
{
- ti = proto_tree_add_text(mqroot_tree, tvb, offset, 8, MQ_TEXT_STAT);
- mq_tree = proto_item_add_subtree(ti, ett_mq_status);
+ mq_tree = proto_tree_add_subtree(mqroot_tree, tvb, offset, 8, ett_mq_status, NULL, MQ_TEXT_STAT);
proto_tree_add_item(mq_tree, hf_mq_status_length, tvb, offset, 4, p_mq_parm->mq_int_enc);
proto_tree_add_item(mq_tree, hf_mq_status_code, tvb, offset + 4, 4, p_mq_parm->mq_int_enc);
@@ -2733,8 +2711,7 @@ static void dissect_mq_pdu(tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree)
{
if (tree)
{
- ti = proto_tree_add_text(mqroot_tree, tvb, offset, -1, MQ_TEXT_PING);
- mq_tree = proto_item_add_subtree(ti, ett_mq_ping);
+ mq_tree = proto_tree_add_subtree(mqroot_tree, tvb, offset, -1, ett_mq_ping, NULL, MQ_TEXT_PING);
proto_tree_add_item(mq_tree, hf_mq_ping_length, tvb, offset, 4, p_mq_parm->mq_int_enc);
proto_tree_add_item(mq_tree, hf_mq_ping_buffer, tvb, offset + 4, -1, ENC_NA);
@@ -2745,8 +2722,7 @@ static void dissect_mq_pdu(tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree)
{
if (tree)
{
- ti = proto_tree_add_text(mqroot_tree, tvb, offset, -1, MQ_TEXT_RESET);
- mq_tree = proto_item_add_subtree(ti, ett_mq_reset);
+ mq_tree = proto_tree_add_subtree(mqroot_tree, tvb, offset, -1, ett_mq_reset, NULL, MQ_TEXT_RESET);
proto_tree_add_item(mq_tree, hf_mq_reset_length, tvb, offset, 4, p_mq_parm->mq_int_enc);
proto_tree_add_item(mq_tree, hf_mq_reset_seqnum, tvb, offset + 4, 4, p_mq_parm->mq_int_enc);
@@ -2760,8 +2736,7 @@ static void dissect_mq_pdu(tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree)
offset += dissect_mq_od(tvb, pinfo, mqroot_tree, offset, p_mq_parm, &iDistributionListSize);
if (tree)
{
- ti = proto_tree_add_text(mqroot_tree, tvb, offset, 4, MQ_TEXT_OPEN);
- mq_tree = proto_item_add_subtree(ti, ett_mq_open);
+ mq_tree = proto_tree_add_subtree(mqroot_tree, tvb, offset, 4, ett_mq_open, NULL, MQ_TEXT_OPEN);
if (p_mq_parm->mq_opcode == MQ_TST_MQOPEN || p_mq_parm->mq_opcode == MQ_TST_MQOPEN_REPLY)
{
dissect_mq_MQOO(tvb, mq_tree, offset, ett_mq_open_option, hf_mq_open_options, p_mq_parm);
@@ -2808,8 +2783,7 @@ static void dissect_mq_pdu(tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree)
nofs = offset;
if (tree)
{
- ti = proto_tree_add_text(mqroot_tree, tvb, offset, iSizeCONN, MQ_TEXT_CONN);
- mq_tree = proto_item_add_subtree(ti, ett_mq_conn);
+ mq_tree = proto_tree_add_subtree(mqroot_tree, tvb, offset, iSizeCONN, ett_mq_conn, NULL, MQ_TEXT_CONN);
do_proto_add_item(48, proto_tree_add_item(mq_tree, hf_mq_conn_QMgr , tvb, nofs, 48, p_mq_parm->mq_str_enc));
do_proto_add_item(28, proto_tree_add_item(mq_tree, hf_mq_conn_appname , tvb, nofs, 28, p_mq_parm->mq_str_enc));
@@ -2825,8 +2799,7 @@ static void dissect_mq_pdu(tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree)
{
proto_tree *mq_tree_sub;
- ti = proto_tree_add_text(mq_tree, tvb, nofs, iSizeCONN - nofs, MQ_TEXT_FCNO);
- mq_tree_sub = proto_item_add_subtree(ti, ett_mq_fcno);
+ mq_tree_sub = proto_tree_add_subtree(mq_tree, tvb, nofs, iSizeCONN - nofs, ett_mq_fcno, NULL, MQ_TEXT_FCNO);
do_proto_add_item( 4, proto_tree_add_item(mq_tree_sub, hf_mq_fcno_StructID , tvb, nofs, 4, p_mq_parm->mq_str_enc));
do_proto_add_item( 4, proto_tree_add_item(mq_tree_sub, hf_mq_fcno_unknown00, tvb, nofs, 4, p_mq_parm->mq_int_enc));
@@ -2864,8 +2837,7 @@ static void dissect_mq_pdu(tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree)
if (tree)
{
- ti = proto_tree_add_text(mqroot_tree, tvb, offset, -1, MQ_TEXT_INQ);
- mq_tree = proto_item_add_subtree(ti, ett_mq_inq);
+ mq_tree = proto_tree_add_subtree(mqroot_tree, tvb, offset, -1, ett_mq_inq, NULL, MQ_TEXT_INQ);
proto_tree_add_item(mq_tree, hf_mq_inq_nbsel, tvb, offset, 4, p_mq_parm->mq_int_enc);
proto_tree_add_item(mq_tree, hf_mq_inq_nbint, tvb, offset + 4, 4, p_mq_parm->mq_int_enc);
@@ -2919,8 +2891,7 @@ static void dissect_mq_pdu(tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree)
if (tree)
{
- ti = proto_tree_add_text(mqroot_tree, tvb, offset, -1, MQ_TEXT_NOTIFICATION);
- mq_tree = proto_item_add_subtree(ti, ett_mq_notif);
+ mq_tree = proto_tree_add_subtree(mqroot_tree, tvb, offset, -1, ett_mq_notif, NULL, MQ_TEXT_NOTIFICATION);
proto_tree_add_item(mq_tree, hf_mq_notif_vers, tvb, offset, 4, p_mq_parm->mq_int_enc);
proto_tree_add_item(mq_tree, hf_mq_notif_handle, tvb, offset + 4, 4, p_mq_parm->mq_int_enc);
@@ -2954,8 +2925,7 @@ static void dissect_mq_pdu(tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree)
if (tree)
{
- ti = proto_tree_add_text(mqroot_tree, tvb, offset, -1, MQ_TEXT_REQMSG);
- mq_tree = proto_item_add_subtree(ti, ett_mq_msg);
+ mq_tree = proto_tree_add_subtree(mqroot_tree, tvb, offset, -1, ett_mq_msg, NULL, MQ_TEXT_REQMSG);
proto_tree_add_item(mq_tree, hf_mq_msgreq_version , tvb, offset , 4, p_mq_parm->mq_int_enc);
proto_tree_add_item(mq_tree, hf_mq_msgreq_handle , tvb, offset + 4, 4, p_mq_parm->mq_int_enc);
@@ -3042,8 +3012,7 @@ static void dissect_mq_pdu(tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree)
if (tree)
{
- ti = proto_tree_add_text(mqroot_tree, tvb, offset, iHdrL, MQ_TEXT_ASYMSG);
- mq_tree = proto_item_add_subtree(ti, ett_mq_msg);
+ mq_tree = proto_tree_add_subtree(mqroot_tree, tvb, offset, iHdrL, ett_mq_msg, NULL, MQ_TEXT_ASYMSG);
proto_tree_add_item(mq_tree, hf_mq_msgasy_version , tvb, offset , 4, p_mq_parm->mq_int_enc);
proto_tree_add_item(mq_tree, hf_mq_msgasy_handle , tvb, offset + 4, 4, p_mq_parm->mq_int_enc);
@@ -3085,8 +3054,7 @@ static void dissect_mq_pdu(tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree)
if (tree)
{
- ti = proto_tree_add_text(mqroot_tree, tvb, offset, 12, MQ_TEXT_SPI);
- mq_tree = proto_item_add_subtree(ti, ett_mq_spi);
+ mq_tree = proto_tree_add_subtree(mqroot_tree, tvb, offset, 12, ett_mq_spi, NULL, MQ_TEXT_SPI);
proto_tree_add_item(mq_tree, hf_mq_spi_verb , tvb, offset, 4, p_mq_parm->mq_int_enc);
proto_tree_add_item(mq_tree, hf_mq_spi_version, tvb, offset + 4, 4, p_mq_parm->mq_int_enc);
@@ -3104,8 +3072,7 @@ static void dissect_mq_pdu(tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree)
{
guint8 *sStructId;
sStructId = tvb_get_string_enc(wmem_packet_scope(), tvb, offset, 4, ((p_mq_parm->mq_strucID & MQ_MASK_SPxx) == MQ_STRUCTID_SPxx) ? ENC_ASCII : ENC_EBCDIC);
- ti = proto_tree_add_text(mqroot_tree, tvb, offset, 12, "%s", sStructId);
- mq_tree = proto_item_add_subtree(ti, ett_mq_spi_base);
+ mq_tree = proto_tree_add_subtree(mqroot_tree, tvb, offset, 12, ett_mq_spi_base, NULL, sStructId);
proto_tree_add_item(mq_tree, hf_mq_spi_base_StructID, tvb, offset, 4, p_mq_parm->mq_str_enc);
proto_tree_add_item(mq_tree, hf_mq_spi_base_version , tvb, offset + 4, 4, p_mq_parm->mq_int_enc);
@@ -3135,8 +3102,7 @@ static void dissect_mq_pdu(tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree)
/* Dissect the common part of these structures */
guint8 *sStructId;
sStructId = tvb_get_string_enc(wmem_packet_scope(), tvb, offset, 4, ((p_mq_parm->mq_strucID & MQ_MASK_SPxx) == MQ_STRUCTID_SPxx) ? ENC_ASCII : ENC_EBCDIC);
- ti = proto_tree_add_text(mqroot_tree, tvb, offset, -1, "%s", sStructId);
- mq_tree = proto_item_add_subtree(ti, ett_mq_spi_base);
+ mq_tree = proto_tree_add_subtree(mqroot_tree, tvb, offset, -1, ett_mq_spi_base, NULL, sStructId);
proto_tree_add_item(mq_tree, hf_mq_spi_base_StructID, tvb, offset, 4, p_mq_parm->mq_str_enc);
proto_tree_add_item(mq_tree, hf_mq_spi_base_version , tvb, offset + 4, 4, p_mq_parm->mq_int_enc);
@@ -3218,9 +3184,8 @@ static void dissect_mq_pdu(tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree)
/* The XA structures are special because they do not start with a structid */
if (tree)
{
- ti = proto_tree_add_text(mqroot_tree, tvb, offset, 16, "%s (%s)", MQ_TEXT_XA,
- val_to_str(p_mq_parm->mq_opcode, mq_opcode_vals, "Unknown (0x%02x)"));
- mq_tree = proto_item_add_subtree(ti, ett_mq_xa);
+ mq_tree = proto_tree_add_subtree_format(mqroot_tree, tvb, offset, 16, ett_mq_xa, NULL,
+ "%s (%s)", MQ_TEXT_XA, val_to_str(p_mq_parm->mq_opcode, mq_opcode_vals, "Unknown (0x%02x)"));
proto_tree_add_item(mq_tree, hf_mq_xa_length, tvb, offset, 4, ENC_BIG_ENDIAN);
proto_tree_add_item(mq_tree, hf_mq_xa_returnvalue, tvb, offset + 4, 4, p_mq_parm->mq_int_enc);
@@ -3247,8 +3212,7 @@ static void dissect_mq_pdu(tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree)
{
if (tree)
{
- ti = proto_tree_add_text(mqroot_tree, tvb, offset, iXAInfoLength + 1, MQ_TEXT_XINF);
- mq_tree = proto_item_add_subtree(ti, ett_mq_xa_info);
+ mq_tree = proto_tree_add_subtree(mqroot_tree, tvb, offset, iXAInfoLength + 1, ett_mq_xa_info, NULL, MQ_TEXT_XINF);
proto_tree_add_item(mq_tree, hf_mq_xa_xainfo_length, tvb, offset, 1, ENC_BIG_ENDIAN);
proto_tree_add_item(mq_tree, hf_mq_xa_xainfo_value , tvb, offset + 1, iXAInfoLength, p_mq_parm->mq_str_enc);
@@ -3296,8 +3260,7 @@ static void dissect_mq_pdu(tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree)
{
if (tree)
{
- ti = proto_tree_add_text(mqroot_tree, tvb, offset, iSize, MQ_TEXT_LPOO);
- mq_tree = proto_item_add_subtree(ti, ett_mq_lpoo);
+ mq_tree = proto_tree_add_subtree(mqroot_tree, tvb, offset, iSize, ett_mq_lpoo, NULL, MQ_TEXT_LPOO);
proto_tree_add_item(mq_tree, hf_mq_lpoo_StructID, tvb, offset, 4, p_mq_parm->mq_str_enc);
proto_tree_add_item(mq_tree, hf_mq_lpoo_version , tvb, offset + 4, 4, p_mq_parm->mq_int_enc);
@@ -3354,8 +3317,7 @@ static void dissect_mq_pdu(tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree)
if (tree)
{
- ti = proto_tree_add_text(mqroot_tree, tvb, offset, iSizeUID, MQ_TEXT_UID);
- mq_tree = proto_item_add_subtree(ti, ett_mq_uid);
+ mq_tree = proto_tree_add_subtree(mqroot_tree, tvb, offset, iSizeUID, ett_mq_uid, NULL, MQ_TEXT_UID);
proto_tree_add_item(mq_tree, hf_mq_uid_StructID, tvb, offset, 4, p_mq_parm->mq_str_enc);
proto_tree_add_item(mq_tree, hf_mq_uid_userid , tvb, offset + 4, 12, p_mq_parm->mq_str_enc);
@@ -3400,8 +3362,7 @@ static void dissect_mq_pdu(tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree)
iSizePayload = tvb_get_guint32_endian(tvb, offset, p_mq_parm->mq_int_enc);
if (tree)
{
- ti = proto_tree_add_text(mqroot_tree, tvb, offset, 4, MQ_TEXT_PUT);
- mq_tree = proto_item_add_subtree(ti, ett_mq_put);
+ mq_tree = proto_tree_add_subtree(mqroot_tree, tvb, offset, 4, ett_mq_put, NULL, MQ_TEXT_PUT);
proto_tree_add_item(mq_tree, hf_mq_put_length, tvb, offset, 4, p_mq_parm->mq_int_enc);
}
offset += 4;
@@ -3431,8 +3392,7 @@ static void dissect_mq_pdu(tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree)
gint iSizeXQH = 104;
if (tree)
{
- ti = proto_tree_add_text(mqroot_tree, tvb, offset, iSizeXQH, MQ_TEXT_XQH);
- mq_tree = proto_item_add_subtree(ti, ett_mq_xqh);
+ mq_tree = proto_tree_add_subtree(mqroot_tree, tvb, offset, iSizeXQH, ett_mq_xqh, NULL, MQ_TEXT_XQH);
proto_tree_add_item(mq_tree, hf_mq_xqh_StructID , tvb, offset , 4, p_mq_parm->mq_str_enc);
proto_tree_add_item(mq_tree, hf_mq_xqh_version , tvb, offset + 4, 4, p_mq_parm->mq_int_enc);
@@ -3463,8 +3423,7 @@ static void dissect_mq_pdu(tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree)
if (tree)
{
- ti = proto_tree_add_text(mqroot_tree, tvb, offset, iSizeDLH, MQ_TEXT_DLH);
- mq_tree = proto_item_add_subtree(ti, ett_mq_dlh);
+ mq_tree = proto_tree_add_subtree(mqroot_tree, tvb, offset, iSizeDLH, ett_mq_dlh, NULL, MQ_TEXT_DLH);
proto_tree_add_item(mq_tree, hf_mq_dlh_StructID , tvb, offset, 4, p_mq_parm->mq_str_enc);
proto_tree_add_item(mq_tree, hf_mq_dlh_version , tvb, offset + 4, 4, p_mq_parm->mq_int_enc);
@@ -3525,8 +3484,8 @@ static void dissect_mq_pdu(tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree)
if (tree)
{
- ti = proto_tree_add_text(mqroot_tree, tvb, offset, iSizeHeader, "%s", val_to_str(p_mq_parm->mq_strucID, mq_StructID_vals, "Unknown (0x%08x)"));
- mq_tree = proto_item_add_subtree(ti, ett_mq_head);
+ mq_tree = proto_tree_add_subtree(mqroot_tree, tvb, offset, iSizeHeader, ett_mq_head, NULL,
+ val_to_str(p_mq_parm->mq_strucID, mq_StructID_vals, "Unknown (0x%08x)"));
proto_tree_add_item(mq_tree, hf_mq_head_StructID, tvb, offset, 4, p_mq_parm->mq_str_enc);
proto_tree_add_item(mq_tree, hf_mq_head_version , tvb, offset + 4, 4, p_mq_parm->mq_int_enc);
diff --git a/epan/dissectors/packet-mqtt.c b/epan/dissectors/packet-mqtt.c
index 6ad2648d11..d4e4366671 100644
--- a/epan/dissectors/packet-mqtt.c
+++ b/epan/dissectors/packet-mqtt.c
@@ -219,9 +219,8 @@ static int dissect_mqtt(tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree, voi
mqtt_msg_len = (gint) msg_len;
/* Add each MQTT message as a subtree to main Tree */
- ti_mqtt = proto_tree_add_text(mqtt_tree, tvb, offset, mqtt_msg_len, "%s",
+ mqtt_msg_tree = proto_tree_add_subtree(mqtt_tree, tvb, offset, mqtt_msg_len, ett_mqtt_msg, NULL,
val_to_str_ext(mqtt_msg_type, &mqtt_msgtype_vals_ext, "Unknown (0x%02x)"));
- mqtt_msg_tree = proto_item_add_subtree(ti_mqtt, ett_mqtt_msg);
ti_mqtt = proto_tree_add_uint_format_value(mqtt_msg_tree, hf_mqtt_hdrflags, tvb, offset, 1, mqtt_fixed_hdr, "0x%02x (%s)",
mqtt_fixed_hdr, val_to_str_ext(mqtt_msg_type, &mqtt_msgtype_vals_ext, "Unknown (0x%02x)") );
diff --git a/epan/dissectors/packet-msdp.c b/epan/dissectors/packet-msdp.c
index 66473b65da..13726929e5 100644
--- a/epan/dissectors/packet-msdp.c
+++ b/epan/dissectors/packet-msdp.c
@@ -260,18 +260,17 @@ static void dissect_msdp_sa(tvbuff_t *tvb, packet_info *pinfo,
* This is probably visually better.
*/
while (entries-- > 0) {
- proto_item *ei;
proto_tree *entry_tree;
if (length < 12) {
*offset += length;
return;
}
- ei = proto_tree_add_text(tree, tvb, *offset, 12, "(S,G) block: %s/%u -> %s",
+ entry_tree = proto_tree_add_subtree_format(tree, tvb, *offset, 12, ett_msdp_sa_entry, NULL,
+ "(S,G) block: %s/%u -> %s",
tvb_ip_to_str(tvb, *offset + 8),
tvb_get_guint8(tvb, *offset + 3),
tvb_ip_to_str(tvb, *offset + 4));
- entry_tree = proto_item_add_subtree(ei, ett_msdp_sa_entry);
proto_tree_add_item(entry_tree, hf_msdp_sa_reserved, tvb, *offset, 3, ENC_BIG_ENDIAN);
*offset += 3;
@@ -291,15 +290,13 @@ static void dissect_msdp_sa(tvbuff_t *tvb, packet_info *pinfo,
* Check if an encapsulated multicast IPv4 packet follows
*/
if (length > 0) {
- proto_item *ei;
proto_tree *enc_tree;
gint available_length, reported_length;
tvbuff_t *next_tvb;
- ei = proto_tree_add_text(tree, tvb, *offset, length,
- "Encapsulated IPv4 packet: %u bytes",
+ enc_tree = proto_tree_add_subtree_format(tree, tvb, *offset, length,
+ ett_msdp_sa_enc_data, NULL, "Encapsulated IPv4 packet: %u bytes",
length);
- enc_tree = proto_item_add_subtree(ei, ett_msdp_sa_enc_data);
available_length = tvb_length_remaining(tvb, *offset);
reported_length = tvb_reported_length_remaining(tvb, *offset);
diff --git a/epan/dissectors/packet-msproxy.c b/epan/dissectors/packet-msproxy.c
index 882312dcba..aec2cbbe6a 100644
--- a/epan/dissectors/packet-msproxy.c
+++ b/epan/dissectors/packet-msproxy.c
@@ -573,16 +573,13 @@ static void dissect_request_resolve(tvbuff_t *tvb, int offset,
/* return the length of the string and the length byte */
proto_tree *name_tree;
- proto_item *ti;
int length = tvb_get_guint8( tvb, offset);
if ( tree){
- ti = proto_tree_add_text(tree, tvb, offset, length + 1,
- "Host Name: %.*s", length,
- tvb_get_string_enc( wmem_packet_scope(), tvb, offset + 18, length, ENC_ASCII));
-
- name_tree = proto_item_add_subtree(ti, ett_msproxy_name);
+ name_tree = proto_tree_add_subtree_format(tree, tvb, offset, length + 1,
+ ett_msproxy_name, NULL, "Host Name: %.*s", length,
+ tvb_get_string_enc( wmem_packet_scope(), tvb, offset + 18, length, ENC_ASCII));
proto_tree_add_text( name_tree, tvb, offset, 1, "Length: %d",
length);
diff --git a/epan/dissectors/packet-msrp.c b/epan/dissectors/packet-msrp.c
index 66d5b38f29..179d15f53f 100644
--- a/epan/dissectors/packet-msrp.c
+++ b/epan/dissectors/packet-msrp.c
@@ -722,9 +722,8 @@ dissect_msrp(tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree, void *data _U_
/* continuation-flag */
proto_tree_add_item(msrp_end_tree,hf_msrp_cnt_flg,tvb,end_line_offset+end_line_len-1,1,ENC_UTF_8|ENC_NA);
- if (global_msrp_raw_text){
- ti = proto_tree_add_text(tree, tvb, 0, -1,"Message Session Relay Protocol(as raw text)");
- raw_tree = proto_item_add_subtree(ti, ett_msrp);
+ if (global_msrp_raw_text && tree) {
+ raw_tree = proto_tree_add_subtree(tree, tvb, 0, -1, ett_msrp, NULL, "Message Session Relay Protocol(as raw text)");
tvb_raw_text_add(tvb,raw_tree);
}
diff --git a/epan/dissectors/packet-mtp2.c b/epan/dissectors/packet-mtp2.c
index 87b99ba580..3b9c5c5e1d 100644
--- a/epan/dissectors/packet-mtp2.c
+++ b/epan/dissectors/packet-mtp2.c
@@ -337,8 +337,8 @@ dissect_mtp2_su(tvbuff_t *su_tvb, packet_info *pinfo, proto_item *mtp2_item, pro
static void
dissect_mtp2_common(tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree, gboolean validate_crc)
{
- proto_item *mtp2_item = NULL;
- proto_tree *mtp2_tree = NULL;
+ proto_item *mtp2_item;
+ proto_tree *mtp2_tree;
if (pinfo->annex_a_used == MTP2_ANNEX_A_USED_UNKNOWN)
use_extended_sequence_numbers = use_extended_sequence_numbers_default;
@@ -347,10 +347,8 @@ dissect_mtp2_common(tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree, gboolea
col_set_str(pinfo->cinfo, COL_PROTOCOL, "MTP2");
- if (tree) {
- mtp2_item = proto_tree_add_item(tree, proto_mtp2, tvb, 0, -1, ENC_NA);
- mtp2_tree = proto_item_add_subtree(mtp2_item, ett_mtp2);
- };
+ mtp2_item = proto_tree_add_item(tree, proto_mtp2, tvb, 0, -1, ENC_NA);
+ mtp2_tree = proto_item_add_subtree(mtp2_item, ett_mtp2);
dissect_mtp2_su(tvb, pinfo, mtp2_item, mtp2_tree, tree, validate_crc);
}
diff --git a/epan/dissectors/packet-mtp3.c b/epan/dissectors/packet-mtp3.c
index 97c5757e9a..ba2f6e2c7e 100644
--- a/epan/dissectors/packet-mtp3.c
+++ b/epan/dissectors/packet-mtp3.c
@@ -458,11 +458,9 @@ dissect_mtp3_sio(tvbuff_t *tvb, proto_tree *mtp3_tree,
mtp3_addr_pc_t *mtp3_addr_opc, mtp3_addr_pc_t *mtp3_addr_dpc)
{
guint8 sio;
- proto_item *sio_item;
proto_tree *sio_tree;
- sio_item = proto_tree_add_text(mtp3_tree, tvb, SIO_OFFSET, SIO_LENGTH, "Service information octet");
- sio_tree = proto_item_add_subtree(sio_item, ett_mtp3_sio);
+ sio_tree = proto_tree_add_subtree(mtp3_tree, tvb, SIO_OFFSET, SIO_LENGTH, ett_mtp3_sio, NULL, "Service information octet");
sio = tvb_get_guint8(tvb, SIO_OFFSET);
proto_tree_add_uint(sio_tree, hf_mtp3_network_indicator, tvb, SIO_OFFSET, SIO_LENGTH, sio);
@@ -497,7 +495,7 @@ dissect_mtp3_routing_label(tvbuff_t *tvb, packet_info *pinfo, proto_tree *mtp3_t
mtp3_addr_pc_t *mtp3_addr_opc, mtp3_addr_pc_t *mtp3_addr_dpc)
{
guint32 label, dpc, opc;
- proto_item *label_item, *label_dpc_item, *label_opc_item;
+ proto_item *label_dpc_item, *label_opc_item;
proto_item *hidden_item;
proto_tree *label_tree;
proto_tree *pc_subtree;
@@ -507,8 +505,7 @@ dissect_mtp3_routing_label(tvbuff_t *tvb, packet_info *pinfo, proto_tree *mtp3_t
switch (mtp3_standard) {
case ITU_STANDARD:
- label_item = proto_tree_add_text(mtp3_tree, tvb, ROUTING_LABEL_OFFSET, ITU_ROUTING_LABEL_LENGTH, "Routing label");
- label_tree = proto_item_add_subtree(label_item, ett_mtp3_label);
+ label_tree = proto_tree_add_subtree(mtp3_tree, tvb, ROUTING_LABEL_OFFSET, ITU_ROUTING_LABEL_LENGTH, ett_mtp3_label, NULL, "Routing label");
label = tvb_get_letohl(tvb, ROUTING_LABEL_OFFSET);
@@ -554,9 +551,7 @@ dissect_mtp3_routing_label(tvbuff_t *tvb, packet_info *pinfo, proto_tree *mtp3_t
}
/* Create the Routing Label Tree */
- label_item = proto_tree_add_text(mtp3_tree, tvb, ROUTING_LABEL_OFFSET, ANSI_ROUTING_LABEL_LENGTH, "Routing label");
- label_tree = proto_item_add_subtree(label_item, ett_mtp3_label);
-
+ label_tree = proto_tree_add_subtree(mtp3_tree, tvb, ROUTING_LABEL_OFFSET, ANSI_ROUTING_LABEL_LENGTH, ett_mtp3_label, NULL, "Routing label");
/* create and fill the DPC tree */
dissect_mtp3_3byte_pc(tvb, ANSI_DPC_OFFSET, label_tree, ett_mtp3_label_dpc, hf_dpc_string, hf_mtp3_dpc_network,
@@ -582,8 +577,7 @@ dissect_mtp3_routing_label(tvbuff_t *tvb, packet_info *pinfo, proto_tree *mtp3_t
break;
case JAPAN_STANDARD:
- label_item = proto_tree_add_text(mtp3_tree, tvb, ROUTING_LABEL_OFFSET, JAPAN_ROUTING_LABEL_LENGTH, "Routing label");
- label_tree = proto_item_add_subtree(label_item, ett_mtp3_label);
+ label_tree = proto_tree_add_subtree(mtp3_tree, tvb, ROUTING_LABEL_OFFSET, JAPAN_ROUTING_LABEL_LENGTH, ett_mtp3_label, NULL, "Routing label");
label_dpc_item = proto_tree_add_item(label_tree, hf_mtp3_japan_dpc, tvb, ROUTING_LABEL_OFFSET, JAPAN_PC_LENGTH, ENC_LITTLE_ENDIAN);
dpc = tvb_get_letohs(tvb, ROUTING_LABEL_OFFSET);
@@ -707,7 +701,7 @@ dissect_mtp3(tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree)
/* Set up structures needed to add the protocol subtree and manage it */
proto_item *mtp3_item = NULL, *gen_item;
- proto_tree *mtp3_tree = NULL;
+ proto_tree *mtp3_tree;
pref_mtp3_standard = mtp3_standard;
@@ -750,10 +744,8 @@ dissect_mtp3(tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree)
break;
};
- if (tree) {
/* create display subtree for the protocol */
mtp3_tree = proto_item_add_subtree(mtp3_item, ett_mtp3);
- }
mtp3_addr_opc = (mtp3_addr_pc_t *)wmem_alloc0(pinfo->pool, sizeof(mtp3_addr_pc_t));
mtp3_addr_dpc = (mtp3_addr_pc_t *)wmem_alloc0(pinfo->pool, sizeof(mtp3_addr_pc_t));
diff --git a/epan/dissectors/packet-mtp3mg.c b/epan/dissectors/packet-mtp3mg.c
index 97e861d243..11cafb6130 100644
--- a/epan/dissectors/packet-mtp3mg.c
+++ b/epan/dissectors/packet-mtp3mg.c
@@ -972,8 +972,8 @@ dissect_mtp3mg(tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree)
tvbuff_t *payload_tvb;
/* Set up structures needed to add the protocol subtree and manage it */
- proto_item *mtp3mg_item = NULL;
- proto_tree *mtp3mg_tree = NULL;
+ proto_item *mtp3mg_item;
+ proto_tree *mtp3mg_tree;
/* Make entries in Protocol column on summary display */
switch(mtp3_standard) {
@@ -991,11 +991,9 @@ dissect_mtp3mg(tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree)
break;
};
- if (tree) {
/* create display subtree for the protocol */
mtp3mg_item = proto_tree_add_item(tree, proto_mtp3mg, tvb, 0, -1, ENC_NA);
mtp3mg_tree = proto_item_add_subtree(mtp3mg_item, ett_mtp3mg);
- }
/*
* Dissect the message
diff --git a/epan/dissectors/packet-mux27010.c b/epan/dissectors/packet-mux27010.c
index a7793fb216..0ac249ef0c 100644
--- a/epan/dissectors/packet-mux27010.c
+++ b/epan/dissectors/packet-mux27010.c
@@ -874,8 +874,8 @@ dissect_mux27010(tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree)
/*If frame has data inside the length_value is > 0*/
if (cc.length_value > 0) {
/*Add another subtree to the control channel subtree => in this subtree the details of control channel values/data will be displayed*/
- tf_ctr = proto_tree_add_text(field_tree, tvb, offset, cc.length_value, "Data: %i Byte(s)", cc.length_value);
- field_tree_ctr = proto_item_add_subtree(tf_ctr, ett_mux27010_controlchannelvalue);
+ field_tree_ctr = proto_tree_add_subtree_format(field_tree, tvb, offset, cc.length_value,
+ ett_mux27010_controlchannelvalue, NULL, "Data: %i Byte(s)", cc.length_value);
/*Get data of frame*/
offset += getControlChannelValues(tvb, field_tree_ctr, offset, &cc, &cc_type);