diff options
author | Michael Mann <mmann78@netscape.net> | 2014-07-01 18:31:05 -0400 |
---|---|---|
committer | Michael Mann <mmann78@netscape.net> | 2014-07-04 16:59:14 +0000 |
commit | c7a6e6fa130611941a5d05e7646d7c38d78b2d0a (patch) | |
tree | 435964d38acd7196e6d6aa58be80e44634ebfa9c | |
parent | 93517043e96c26a1d3dad49c2f57b345e3bbbba0 (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>
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, ¶meter_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, ¶meter_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, ¶meter_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, ¶meter_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, ¶meter_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, ¶meter_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); |