diff options
author | Michael Mann <mmann78@netscape.net> | 2014-06-24 23:24:14 -0400 |
---|---|---|
committer | Michael Mann <mmann78@netscape.net> | 2014-06-25 16:35:14 +0000 |
commit | 888f22de1669e75702c23fe377b1ed166bd89308 (patch) | |
tree | 87de06ca92a86a103ab5724da7f8b910422b7afc /epan | |
parent | 8ac87dccde4544e5397f0d741d2ec9f230971b43 (diff) |
convert to proto_tree_add_subtree[_format]
Change-Id: I2ea1892b5963cc5578cbdd2b03029ca8424f2267
Reviewed-on: https://code.wireshark.org/review/2640
Tested-by: Michael Mann <mmann78@netscape.net>
Reviewed-by: Michael Mann <mmann78@netscape.net>
Diffstat (limited to 'epan')
26 files changed, 288 insertions, 536 deletions
diff --git a/epan/dissectors/packet-dcm.c b/epan/dissectors/packet-dcm.c index 363c5ab4e3..64713ee757 100644 --- a/epan/dissectors/packet-dcm.c +++ b/epan/dissectors/packet-dcm.c @@ -4674,8 +4674,8 @@ dissect_dcm_assoc_header(tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree, gu * Decode association header */ - proto_item *assoc_header_pitem = NULL; - proto_tree *assoc_header_ptree = NULL; /* Tree for item details */ + proto_item *assoc_header_pitem; + proto_tree *assoc_header_ptree; /* Tree for item details */ guint16 assoc_ver; @@ -4692,8 +4692,7 @@ dissect_dcm_assoc_header(tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree, gu guint8 abort_source; guint8 abort_reason; - assoc_header_pitem = proto_tree_add_text(tree, tvb, offset, pdu_len, "Association Header"); - assoc_header_ptree = proto_item_add_subtree(assoc_header_pitem, ett_assoc_header); + assoc_header_ptree = proto_tree_add_subtree(tree, tvb, offset, pdu_len, ett_assoc_header, &assoc_header_pitem, "Association Header"); switch (pdu_type) { case 1: /* Association Request */ @@ -4900,8 +4899,8 @@ dissect_dcm_assoc_item(tvbuff_t *tvb, proto_tree *tree, guint32 offset, * */ - proto_tree *assoc_item_ptree = NULL; /* Tree for item details */ - proto_item *assoc_item_pitem = NULL; + proto_tree *assoc_item_ptree; /* Tree for item details */ + proto_item *assoc_item_pitem; dcm_uid_t *uid = NULL; guint32 item_number = 0; @@ -4919,8 +4918,7 @@ dissect_dcm_assoc_item(tvbuff_t *tvb, proto_tree *tree, guint32 offset, item_type = tvb_get_guint8(tvb, offset); item_len = tvb_get_ntohs(tvb, offset+2); - assoc_item_pitem = proto_tree_add_text(tree, tvb, offset, item_len+4, "%s", pitem_prefix); - assoc_item_ptree = proto_item_add_subtree(assoc_item_pitem, ett_subtree); + assoc_item_ptree = proto_tree_add_subtree(tree, tvb, offset, item_len+4, ett_subtree, &assoc_item_pitem, pitem_prefix); proto_tree_add_uint(assoc_item_ptree, *hf_type, tvb, offset, 1, item_type); proto_tree_add_uint(assoc_item_ptree, *hf_len, tvb, offset+2, 2, item_len); @@ -5175,8 +5173,8 @@ dissect_dcm_pctx(tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree, In the response, set the accepted transfer syntax, if any */ - proto_tree *pctx_ptree = NULL; /* Tree for presentation context details */ - proto_item *pctx_pitem = NULL; + proto_tree *pctx_ptree; /* Tree for presentation context details */ + proto_item *pctx_pitem; dcm_state_pctx_t *pctx = NULL; @@ -5207,8 +5205,7 @@ dissect_dcm_pctx(tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree, item_type = tvb_get_guint8(tvb, offset-4); item_len = tvb_get_ntohs(tvb, offset-2); - pctx_pitem = proto_tree_add_text(tree, tvb, offset-4, item_len+4, "%s", pitem_prefix); - pctx_ptree = proto_item_add_subtree(pctx_pitem, ett_assoc_pctx); + pctx_ptree = proto_tree_add_subtree(tree, tvb, offset-4, item_len+4, ett_assoc_pctx, &pctx_pitem, pitem_prefix); pctx_id = tvb_get_guint8(tvb, offset); pctx_result = tvb_get_guint8(tvb, 2 + offset); /* only set in responses, otherwise reserved and 0x00 */ @@ -6306,18 +6303,20 @@ dissect_dcm_tag(tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree, if (is_sequence | is_item) { if (global_dcm_seq_subtree) { - /* Use different ett_ for Sequences & Items, so that fold/unfold state makes sense */ - seq_ptree = proto_item_add_subtree(tag_pitem, (is_sequence ? ett_dcm_data_seq : ett_dcm_data_item)); - if (global_dcm_tag_subtree) tag_ptree = seq_ptree; - else tag_ptree = NULL; + /* Use different ett_ for Sequences & Items, so that fold/unfold state makes sense */ + seq_ptree = proto_item_add_subtree(tag_pitem, (is_sequence ? ett_dcm_data_seq : ett_dcm_data_item)); + if (global_dcm_tag_subtree) + tag_ptree = seq_ptree; + else + tag_ptree = NULL; } else { seq_ptree = tree; if (global_dcm_tag_subtree) { - tag_ptree = proto_item_add_subtree(tag_pitem, ett_dcm_data_tag); + tag_ptree = proto_item_add_subtree(tag_pitem, ett_dcm_data_tag); } else { - tag_ptree = NULL; + tag_ptree = NULL; } } } @@ -6798,8 +6797,7 @@ dissect_dcm_pdu_data(tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree, pdv_len = tvb_get_ntohl(tvb, offset); - pdv_pitem = proto_tree_add_text(tree, tvb, offset, pdv_len+4, "PDV"); - pdv_ptree = proto_item_add_subtree(pdv_pitem, ett_dcm_data_pdv); + pdv_ptree = proto_tree_add_subtree(tree, tvb, offset, pdv_len+4, ett_dcm_data_pdv, &pdv_pitem, "PDV"); pdvlen_item = proto_tree_add_item(pdv_ptree, hf_dcm_pdv_len, tvb, offset, 4, ENC_BIG_ENDIAN); offset += 4; diff --git a/epan/dissectors/packet-dcom-sysact.c b/epan/dissectors/packet-dcom-sysact.c index d3a2ce4d4f..f3dc972034 100644 --- a/epan/dissectors/packet-dcom-sysact.c +++ b/epan/dissectors/packet-dcom-sysact.c @@ -312,9 +312,7 @@ dissect_dcom_ActivationPropertiesCustomerHdr(tvbuff_t *tvb, gint offset, packet_ proto_item *sub_item; proto_tree *sub_tree; - sub_item = proto_tree_add_text(tree, tvb, offset, 0, "CustomHeader"); - - sub_tree = proto_item_add_subtree(sub_item, ett_commonheader); + sub_tree = proto_tree_add_subtree(tree, tvb, offset, 0, ett_commonheader, &sub_item, "CustomHeader"); old_offset = offset; offset = dissect_TypeSzCommPrivHdr(tvb, offset, pinfo, sub_tree, di, drep); @@ -388,8 +386,7 @@ dissect_dcom_ActivationPropertiesBody(tvbuff_t *tvb, gint offset, packet_info *p min_idx = MIN(pg->id_idx, pg->size_idx); } - sub_item = proto_tree_add_text(tree, tvb, offset, 0, "Properties"); - sub_tree = proto_item_add_subtree(sub_item, ett_properties); + sub_tree = proto_tree_add_subtree(tree, tvb, offset, 0, ett_properties, &sub_item, "Properties"); old_offset = offset; for (i = 0; i < min_idx; i++) { @@ -442,8 +439,7 @@ dissect_dcom_ContextMarshaler(tvbuff_t *tvb, gint offset, packet_info *pinfo, guint32 u32Count; old_offset = offset; - sub_item = proto_tree_add_text(tree, tvb, offset, 0, "Context"); - sub_tree = proto_item_add_subtree(sub_item, ett_dcom_context); + sub_tree = proto_tree_add_subtree(tree, tvb, offset, 0, ett_dcom_context, &sub_item, "Context"); offset = dissect_dcom_COMVERSION(tvb, offset, pinfo, sub_tree, di, drep, NULL, NULL); @@ -478,7 +474,6 @@ static int dissect_dcom_SpecialSystemProperties(tvbuff_t *tvb, gint offset, packet_info *pinfo, proto_tree *tree, dcerpc_info *di, guint8 *drep, gint size) { - proto_item *sub_item, *it; proto_tree *sub_tree, *tr; gint old_offset, len, i; @@ -489,8 +484,7 @@ dissect_dcom_SpecialSystemProperties(tvbuff_t *tvb, gint offset, packet_info *pi size = -1; } - sub_item = proto_tree_add_text(tree, tvb, offset, size, "SpecialSystemProperties"); - sub_tree = proto_item_add_subtree(sub_item, ett_dcom_spclsysprop); + sub_tree = proto_tree_add_subtree(tree, tvb, offset, size, ett_dcom_spclsysprop, NULL, "SpecialSystemProperties"); offset = dissect_TypeSzCommPrivHdr(tvb, offset, pinfo, sub_tree, di, drep); @@ -520,9 +514,8 @@ dissect_dcom_SpecialSystemProperties(tvbuff_t *tvb, gint offset, packet_info *pi * hf_sysact_spsysprop_hwnd, NULL); * */ - it = proto_tree_add_text(sub_tree, tvb, offset, sizeof(guint32)*8, - "Reserved: 8 DWORDs"); - tr = proto_item_add_subtree(it, ett_dcom_reserved); + tr = proto_tree_add_subtree(sub_tree, tvb, offset, sizeof(guint32)*8, + ett_dcom_reserved, NULL, "Reserved: 8 DWORDs"); for (i = 0; i < 8; i++) { offset = dissect_dcom_DWORD(tvb, offset, pinfo, tr, di, drep, hf_sysact_res, NULL); @@ -565,7 +558,6 @@ static int dissect_dcom_InstantiationInfo(tvbuff_t *tvb, gint offset, packet_info *pinfo, proto_tree *tree, dcerpc_info *di, guint8 *drep, gint size) { - proto_item *sub_item; proto_tree *sub_tree; gint old_offset, len; @@ -576,8 +568,7 @@ dissect_dcom_InstantiationInfo(tvbuff_t *tvb, gint offset, packet_info *pinfo, size = -1; } - sub_item = proto_tree_add_text(tree, tvb, offset, size, "InstantiationInfo"); - sub_tree = proto_item_add_subtree(sub_item, ett_dcom_instantianinfo); + sub_tree = proto_tree_add_subtree(tree, tvb, offset, size, ett_dcom_instantianinfo, NULL, "InstantiationInfo"); offset = dissect_TypeSzCommPrivHdr(tvb, offset, pinfo, sub_tree, di, drep); @@ -645,7 +636,6 @@ static int dissect_dcom_ActivationContextInfo(tvbuff_t *tvb, gint offset, packet_info *pinfo, proto_tree *tree, dcerpc_info *di, guint8 *drep, gint size) { - proto_item *sub_item; proto_tree *sub_tree; gint old_offset, len; @@ -656,8 +646,7 @@ dissect_dcom_ActivationContextInfo(tvbuff_t *tvb, gint offset, packet_info *pinf size = -1; } - sub_item = proto_tree_add_text(tree, tvb, offset, size, "ActivationContextInfo"); - sub_tree = proto_item_add_subtree(sub_item, ett_dcom_actctxinfo); + sub_tree = proto_tree_add_subtree(tree, tvb, offset, size, ett_dcom_actctxinfo, NULL, "ActivationContextInfo"); offset = dissect_TypeSzCommPrivHdr(tvb, offset, pinfo, sub_tree, di, drep); @@ -739,7 +728,6 @@ static int dissect_dcom_SecurtiyInfo(tvbuff_t *tvb, gint offset, packet_info *pinfo, proto_tree *tree, dcerpc_info *di, guint8 *drep, gint size) { - proto_item *sub_item; proto_tree *sub_tree; gint old_offset, len; @@ -750,8 +738,7 @@ dissect_dcom_SecurtiyInfo(tvbuff_t *tvb, gint offset, packet_info *pinfo, size = -1; } - sub_item = proto_tree_add_text(tree, tvb, offset, size, "SecurityInfo"); - sub_tree = proto_item_add_subtree(sub_item, ett_dcom_securityinfo); + sub_tree = proto_tree_add_subtree(tree, tvb, offset, size, ett_dcom_securityinfo, NULL, "SecurityInfo"); offset = dissect_TypeSzCommPrivHdr(tvb, offset, pinfo, sub_tree, di ,drep); @@ -782,7 +769,6 @@ static int dissect_dcom_LocationInfo(tvbuff_t *tvb, gint offset, packet_info *pinfo, proto_tree *tree, dcerpc_info *di, guint8 *drep, gint size) { - proto_item *sub_item; proto_tree *sub_tree; gint old_offset, len; @@ -793,8 +779,7 @@ dissect_dcom_LocationInfo(tvbuff_t *tvb, gint offset, packet_info *pinfo, size = -1; } - sub_item = proto_tree_add_text(tree, tvb, offset, size, "LocationInfo"); - sub_tree = proto_item_add_subtree(sub_item, ett_dcom_locationinfo); + sub_tree = proto_tree_add_subtree(tree, tvb, offset, size, ett_dcom_locationinfo, NULL, "LocationInfo"); offset = dissect_TypeSzCommPrivHdr(tvb, offset, pinfo, sub_tree, di, drep); @@ -857,8 +842,7 @@ dissect_dcom_customREMOTE_REQUEST_SCM_INFO(tvbuff_t *tvb, gint offset, return offset; } - sub_item = proto_tree_add_text(tree, tvb, offset, 0, "RemoteRequest"); - sub_tree = proto_item_add_subtree(sub_item, ett_dcom_rmtrqst); + sub_tree = proto_tree_add_subtree(tree, tvb, offset, 0, ett_dcom_rmtrqst, &sub_item, "RemoteRequest"); old_offset = offset; offset = dissect_dcom_DWORD(tvb, offset, pinfo, sub_tree, di, drep, @@ -878,7 +862,6 @@ static int dissect_dcom_ScmRqstInfo(tvbuff_t *tvb, gint offset, packet_info *pinfo, proto_tree *tree, dcerpc_info *di, guint8 *drep, gint size) { - proto_item *sub_item; proto_tree *sub_tree; gint old_offset, len; @@ -889,8 +872,7 @@ dissect_dcom_ScmRqstInfo(tvbuff_t *tvb, gint offset, packet_info *pinfo, size = -1; } - sub_item = proto_tree_add_text(tree, tvb, offset, size, "ScmRequestInfo"); - sub_tree = proto_item_add_subtree(sub_item, ett_dcom_scmrqstinfo); + sub_tree = proto_tree_add_subtree(tree, tvb, offset, size, ett_dcom_scmrqstinfo, NULL, "ScmRequestInfo"); offset = dissect_TypeSzCommPrivHdr(tvb, offset, pinfo, sub_tree, di, drep); @@ -989,7 +971,6 @@ static int dissect_dcom_PropsOutInfo(tvbuff_t *tvb, gint offset, packet_info *pinfo, proto_tree *tree, dcerpc_info *di, guint8 *drep, gint size) { - proto_item *sub_item; proto_tree *sub_tree; gint old_offset, len; @@ -1000,8 +981,7 @@ dissect_dcom_PropsOutInfo(tvbuff_t *tvb, gint offset, packet_info *pinfo, size = -1; } - sub_item = proto_tree_add_text(tree, tvb, offset, size, "PropertiesOutput"); - sub_tree = proto_item_add_subtree(sub_item, ett_dcom_propsoutput); + sub_tree = proto_tree_add_subtree(tree, tvb, offset, size, ett_dcom_propsoutput, NULL, "PropertiesOutput"); offset = dissect_TypeSzCommPrivHdr(tvb, offset, pinfo, sub_tree, di, drep); @@ -1052,8 +1032,7 @@ dissect_dcom_OxidBindings(tvbuff_t *tvb, gint offset, } old_offset = offset; - sub_item = proto_tree_add_text(tree, tvb, offset, 0, "OxidBindings"); - sub_tree = proto_item_add_subtree(sub_item, ett_dcom_oxidbinding); + sub_tree = proto_tree_add_subtree(tree, tvb, offset, 0, ett_dcom_oxidbinding, &sub_item, "OxidBindings"); offset = dissect_dcom_dcerpc_array_size(tvb, offset, pinfo, sub_tree, di, drep, NULL); offset = dissect_dcom_DUALSTRINGARRAY(tvb, offset, pinfo, sub_tree, di, drep, @@ -1076,8 +1055,7 @@ dissect_dcom_customREMOTE_REPLY_SCM_INFO(tvbuff_t *tvb, gint offset, return offset; } - sub_item = proto_tree_add_text(tree, tvb, offset, 0, "RemoteReply"); - sub_tree = proto_item_add_subtree(sub_item, ett_dcom_rmtresp); + sub_tree = proto_tree_add_subtree(tree, tvb, offset, 0, ett_dcom_rmtresp, &sub_item, "RemoteReply"); old_offset = offset; offset = dissect_dcom_ID(tvb, offset, pinfo, sub_tree, di, drep, @@ -1102,7 +1080,6 @@ static int dissect_dcom_ScmReplyInfo(tvbuff_t *tvb, gint offset, packet_info *pinfo, proto_tree *tree, dcerpc_info *di, guint8 *drep, gint size) { - proto_item *sub_item; proto_tree *sub_tree; gint old_offset, len; @@ -1113,8 +1090,7 @@ dissect_dcom_ScmReplyInfo(tvbuff_t *tvb, gint offset, packet_info *pinfo, size = -1; } - sub_item = proto_tree_add_text(tree, tvb, offset, size, "ScmReplyInfo"); - sub_tree = proto_item_add_subtree(sub_item, ett_dcom_scmrespinfo); + sub_tree = proto_tree_add_subtree(tree, tvb, offset, size, ett_dcom_scmrespinfo, NULL, "ScmReplyInfo"); offset = dissect_TypeSzCommPrivHdr(tvb, offset, pinfo, sub_tree, di, drep); diff --git a/epan/dissectors/packet-devicenet.c b/epan/dissectors/packet-devicenet.c index b5c669754e..a8a8264fef 100644 --- a/epan/dissectors/packet-devicenet.c +++ b/epan/dissectors/packet-devicenet.c @@ -270,13 +270,11 @@ static const value_string devicenet_io_attribute_vals[] = { static gint body_type_8_over_8_dissection(guint8 data_length, proto_tree *devicenet_tree, tvbuff_t *tvb, packet_info *pinfo _U_, gint offset) { - proto_item *devicenet_8_8; guint16 class_id, instance, attribute; attribute_info_t* att_info; gint start_offset = offset, length; - devicenet_8_8 = proto_tree_add_text(devicenet_tree, tvb, offset, -1, "DeviceNet 8/8"); - devicenet_tree = proto_item_add_subtree(devicenet_8_8, ett_devicenet_8_8); + devicenet_tree = proto_tree_add_subtree(devicenet_tree, tvb, offset, -1, ett_devicenet_8_8, NULL, "DeviceNet 8/8"); proto_tree_add_item(devicenet_tree, hf_devicenet_class8, tvb, offset, 1, ENC_LITTLE_ENDIAN); class_id = tvb_get_guint8(tvb, offset); @@ -310,12 +308,10 @@ static gint body_type_8_over_8_dissection(guint8 data_length, proto_tree *device static gint body_type_8_over_16_dissection(guint8 data_length, proto_tree *devicenet_tree, tvbuff_t *tvb, packet_info *pinfo _U_, gint offset) { - proto_item *devicenet_8_16; guint16 class_id, instance, attribute; attribute_info_t* att_info; - devicenet_8_16 = proto_tree_add_text(devicenet_tree, tvb, offset, -1, "DeviceNet 8/16"); - devicenet_tree = proto_item_add_subtree(devicenet_8_16, ett_devicenet_8_16); + devicenet_tree = proto_tree_add_subtree(devicenet_tree, tvb, offset, -1, ett_devicenet_8_16, NULL, "DeviceNet 8/16"); proto_tree_add_item(devicenet_tree, hf_devicenet_class8, tvb, offset, 1, ENC_LITTLE_ENDIAN); class_id = tvb_get_guint8(tvb, offset); @@ -341,12 +337,10 @@ static gint body_type_8_over_16_dissection(guint8 data_length, proto_tree *devic static gint body_type_16_over_8_dissection(guint8 data_length, proto_tree *devicenet_tree, tvbuff_t *tvb, packet_info *pinfo _U_, gint offset) { - proto_item *devicenet_16_8; guint16 class_id, instance, attribute; attribute_info_t* att_info; - devicenet_16_8 = proto_tree_add_text(devicenet_tree, tvb, offset, -1, "DeviceNet 16/8"); - devicenet_tree = proto_item_add_subtree(devicenet_16_8, ett_devicenet_16_8); + devicenet_tree = proto_tree_add_subtree(devicenet_tree, tvb, offset, -1, ett_devicenet_16_8, NULL, "DeviceNet 16/8"); proto_tree_add_item(devicenet_tree, hf_devicenet_class16, tvb, offset, 2, ENC_LITTLE_ENDIAN); class_id = tvb_get_letohs(tvb, offset); @@ -373,13 +367,10 @@ static gint body_type_16_over_8_dissection(guint8 data_length, proto_tree *devic static gint body_type_16_over_16_dissection(guint8 data_length, proto_tree *devicenet_tree, tvbuff_t *tvb, packet_info *pinfo _U_, gint offset) { - proto_item *devicenet_16_16; - guint16 class_id, instance, attribute; attribute_info_t* att_info; - devicenet_16_16 = proto_tree_add_text(devicenet_tree, tvb, offset, 4, "DeviceNet 16/16"); - devicenet_tree = proto_item_add_subtree(devicenet_16_16, ett_devicenet_16_16); + devicenet_tree = proto_tree_add_subtree(devicenet_tree, tvb, offset, 4, ett_devicenet_16_16, NULL, "DeviceNet 16/16"); proto_tree_add_item(devicenet_tree, hf_devicenet_class16, tvb, offset, 2, ENC_LITTLE_ENDIAN); class_id = tvb_get_letohs(tvb, offset); @@ -410,7 +401,7 @@ struct can_identifier static int dissect_devicenet(tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree, void* data) { - proto_item *ti, *can_id_item, *devicenet_contents, + proto_item *ti, *can_id_item, *msg_id_item, *service_item; proto_tree *devicenet_tree, *can_tree, *content_tree; @@ -436,8 +427,7 @@ static int dissect_devicenet(tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree ti = proto_tree_add_item(tree, proto_devicenet, tvb, offset, -1, ENC_NA); devicenet_tree = proto_item_add_subtree(ti, ett_devicenet); - ti = proto_tree_add_text(devicenet_tree, tvb, 0, 0, "CAN Identifier: 0x%04x", can_id.id); - can_tree = proto_item_add_subtree(ti, ett_devicenet_can); + can_tree = proto_tree_add_subtree_format(devicenet_tree, tvb, 0, 0, ett_devicenet_can, NULL, "CAN Identifier: 0x%04x", can_id.id); can_id_item = proto_tree_add_uint(can_tree, hf_devicenet_can_id, tvb, 0, 0, can_id.id); PROTO_ITEM_SET_GENERATED(can_id_item); @@ -482,8 +472,7 @@ static int dissect_devicenet(tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree *src_address = (guint8)((can_id.id & MESSAGE_GROUP_2_MAC_ID_MASK) >> 3); SET_ADDRESS(&pinfo->src, AT_DEVICENET, 1, (const void*)src_address); - devicenet_contents = proto_tree_add_text(devicenet_tree, tvb, offset, -1, "Contents"); - content_tree = proto_item_add_subtree(devicenet_contents, ett_devicenet_contents); + content_tree = proto_tree_add_subtree(devicenet_tree, tvb, offset, -1, ett_devicenet_contents, NULL, "Contents"); switch (message_id) { @@ -551,8 +540,7 @@ static int dissect_devicenet(tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree { col_set_str(pinfo->cinfo, COL_INFO, "Group 3 Message Fragment"); - devicenet_contents = proto_tree_add_text(devicenet_tree, tvb, offset, -1, "Fragmentation"); - content_tree = proto_item_add_subtree(devicenet_contents, ett_devicenet_contents); + content_tree = proto_tree_add_subtree(devicenet_tree, tvb, offset, -1, ett_devicenet_contents, NULL, "Fragmentation"); proto_tree_add_item(content_tree, hf_devicenet_fragment_type, tvb, offset, 1, ENC_NA); proto_tree_add_item(content_tree, hf_devicenet_fragment_count, tvb, offset, 1, ENC_NA); @@ -566,10 +554,9 @@ static int dissect_devicenet(tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree { service_rr = tvb_get_guint8(tvb, offset); - devicenet_contents = proto_tree_add_text(devicenet_tree, tvb, offset, -1, "Service: %s (%s)", - val_to_str_const(service_rr & CIP_SC_MASK, devicenet_service_code_vals, "Unknown"), + content_tree = proto_tree_add_subtree_format(devicenet_tree, tvb, offset, -1, ett_devicenet_contents, NULL, + "Service: %s (%s)", val_to_str_const(service_rr & CIP_SC_MASK, devicenet_service_code_vals, "Unknown"), service_rr & CIP_SC_RESPONSE_MASK ? "Response" : "Request"); - content_tree = proto_item_add_subtree(devicenet_contents, ett_devicenet_contents); proto_tree_add_item(content_tree, hf_devicenet_rr_bit, tvb, offset, 1, ENC_NA); service_item = proto_tree_add_item(content_tree, hf_devicenet_service_code, tvb, offset, 1, ENC_NA); diff --git a/epan/dissectors/packet-dhcpv6.c b/epan/dissectors/packet-dhcpv6.c index 66d493ce9c..59560096a7 100644 --- a/epan/dissectors/packet-dhcpv6.c +++ b/epan/dissectors/packet-dhcpv6.c @@ -1286,10 +1286,9 @@ dhcpv6_option(tvbuff_t *tvb, packet_info *pinfo, proto_tree *bp_tree, return 0; } - option_item = proto_tree_add_text(bp_tree, tvb, off, 4 + optlen, - "%s", val_to_str_ext(opttype, &opttype_vals_ext, "DHCP option %u")); + subtree = proto_tree_add_subtree(bp_tree, tvb, off, 4 + optlen, ett_dhcpv6_option, &option_item, + val_to_str_ext(opttype, &opttype_vals_ext, "DHCP option %u")); - subtree = proto_item_add_subtree(option_item, ett_dhcpv6_option); proto_tree_add_item(subtree, hf_option_type, tvb, off, 2, ENC_BIG_ENDIAN); proto_tree_add_item(subtree, hf_option_length, tvb, off + 2, 2, ENC_BIG_ENDIAN); off += 4; @@ -1368,9 +1367,8 @@ dhcpv6_option(tvbuff_t *tvb, packet_info *pinfo, proto_tree *bp_tree, while (optlen > temp_optlen) { subopt_type = tvb_get_ntohs(tvb, off + temp_optlen); subopt_len = tvb_get_ntohs(tvb, off + 2 + temp_optlen); - ti = proto_tree_add_text(subtree, tvb, off+temp_optlen, 4 + subopt_len, - "%s", val_to_str(subopt_type, ntp_server_opttype_vals, "NTP Server suboption %u")); - subtree_2 = proto_item_add_subtree(ti, ett_dhcpv6_netserver_option); + subtree_2 = proto_tree_add_subtree(subtree, tvb, off+temp_optlen, 4 + subopt_len, ett_dhcpv6_netserver_option, &ti, + val_to_str(subopt_type, ntp_server_opttype_vals, "NTP Server suboption %u")); proto_tree_add_item(subtree_2, hf_option_ntpserver_type, tvb, off + temp_optlen, 2, ENC_BIG_ENDIAN); proto_tree_add_item(subtree_2, hf_option_ntpserver_length, tvb, off + temp_optlen + 2, 2, ENC_BIG_ENDIAN); temp_optlen += 4; @@ -1569,9 +1567,8 @@ dhcpv6_option(tvbuff_t *tvb, packet_info *pinfo, proto_tree *bp_tree, while ((optlen - 4 - optoffset) > 0) { int olen = tvb_get_ntohs(tvb, off + optoffset + 6); - ti = proto_tree_add_text(subtree, tvb, off + optoffset + 4, - 4 + olen, "option"); - subtree_2 = proto_item_add_subtree(ti, ett_dhcpv6_option_vsoption); + subtree_2 = proto_tree_add_subtree(subtree, tvb, off + optoffset + 4, + 4 + olen, ett_dhcpv6_option_vsoption, NULL, "option"); proto_tree_add_item(subtree_2, hf_vendoropts_enterprise_option_code, tvb, off + optoffset + 4, 2, ENC_BIG_ENDIAN); proto_tree_add_item(subtree_2, hf_vendoropts_enterprise_option_length, tvb, off + optoffset + 6, 2, ENC_BIG_ENDIAN); proto_tree_add_item(subtree_2, hf_vendoropts_enterprise_option_data, tvb, off + optoffset + 8, olen, ENC_NA); @@ -2009,8 +2006,7 @@ dissect_dhcpv6_bulk_leasequery_pdu(tvbuff_t *tvb, packet_info *pinfo, proto_tree col_add_fstr(pinfo->cinfo, COL_INFO, "%s, Transaction ID: %5u", val_to_str_ext_const(msg_type, &msgtype_vals_ext, "Unknown"), trans_id); - ti = proto_tree_add_text(bulk_tree, tvb, offset, -1, "DHCPv6 Options"); - option_tree = proto_item_add_subtree(ti, ett_dhcpv6_bulk_leasequery_options); + option_tree = proto_tree_add_subtree(bulk_tree, tvb, offset, -1, ett_dhcpv6_bulk_leasequery_options, NULL, "DHCPv6 Options"); end = size + 2; while ((offset < end) && !at_end) offset += dhcpv6_option(tvb, pinfo, option_tree, FALSE, offset, diff --git a/epan/dissectors/packet-diameter_3gpp.c b/epan/dissectors/packet-diameter_3gpp.c index 74370a53ab..9d14cd33a8 100644 --- a/epan/dissectors/packet-diameter_3gpp.c +++ b/epan/dissectors/packet-diameter_3gpp.c @@ -486,13 +486,11 @@ dissect_diameter_3gpp_feature_list(tvbuff_t *tvb, packet_info *pinfo _U_, proto_ static int dissect_diameter_3gpp_path(tvbuff_t *tvb, packet_info *pinfo _U_, proto_tree *tree, void *data _U_) { - proto_item* item; proto_tree *sub_tree; int offset = 0, comma_offset; int end_offset = tvb_length(tvb) - 1; - item = proto_tree_add_text(tree, tvb, offset, -1,"Paths"); - sub_tree = proto_item_add_subtree(item,diameter_3gpp_path_ett); + sub_tree = proto_tree_add_subtree(tree, tvb, offset, -1, diameter_3gpp_path_ett, NULL, "Paths"); while (offset < end_offset){ comma_offset = tvb_find_guint8(tvb, offset, -1, ','); diff --git a/epan/dissectors/packet-dis.c b/epan/dissectors/packet-dis.c index b9d9a0e77f..2e1aa051b1 100644 --- a/epan/dissectors/packet-dis.c +++ b/epan/dissectors/packet-dis.c @@ -3791,11 +3791,9 @@ static guint32 entityDomain; */ static int dissect_DIS_FIELDS_BURST_DESCRIPTOR(tvbuff_t *tvb, proto_tree *tree, int offset) { - proto_item *ti; proto_tree *sub_tree; - ti = proto_tree_add_text(tree, tvb, offset, 16, "Burst Descriptor"); - sub_tree = proto_item_add_subtree(ti, ett_burst_descriptor); + sub_tree = proto_tree_add_subtree(tree, tvb, offset, 16, ett_burst_descriptor, NULL, "Burst Descriptor"); offset = dissect_DIS_FIELDS_ENTITY_TYPE(tvb, sub_tree, offset, "Munition"); @@ -3826,8 +3824,7 @@ static int dissect_DIS_FIELDS_CLOCK_TIME(tvbuff_t *tvb, proto_tree *tree, int of guint isAbsolute = 0; nstime_t tv; - ti = proto_tree_add_text(tree, tvb, offset, 8, "%s", clock_name); - sub_tree = proto_item_add_subtree(ti, ett_clock_time); + sub_tree = proto_tree_add_subtree(tree, tvb, offset, 8, ett_clock_time, NULL, clock_name); hour = tvb_get_ntohl(tvb, offset); uintVal = tvb_get_ntohl(tvb, offset+4); @@ -3859,12 +3856,10 @@ static int dissect_DIS_FIELDS_CLOCK_TIME(tvbuff_t *tvb, proto_tree *tree, int of static int dissect_DIS_FIELDS_ENTITY_TYPE(tvbuff_t *tvb, proto_tree *tree, int offset, const char* entity_name) { - proto_item *ti; proto_tree *sub_tree; int hf_cat = hf_dis_category; - ti = proto_tree_add_text(tree, tvb, offset, 8, "%s", entity_name); - sub_tree = proto_item_add_subtree(ti, ett_entity_type); + sub_tree = proto_tree_add_subtree(tree, tvb, offset, 8, ett_entity_type, NULL, entity_name); proto_tree_add_item(sub_tree, hf_dis_entityKind, tvb, offset, 1, ENC_BIG_ENDIAN); entityKind = tvb_get_guint8(tvb, offset); @@ -3916,11 +3911,9 @@ static int dissect_DIS_FIELDS_ENTITY_TYPE(tvbuff_t *tvb, proto_tree *tree, int o static int dissect_DIS_FIELDS_RADIO_ENTITY_TYPE(tvbuff_t *tvb, proto_tree *tree, int offset, const char* entity_name) { - proto_item *ti; proto_tree *sub_tree; - ti = proto_tree_add_text(tree, tvb, offset, 8, "%s", entity_name); - sub_tree = proto_item_add_subtree(ti, ett_radio_entity_type); + sub_tree = proto_tree_add_subtree(tree, tvb, offset, 8, ett_radio_entity_type, NULL, entity_name); proto_tree_add_item(sub_tree, hf_dis_entityKind, tvb, offset, 1, ENC_BIG_ENDIAN); entityKind = tvb_get_guint8(tvb, offset); @@ -3947,13 +3940,11 @@ static int dissect_DIS_FIELDS_RADIO_ENTITY_TYPE(tvbuff_t *tvb, proto_tree *tree, static int dissect_DIS_FIELDS_MODULATION_TYPE(tvbuff_t *tvb, proto_tree *tree, int offset, guint16* systemModulation) { - proto_item *ti; proto_tree *sub_tree; guint32 majorModulation; int hf_mod_detail; - ti = proto_tree_add_text(tree, tvb, offset, 8, "Modulation Type"); - sub_tree = proto_item_add_subtree(ti, ett_modulation_type); + sub_tree = proto_tree_add_subtree(tree, tvb, offset, 8, ett_modulation_type, NULL, "Modulation Type"); proto_tree_add_item(sub_tree, hf_dis_spread_spectrum_usage, tvb, offset, 2, ENC_BIG_ENDIAN); proto_tree_add_item(sub_tree, hf_dis_frequency_hopping, tvb, offset, 2, ENC_BIG_ENDIAN); @@ -4003,11 +3994,9 @@ static int dissect_DIS_FIELDS_MODULATION_TYPE(tvbuff_t *tvb, proto_tree *tree, i static int dissect_DIS_FIELDS_EVENT_ID(tvbuff_t *tvb, proto_tree *tree, int offset, const char* event_name) { - proto_item *ti; proto_tree *sub_tree; - ti = proto_tree_add_text(tree, tvb, offset, 6, "%s", event_name); - sub_tree = proto_item_add_subtree(ti, ett_event_id); + sub_tree = proto_tree_add_subtree(tree, tvb, offset, 6, ett_event_id, NULL, event_name); proto_tree_add_item(sub_tree, hf_dis_site, tvb, offset, 2, ENC_BIG_ENDIAN); offset += 2; @@ -4024,11 +4013,9 @@ static int dissect_DIS_FIELDS_EVENT_ID(tvbuff_t *tvb, proto_tree *tree, int offs static int dissect_DIS_FIELDS_SIMULATION_ADDRESS(tvbuff_t *tvb, proto_tree *tree, int offset, const char* sim_name) { - proto_item *ti; proto_tree *sub_tree; - ti = proto_tree_add_text(tree, tvb, offset, 4, "%s", sim_name); - sub_tree = proto_item_add_subtree(ti, ett_simulation_address); + sub_tree = proto_tree_add_subtree(tree, tvb, offset, 4, ett_simulation_address, NULL, sim_name); proto_tree_add_item(sub_tree, hf_dis_site, tvb, offset, 2, ENC_BIG_ENDIAN); offset += 2; @@ -4041,11 +4028,9 @@ static int dissect_DIS_FIELDS_SIMULATION_ADDRESS(tvbuff_t *tvb, proto_tree *tree static int dissect_DIS_FIELDS_MOD_PARAMS_CCTT_SINCGARS(tvbuff_t *tvb, proto_tree *tree, int offset) { - proto_item *ti; proto_tree *sub_tree; - ti = proto_tree_add_text(tree, tvb, offset, 16, "Modulation Parameters"); - sub_tree = proto_item_add_subtree(ti, ett_modulation_parameters); + sub_tree = proto_tree_add_subtree(tree, tvb, offset, 16, ett_modulation_parameters, NULL, "Modulation Parameters"); proto_tree_add_item(sub_tree, hf_dis_mod_param_fh_net_id, tvb, offset, 2, ENC_BIG_ENDIAN); offset += 2; @@ -4079,11 +4064,9 @@ static int dissect_DIS_FIELDS_MOD_PARAMS_CCTT_SINCGARS(tvbuff_t *tvb, proto_tree static int dissect_DIS_FIELDS_MOD_PARAMS_JTIDS_MIDS(tvbuff_t *tvb, proto_tree *tree, int offset) { - proto_item *ti; proto_tree *sub_tree; - ti = proto_tree_add_text(tree, tvb, offset, 16, "Modulation Parameters"); - sub_tree = proto_item_add_subtree(ti, ett_modulation_parameters); + sub_tree = proto_tree_add_subtree(tree, tvb, offset, 16, ett_modulation_parameters, NULL, "Modulation Parameters"); proto_tree_add_item(sub_tree, hf_dis_mod_param_ts_allocation_mode, tvb, offset, 1, ENC_BIG_ENDIAN); offset++; @@ -4106,12 +4089,10 @@ static int dissect_DIS_FIELDS_MOD_PARAMS_JTIDS_MIDS(tvbuff_t *tvb, proto_tree *t static gint parse_DIS_FIELDS_SIGNAL_LINK16_NETWORK_HEADER(tvbuff_t *tvb, proto_tree *tree, gint offset, guint8* messageType) { - proto_item *ti; proto_tree *sub_tree; nstime_t tv; - ti = proto_tree_add_text(tree, tvb, offset, 16, "Link 16 Network Header"); - sub_tree = proto_item_add_subtree(ti, ett_dis_signal_link16_network_header); + sub_tree = proto_tree_add_subtree(tree, tvb, offset, 16, ett_dis_signal_link16_network_header, NULL, "Link 16 Network Header"); proto_tree_add_item(sub_tree, hf_dis_signal_link16_npg, tvb, offset, 2, ENC_BIG_ENDIAN); offset += 2; @@ -4234,14 +4215,12 @@ static gint parse_Link16_Message_Data(proto_tree *tree, tvbuff_t *tvb, gint offs */ static gint parseField_DIS_FIELDS_FIXED_DATUM(tvbuff_t *tvb, proto_tree *tree, gint offset, const char* field_name, guint32 num_items) { - proto_item *ti; proto_tree *sub_tree; guint32 i; for (i = 0; i < num_items; i++) { - ti = proto_tree_add_text(tree, tvb, offset, 8, "%s", field_name); - sub_tree = proto_item_add_subtree(ti, ett_fixed_datum); + sub_tree = proto_tree_add_subtree(tree, tvb, offset, 8, ett_fixed_datum, NULL, field_name); proto_tree_add_item(sub_tree, hf_dis_datum_id, tvb, offset, 4, ENC_BIG_ENDIAN); offset += 4; @@ -4261,8 +4240,7 @@ static gint parseField_DIS_FIELDS_VARIABLE_DATUM(tvbuff_t *tvb, proto_tree *tree for (i = 0; i < num_items; i++) { - ti = proto_tree_add_text(tree, tvb, offset, -1, "%s", field_name); - sub_tree = proto_item_add_subtree(ti, ett_fixed_datum); + sub_tree = proto_tree_add_subtree(tree, tvb, offset, -1, ett_fixed_datum, &ti, field_name); proto_tree_add_item(sub_tree, hf_dis_datum_id, tvb, offset, 4, ENC_BIG_ENDIAN); offset += 4; @@ -4286,12 +4264,10 @@ static gint parseField_DIS_FIELDS_VARIABLE_DATUM(tvbuff_t *tvb, proto_tree *tree static gint parseField_DIS_FIELDS_FIXED_DATUM_IDS(tvbuff_t *tvb, proto_tree *tree, gint offset, const char* field_name, guint32 num_items) { - proto_item *ti; proto_tree *sub_tree; guint32 i; - ti = proto_tree_add_text(tree, tvb, offset, num_items*4, "%s", field_name); - sub_tree = proto_item_add_subtree(ti, ett_fixed_datum); + sub_tree = proto_tree_add_subtree(tree, tvb, offset, num_items*4, ett_fixed_datum, NULL, field_name); for (i = 0; i < num_items; i++) { @@ -4309,11 +4285,9 @@ static gint parseField_DIS_FIELDS_VARIABLE_DATUM_IDS(tvbuff_t *tvb, proto_tree * static gint parseField_TRACK_JAM(tvbuff_t *tvb, proto_tree *tree, gint offset, const char* entity_name) { - proto_item *ti; proto_tree *sub_tree; - ti = proto_tree_add_text(tree, tvb, offset, 8, "%s", entity_name); - sub_tree = proto_item_add_subtree(ti, ett_trackjam); + sub_tree = proto_tree_add_subtree(tree, tvb, offset, 8, ett_trackjam, NULL, entity_name); proto_tree_add_item(sub_tree, hf_dis_entity_id_site, tvb, offset, 2, ENC_BIG_ENDIAN); offset += 2; @@ -4370,7 +4344,6 @@ static gint dissect_DIS_FIELDS_VP_ATTACHED_PART(tvbuff_t *tvb, proto_tree *tree, static gint dissect_DIS_FIELDS_VP_ENTITY_OFFSET(tvbuff_t *tvb, proto_tree *tree, gint offset) { - proto_item *ti; proto_tree *sub_tree; proto_tree_add_item(tree, hf_dis_vp_offset_type, tvb, offset, 1, ENC_BIG_ENDIAN); @@ -4379,8 +4352,7 @@ static gint dissect_DIS_FIELDS_VP_ENTITY_OFFSET(tvbuff_t *tvb, proto_tree *tree, proto_tree_add_item(tree, hf_dis_padding, tvb, offset, 2, ENC_NA); offset += 2; - ti = proto_tree_add_text(tree, tvb, offset, 12, "Offset"); - sub_tree = proto_item_add_subtree(ti, ett_offset_vector); + sub_tree = proto_tree_add_subtree(tree, tvb, offset, 12, ett_offset_vector, NULL, "Offset"); proto_tree_add_item(sub_tree, hf_dis_vp_offset_x, tvb, offset, 4, ENC_BIG_ENDIAN); offset += 4; @@ -4535,8 +4507,7 @@ static int dissect_DIS_PARSER_ENTITY_STATE_PDU(tvbuff_t *tvb, packet_info *pinfo offset = dissect_DIS_FIELDS_ENTITY_TYPE(tvb, tree, offset, "Alternative Entity Type"); - ti = proto_tree_add_text(tree, tvb, offset, 12, "Entity Linear Velocity"); - sub_tree = proto_item_add_subtree(ti, ett_entity_linear_velocity); + sub_tree = proto_tree_add_subtree(tree, tvb, offset, 12, ett_entity_linear_velocity, NULL, "Entity Linear Velocity"); proto_tree_add_item(sub_tree, hf_dis_entity_linear_velocity_x, tvb, offset, 4, ENC_BIG_ENDIAN); offset += 4; proto_tree_add_item(sub_tree, hf_dis_entity_linear_velocity_y, tvb, offset, 4, ENC_BIG_ENDIAN); @@ -4544,8 +4515,7 @@ static int dissect_DIS_PARSER_ENTITY_STATE_PDU(tvbuff_t *tvb, packet_info *pinfo proto_tree_add_item(sub_tree, hf_dis_entity_linear_velocity_z, tvb, offset, 4, ENC_BIG_ENDIAN); offset += 4; - ti = proto_tree_add_text(tree, tvb, offset, 24, "Entity Location"); - sub_tree = proto_item_add_subtree(ti, ett_entity_location); + sub_tree = proto_tree_add_subtree(tree, tvb, offset, 24, ett_entity_location, NULL, "Entity Location"); proto_tree_add_item(sub_tree, hf_dis_entity_location_x, tvb, offset, 8, ENC_BIG_ENDIAN); offset += 8; proto_tree_add_item(sub_tree, hf_dis_entity_location_y, tvb, offset, 8, ENC_BIG_ENDIAN); @@ -4553,8 +4523,7 @@ static int dissect_DIS_PARSER_ENTITY_STATE_PDU(tvbuff_t *tvb, packet_info *pinfo proto_tree_add_item(sub_tree, hf_dis_entity_location_z, tvb, offset, 8, ENC_BIG_ENDIAN); offset += 8; - ti = proto_tree_add_text(tree, tvb, offset, 12, "Entity Orientation"); - sub_tree = proto_item_add_subtree(ti, ett_entity_orientation); + sub_tree = proto_tree_add_subtree(tree, tvb, offset, 12, ett_entity_orientation, NULL, "Entity Orientation"); proto_tree_add_item(sub_tree, hf_dis_entity_orientation_psi, tvb, offset, 4, ENC_BIG_ENDIAN); offset += 4; proto_tree_add_item(sub_tree, hf_dis_entity_orientation_theta, tvb, offset, 4, ENC_BIG_ENDIAN); @@ -4562,8 +4531,7 @@ static int dissect_DIS_PARSER_ENTITY_STATE_PDU(tvbuff_t *tvb, packet_info *pinfo proto_tree_add_item(sub_tree, hf_dis_entity_orientation_phi, tvb, offset, 4, ENC_BIG_ENDIAN); offset += 4; - ti = proto_tree_add_text(tree, tvb, offset, 4, "Entity Appearance"); - sub_tree = proto_item_add_subtree(ti, ett_entity_appearance); + sub_tree = proto_tree_add_subtree(tree, tvb, offset, 4, ett_entity_appearance, NULL, "Entity Appearance"); if ((entityKind == DIS_ENTITYKIND_PLATFORM) && (entityDomain == DIS_DOMAIN_LAND)) @@ -4601,8 +4569,7 @@ static int dissect_DIS_PARSER_ENTITY_STATE_PDU(tvbuff_t *tvb, packet_info *pinfo for (i = 0; i < numVariable; i++) { - ti = proto_tree_add_text(tree, tvb, offset, 1, "Variable Parameter"); - sub_tree = proto_item_add_subtree(ti, ett_variable_parameter); + sub_tree = proto_tree_add_subtree(tree, tvb, offset, 1, ett_variable_parameter, &ti, "Variable Parameter"); proto_tree_add_item(sub_tree, hf_dis_variable_parameter_type, tvb, offset, 1, ENC_BIG_ENDIAN); variableParameterType = tvb_get_guint8(tvb, offset); @@ -4619,7 +4586,7 @@ static int dissect_DIS_PARSER_ENTITY_STATE_PDU(tvbuff_t *tvb, packet_info *pinfo */ static int dissect_DIS_PARSER_ELECTROMAGNETIC_EMISSION_PDU(tvbuff_t *tvb, packet_info *pinfo _U_, proto_tree *tree, int offset) { - proto_item *ti, *emission_ti, *beam_ti; + proto_item *emission_ti, *beam_ti; proto_tree *sub_tree, *sub_tree2, *fundamental_tree; guint8 i, j, k, numVariable, numBeams, numTrackJamTargets; @@ -4638,8 +4605,7 @@ static int dissect_DIS_PARSER_ELECTROMAGNETIC_EMISSION_PDU(tvbuff_t *tvb, packet for (i = 0; i < numVariable; i++) { - emission_ti = proto_tree_add_text(tree, tvb, offset, -1, "Emission System"); - sub_tree = proto_item_add_subtree(emission_ti, ett_emission_system); + sub_tree = proto_tree_add_subtree(tree, tvb, offset, -1, ett_emission_system, &emission_ti, "Emission System"); proto_tree_add_item(sub_tree, hf_dis_em_data_length, tvb, offset, 1, ENC_NA); offset++; @@ -4651,8 +4617,7 @@ static int dissect_DIS_PARSER_ELECTROMAGNETIC_EMISSION_PDU(tvbuff_t *tvb, packet proto_tree_add_item(sub_tree, hf_dis_padding, tvb, offset, 2, ENC_NA); offset += 2; - ti = proto_tree_add_text(sub_tree, tvb, offset, 4, "Emitter System"); - sub_tree2 = proto_item_add_subtree(ti, ett_emitter_system); + sub_tree2 = proto_tree_add_subtree(sub_tree, tvb, offset, 4, ett_emitter_system, NULL, "Emitter System"); proto_tree_add_item(sub_tree2, hf_dis_emitter_name, tvb, offset, 2, ENC_BIG_ENDIAN); offset += 2; @@ -4661,8 +4626,7 @@ static int dissect_DIS_PARSER_ELECTROMAGNETIC_EMISSION_PDU(tvbuff_t *tvb, packet proto_tree_add_item(sub_tree2, hf_dis_emitter_id_number, tvb, offset, 1, ENC_NA); offset++; - ti = proto_tree_add_text(sub_tree, tvb, offset, 12, "Location"); - sub_tree2 = proto_item_add_subtree(ti, ett_emitter_location); + sub_tree2 = proto_tree_add_subtree(sub_tree, tvb, offset, 12, ett_emitter_location, NULL, "Location"); proto_tree_add_item(sub_tree2, hf_dis_em_location_x, tvb, offset, 4, ENC_BIG_ENDIAN); offset += 4; @@ -4673,8 +4637,7 @@ static int dissect_DIS_PARSER_ELECTROMAGNETIC_EMISSION_PDU(tvbuff_t *tvb, packet for (j = 0; j < numBeams; j++) { - beam_ti = proto_tree_add_text(sub_tree, tvb, offset, -1, "Beam"); - sub_tree2 = proto_item_add_subtree(beam_ti, ett_em_beam); + sub_tree2 = proto_tree_add_subtree(sub_tree, tvb, offset, -1, ett_em_beam, &beam_ti, "Beam"); proto_tree_add_item(sub_tree2, hf_dis_em_beam_data_length, tvb, offset, 1, ENC_BIG_ENDIAN); offset++; @@ -4685,8 +4648,7 @@ static int dissect_DIS_PARSER_ELECTROMAGNETIC_EMISSION_PDU(tvbuff_t *tvb, packet proto_tree_add_item(sub_tree2, hf_dis_em_beam_parameter_index, tvb, offset, 2, ENC_BIG_ENDIAN); offset += 2; - ti = proto_tree_add_text(sub_tree2, tvb, offset, 40, "Fundamental Parameter Data"); - fundamental_tree = proto_item_add_subtree(ti, ett_em_fundamental_parameter_data); + fundamental_tree = proto_tree_add_subtree(sub_tree2, tvb, offset, 40, ett_em_fundamental_parameter_data, NULL, "Fundamental Parameter Data"); proto_tree_add_item(fundamental_tree, hf_dis_em_fund_frequency, tvb, offset, 4, ENC_BIG_ENDIAN); offset += 4; @@ -4743,7 +4705,6 @@ static int dissect_DIS_PARSER_ELECTROMAGNETIC_EMISSION_PDU(tvbuff_t *tvb, packet */ static int dissect_DIS_PARSER_UNDERWATER_ACOUSTIC_PDU(tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree, int offset) { - proto_item *ti; proto_tree *sub_tree, *sub_tree2; guint8 i, numShafts, numApas, numUAEmitter, numUABeams = 0; @@ -4779,8 +4740,7 @@ static int dissect_DIS_PARSER_UNDERWATER_ACOUSTIC_PDU(tvbuff_t *tvb, packet_info for (i = 0; i < numShafts; i++) { - ti = proto_tree_add_text(tree, tvb, offset, 6, "Shafts [%d of %d]", i+1, numShafts); - sub_tree = proto_item_add_subtree(ti, ett_shafts); + sub_tree = proto_tree_add_subtree_format(tree, tvb, offset, 6, ett_shafts, NULL, "Shafts [%d of %d]", i+1, numShafts); proto_tree_add_item(sub_tree, hf_dis_shaft_rpm_current, tvb, offset, 2, ENC_BIG_ENDIAN); offset += 2; @@ -4794,8 +4754,7 @@ static int dissect_DIS_PARSER_UNDERWATER_ACOUSTIC_PDU(tvbuff_t *tvb, packet_info for (i = 0; i < numApas; i++) { - ti = proto_tree_add_text(tree, tvb, offset, 4, "APAs [%d of %d]", i+1, numApas); - sub_tree = proto_item_add_subtree(ti, ett_apas); + sub_tree = proto_tree_add_subtree_format(tree, tvb, offset, 4, ett_apas, NULL, "APAs [%d of %d]", i+1, numApas); proto_tree_add_item(sub_tree, hf_dis_apas_parameter_index, tvb, offset, 2, ENC_BIG_ENDIAN); /*FIXME enum*/ offset += 2; @@ -4806,8 +4765,8 @@ static int dissect_DIS_PARSER_UNDERWATER_ACOUSTIC_PDU(tvbuff_t *tvb, packet_info for (i = 0; i < numUAEmitter; i++) { - ti = proto_tree_add_text(tree, tvb, offset, 20, "Underwater Acoustic Emission System [%d of %d]", i+1, numUAEmitter); - sub_tree = proto_item_add_subtree(ti, ett_underwater_acoustic_emission); + sub_tree = proto_tree_add_subtree_format(tree, tvb, offset, 20, ett_underwater_acoustic_emission, NULL, + "Underwater Acoustic Emission System [%d of %d]", i+1, numUAEmitter); proto_tree_add_item(sub_tree, hf_dis_ua_emitter_data_length, tvb, offset, 1, ENC_BIG_ENDIAN); offset++; @@ -4819,8 +4778,7 @@ static int dissect_DIS_PARSER_UNDERWATER_ACOUSTIC_PDU(tvbuff_t *tvb, packet_info proto_tree_add_item(sub_tree, hf_dis_padding, tvb, offset, 2, ENC_NA); offset += 2; - ti = proto_tree_add_text(sub_tree, tvb, offset, 4, "Acoustic Emitter System"); - sub_tree2 = proto_item_add_subtree(ti, ett_acoustic_emitter_system); + sub_tree2 = proto_tree_add_subtree(sub_tree, tvb, offset, 4, ett_acoustic_emitter_system, NULL, "Acoustic Emitter System"); proto_tree_add_item(sub_tree2, hf_dis_ua_emission_name, tvb, offset, 2, ENC_BIG_ENDIAN); /*FIXME enum*/ offset += 2; @@ -4829,8 +4787,7 @@ static int dissect_DIS_PARSER_UNDERWATER_ACOUSTIC_PDU(tvbuff_t *tvb, packet_info proto_tree_add_item(sub_tree2, hf_dis_ua_emission_id_number, tvb, offset, 1, ENC_BIG_ENDIAN); offset++; - ti = proto_tree_add_text(sub_tree, tvb, offset, 12, "Location (with respect to entity)"); - sub_tree2 = proto_item_add_subtree(ti, ett_ua_location); + sub_tree2 = proto_tree_add_subtree(sub_tree, tvb, offset, 12, ett_ua_location, NULL, "Location (with respect to entity)"); proto_tree_add_item(sub_tree2, hf_dis_ua_location_x, tvb, offset, 4, ENC_BIG_ENDIAN); offset += 4; @@ -4844,8 +4801,7 @@ static int dissect_DIS_PARSER_UNDERWATER_ACOUSTIC_PDU(tvbuff_t *tvb, packet_info for (i = 0; i < numUABeams; ++i) { - ti = proto_tree_add_text(tree, tvb, offset, 24, "Beams [%d of %d]", i+1, numUABeams); - sub_tree = proto_item_add_subtree(ti, ett_ua_beams); + sub_tree = proto_tree_add_subtree_format(tree, tvb, offset, 24, ett_ua_beams, NULL, "Beams [%d of %d]", i+1, numUABeams); proto_tree_add_item(sub_tree, hf_dis_ua_beam_data_length, tvb, offset, 1, ENC_BIG_ENDIAN); offset++; @@ -4856,8 +4812,7 @@ static int dissect_DIS_PARSER_UNDERWATER_ACOUSTIC_PDU(tvbuff_t *tvb, packet_info proto_tree_add_item(sub_tree, hf_dis_padding, tvb, offset, 2, ENC_NA); offset += 2; - ti = proto_tree_add_text(sub_tree, tvb, offset, 20, "Fundamental Data Parameters"); - sub_tree2 = proto_item_add_subtree(ti, ett_ua_beam_data); + sub_tree2 = proto_tree_add_subtree_format(sub_tree, tvb, offset, 20, ett_ua_beam_data, NULL, "Fundamental Data Parameters"); proto_tree_add_item(sub_tree2, hf_dis_ua_beam_active_emission_parameter_index, tvb, offset, 2, ENC_BIG_ENDIAN); /*FIXME enum!!!*/ offset += 2; @@ -4896,8 +4851,7 @@ static int dissect_DIS_PARSER_IFF_PDU(tvbuff_t *tvb, packet_info *pinfo _U_, pro offset = parseField_Entity(tvb, tree, offset, "Emitting Entity ID"); offset = dissect_DIS_FIELDS_EVENT_ID(tvb, tree, offset, "Event ID"); - ti = proto_tree_add_text(tree, tvb, offset, 12, "Location (with respect to entity)"); - sub_tree = proto_item_add_subtree(ti, ett_iff_location); + sub_tree = proto_tree_add_subtree(tree, tvb, offset, 12, ett_iff_location, NULL, "Location (with respect to entity)"); proto_tree_add_item(sub_tree, hf_dis_ua_location_x, tvb, offset, 4, ENC_BIG_ENDIAN); offset += 4; @@ -4908,8 +4862,7 @@ static int dissect_DIS_PARSER_IFF_PDU(tvbuff_t *tvb, packet_info *pinfo _U_, pro proto_tree_add_item(sub_tree, hf_dis_ua_location_z, tvb, offset, 4, ENC_BIG_ENDIAN); offset += 4; - ti = proto_tree_add_text(tree, tvb, offset, 6, "System ID"); - sub_tree = proto_item_add_subtree(ti, ett_iff_system_id); + sub_tree = proto_tree_add_subtree(tree, tvb, offset, 6, ett_iff_system_id, NULL, "System ID"); proto_tree_add_item(sub_tree, hf_dis_iff_system_type, tvb, offset, 2, ENC_BIG_ENDIAN); offset += 2; @@ -4930,8 +4883,7 @@ static int dissect_DIS_PARSER_IFF_PDU(tvbuff_t *tvb, packet_info *pinfo _U_, pro proto_tree_add_item(tree, hf_dis_padding, tvb, offset, 2, ENC_NA); offset += 2; - ti = proto_tree_add_text(tree, tvb, offset, 16, "Fundamental Operational Data"); - sub_tree = proto_item_add_subtree(ti, ett_iff_fundamental_operational_data); + sub_tree = proto_tree_add_subtree(tree, tvb, offset, 16, ett_iff_fundamental_operational_data, NULL, "Fundamental Operational Data"); ti = proto_tree_add_item(sub_tree, hf_dis_iff_system_status, tvb, offset, 1, ENC_BIG_ENDIAN); field_tree = proto_item_add_subtree(ti, ett_iff_system_status); @@ -5050,8 +5002,7 @@ static int dissect_DIS_PARSER_TRANSMITTER_PDU(tvbuff_t *tvb, packet_info *pinfo, proto_tree_add_item(tree, hf_dis_padding, tvb, offset, 2, ENC_NA); offset += 2; - ti = proto_tree_add_text(tree, tvb, offset, 24, "Antenna Location"); - sub_tree = proto_item_add_subtree(ti, ett_antenna_location); + sub_tree = proto_tree_add_subtree(tree, tvb, offset, 24, ett_antenna_location, NULL, "Antenna Location"); proto_tree_add_item(sub_tree, hf_dis_antenna_location_x, tvb, offset, 8, ENC_BIG_ENDIAN); offset += 8; @@ -5060,8 +5011,7 @@ static int dissect_DIS_PARSER_TRANSMITTER_PDU(tvbuff_t *tvb, packet_info *pinfo, proto_tree_add_item(sub_tree, hf_dis_antenna_location_z, tvb, offset, 8, ENC_BIG_ENDIAN); offset += 8; - ti = proto_tree_add_text(tree, tvb, offset, 12, "Relative Antenna Location"); - sub_tree = proto_item_add_subtree(ti, ett_rel_antenna_location); + sub_tree = proto_tree_add_subtree(tree, tvb, offset, 12, ett_rel_antenna_location, NULL, "Relative Antenna Location"); proto_tree_add_item(sub_tree, hf_dis_rel_antenna_location_x, tvb, offset, 4, ENC_BIG_ENDIAN); offset += 4; @@ -5192,7 +5142,6 @@ static int dissect_DIS_PARSER_SIGNAL_PDU(tvbuff_t *tvb, packet_info *pinfo, prot */ static int dissect_DIS_PARSER_FIRE_PDU(tvbuff_t *tvb, packet_info *pinfo _U_, proto_tree *tree, int offset) { - proto_item* ti; proto_tree* sub_tree; offset = parseField_Entity(tvb, tree, offset, "Firing Entity ID"); @@ -5203,8 +5152,7 @@ static int dissect_DIS_PARSER_FIRE_PDU(tvbuff_t *tvb, packet_info *pinfo _U_, pr proto_tree_add_item(tree, hf_dis_fire_mission_index, tvb, offset, 4, ENC_BIG_ENDIAN); offset += 4; - ti = proto_tree_add_text(tree, tvb, offset, 24, "Location in World Coordinates"); - sub_tree = proto_item_add_subtree(ti, ett_fire_location); + sub_tree = proto_tree_add_subtree(tree, tvb, offset, 24, ett_fire_location, NULL, "Location in World Coordinates"); proto_tree_add_item(sub_tree, hf_dis_fire_location_x, tvb, offset, 8, ENC_BIG_ENDIAN); offset += 8; @@ -5215,8 +5163,7 @@ static int dissect_DIS_PARSER_FIRE_PDU(tvbuff_t *tvb, packet_info *pinfo _U_, pr offset = dissect_DIS_FIELDS_BURST_DESCRIPTOR(tvb, tree, offset); - ti = proto_tree_add_text(tree, tvb, offset, 12, "Velocity"); - sub_tree = proto_item_add_subtree(ti, ett_linear_velocity); + sub_tree = proto_tree_add_subtree(tree, tvb, offset, 12, ett_linear_velocity, NULL, "Velocity"); proto_tree_add_item(sub_tree, hf_dis_linear_velocity_x, tvb, offset, 4, ENC_BIG_ENDIAN); offset += 4; @@ -5243,8 +5190,7 @@ static int dissect_DIS_PARSER_DETONATION_PDU(tvbuff_t *tvb, packet_info *pinfo _ offset = parseField_Entity(tvb, tree, offset, "Munition ID"); offset = dissect_DIS_FIELDS_EVENT_ID(tvb, tree, offset, "Event ID"); - ti = proto_tree_add_text(tree, tvb, offset, 12, "Velocity"); - sub_tree = proto_item_add_subtree(ti, ett_linear_velocity); + sub_tree = proto_tree_add_subtree(tree, tvb, offset, 12, ett_linear_velocity, NULL, "Velocity"); proto_tree_add_item(sub_tree, hf_dis_linear_velocity_x, tvb, offset, 4, ENC_BIG_ENDIAN); offset += 4; @@ -5253,8 +5199,7 @@ static int dissect_DIS_PARSER_DETONATION_PDU(tvbuff_t *tvb, packet_info *pinfo _ proto_tree_add_item(sub_tree, hf_dis_linear_velocity_z, tvb, offset, 4, ENC_BIG_ENDIAN); offset += 4; - ti = proto_tree_add_text(tree, tvb, offset, 24, "Location in World Coordinates"); - sub_tree = proto_item_add_subtree(ti, ett_detonation_location); + sub_tree = proto_tree_add_subtree(tree, tvb, offset, 24, ett_detonation_location, NULL, "Location in World Coordinates"); proto_tree_add_item(sub_tree, hf_dis_detonation_location_x, tvb, offset, 8, ENC_BIG_ENDIAN); offset += 8; @@ -5265,8 +5210,7 @@ static int dissect_DIS_PARSER_DETONATION_PDU(tvbuff_t *tvb, packet_info *pinfo _ offset = dissect_DIS_FIELDS_BURST_DESCRIPTOR(tvb, tree, offset); - ti = proto_tree_add_text(tree, tvb, offset, 12, "Location in Entity Coordinates"); - sub_tree = proto_item_add_subtree(ti, ett_linear_velocity); + sub_tree = proto_tree_add_subtree(tree, tvb, offset, 12, ett_linear_velocity, NULL, "Location in Entity Coordinates"); proto_tree_add_item(sub_tree, hf_dis_entity_location_x, tvb, offset, 4, ENC_BIG_ENDIAN); offset += 4; @@ -5287,8 +5231,7 @@ static int dissect_DIS_PARSER_DETONATION_PDU(tvbuff_t *tvb, packet_info *pinfo _ for (i = 0; i < numVariable; i++) { - ti = proto_tree_add_text(tree, tvb, offset, 1, "Variable Parameter"); - sub_tree = proto_item_add_subtree(ti, ett_variable_parameter); + sub_tree = proto_tree_add_subtree(tree, tvb, offset, 1, ett_variable_parameter, &ti, "Variable Parameter"); proto_tree_add_item(sub_tree, hf_dis_variable_parameter_type, tvb, offset, 1, ENC_BIG_ENDIAN); variableParameterType = tvb_get_guint8(tvb, offset); @@ -5697,8 +5640,7 @@ static int dissect_DIS_PARSER_APPLICATION_CONTROL_PDU(tvbuff_t *tvb, packet_info for (i = 0; i < numVariable; i++) { - ti = proto_tree_add_text(tree, tvb, offset, -1, "Record"); - sub_tree = proto_item_add_subtree(ti, ett_record); + sub_tree = proto_tree_add_subtree(tree, tvb, offset, -1, ett_record, &ti, "Record"); variableRecordType = tvb_get_ntohl(tvb, offset); proto_tree_add_item(tree, hf_dis_variable_record_type, tvb, offset, 4, ENC_BIG_ENDIAN); @@ -5895,11 +5837,9 @@ static gint parseField_Timestamp(tvbuff_t *tvb, proto_tree *tree, gint offset, i /* Parse an Entity */ static gint parseField_Entity(tvbuff_t *tvb, proto_tree *tree, gint offset, const char* entity_name) { - proto_item *ti; proto_tree *sub_tree; - ti = proto_tree_add_text(tree, tvb, offset, 6, "%s", entity_name); - sub_tree = proto_item_add_subtree(ti, ett_entity); + sub_tree = proto_tree_add_subtree(tree, tvb, offset, 6, ett_entity, NULL, entity_name); proto_tree_add_item(sub_tree, hf_dis_entity_id_site, tvb, offset, 2, ENC_BIG_ENDIAN); offset += 2; @@ -6078,9 +6018,9 @@ static int parsePOHeader(tvbuff_t *tvb, proto_tree *tree, int offset, guint8* pd */ static gint dissect_dis(tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree, void *data _U_) { - proto_item *dis_tree, *dis_header_tree; - proto_item *dis_node, *dis_header_node; - proto_item *dis_payload_tree = NULL; + proto_tree *dis_tree, *dis_header_tree; + proto_item *dis_node; + proto_tree *dis_payload_tree = NULL; proto_item *dis_payload_node = NULL; gint offset = 0; const gchar *pduString = 0; @@ -6111,8 +6051,7 @@ static gint dissect_dis(tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree, voi /* Add a node to contain the DIS header fields. */ - dis_header_node = proto_tree_add_text(dis_tree, tvb, offset, 12, "Header"); - dis_header_tree = proto_item_add_subtree(dis_header_node, ett_dis_header); + dis_header_tree = proto_tree_add_subtree(dis_tree, tvb, offset, 12, ett_dis_header, NULL, "Header"); offset = parseDISHeader(tvb, dis_header_tree, offset, &header); /* Locate the string name for the PDU type enumeration, @@ -6127,10 +6066,8 @@ static gint dissect_dis(tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree, voi case DIS_PROTOCOLFAMILY_PERSISTENT_OBJECT: { proto_item *dis_po_header_tree; - proto_item *dis_po_header_node; - dis_po_header_node = proto_tree_add_text(dis_header_tree, tvb, offset, 8, "PO Header"); - dis_po_header_tree = proto_item_add_subtree(dis_po_header_node, ett_dis_po_header); + dis_po_header_tree = proto_tree_add_subtree(dis_header_tree, tvb, offset, 8, ett_dis_po_header, NULL, "PO Header"); offset = parsePOHeader(tvb, dis_po_header_tree, offset, &persistentObjectPduType); /* Locate the appropriate PO PDU parser, if type is known. diff --git a/epan/dissectors/packet-dlsw.c b/epan/dissectors/packet-dlsw.c index 2aec7bb2c8..4abaaba38d 100644 --- a/epan/dissectors/packet-dlsw.c +++ b/epan/dissectors/packet-dlsw.c @@ -292,9 +292,9 @@ dissect_dlsw_pdu(tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree, void *data hlen=tvb_get_guint8(tvb,1); - ti2 = proto_tree_add_text (dlsw_tree, tvb, 0, hlen,"DLSw header, %s", + dlsw_header_tree = proto_tree_add_subtree_format(dlsw_tree, tvb, 0, hlen, ett_dlsw_header, NULL, + "DLSw header, %s", val_to_str_const(version , dlsw_version_vals, "Unknown Version")); - dlsw_header_tree = proto_item_add_subtree(ti2, ett_dlsw_header); proto_tree_add_item(dlsw_header_tree, hf_dlsw_version, tvb, 0, 1, ENC_NA); proto_tree_add_item(dlsw_header_tree, hf_dlsw_header_length, tvb, 1, 1, ENC_NA); @@ -375,8 +375,7 @@ dissect_dlsw_pdu(tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree, void *data /* end of header dissector */ - ti2 = proto_tree_add_text (dlsw_tree, tvb, hlen, mlen,"DLSw data"); - dlsw_data_tree = proto_item_add_subtree(ti2, ett_dlsw_data); + dlsw_data_tree = proto_tree_add_subtree(dlsw_tree, tvb, hlen, mlen, ett_dlsw_data, NULL, "DLSw data"); switch (mtype) { @@ -413,7 +412,7 @@ static void dissect_dlsw_capex(tvbuff_t *tvb, proto_tree *tree, proto_tree *ti2) { int mlen,vlen,vtype,offset=4,gdsid,sap,i=0; - proto_tree *ti,*dlsw_vector_tree; + proto_tree *dlsw_vector_tree; mlen=tvb_get_ntohs(tvb,0); gdsid=tvb_get_ntohs(tvb,2); proto_tree_add_item(tree, hf_dlsw_capabilities_length, tvb, 0, 2, ENC_BIG_ENDIAN); @@ -431,9 +430,8 @@ dissect_dlsw_capex(tvbuff_t *tvb, proto_tree *tree, proto_tree *ti2) vlen=tvb_get_guint8(tvb,offset); if (vlen < 3) THROW(ReportedBoundsError); vtype=tvb_get_guint8(tvb,offset+1); - ti=proto_tree_add_text (tree,tvb,offset,vlen,"%s", + dlsw_vector_tree=proto_tree_add_subtree (tree,tvb,offset,vlen,ett_dlsw_vector,NULL, val_to_str_const(vtype,dlsw_vector_vals,"Unknown vector type")); - dlsw_vector_tree = proto_item_add_subtree(ti, ett_dlsw_vector); proto_tree_add_item(dlsw_vector_tree, hf_dlsw_vector_length, tvb, offset, 1, ENC_NA); proto_tree_add_item(dlsw_vector_tree, hf_dlsw_vector_type, tvb, offset+1, 1, ENC_NA); switch (vtype){ diff --git a/epan/dissectors/packet-dmp.c b/epan/dissectors/packet-dmp.c index fc8608bb74..981b97852b 100644 --- a/epan/dissectors/packet-dmp.c +++ b/epan/dissectors/packet-dmp.c @@ -1509,9 +1509,8 @@ static void dmp_add_seq_ack_analysis (tvbuff_t *tvb, packet_info *pinfo, return; } - en = proto_tree_add_text (dmp_tree, tvb, 0, 0, "SEQ/ACK analysis"); + analysis_tree = proto_tree_add_subtree(dmp_tree, tvb, 0, 0, ett_analysis, &en, "SEQ/ACK analysis"); PROTO_ITEM_SET_GENERATED (en); - analysis_tree = proto_item_add_subtree (en, ett_analysis); if ((dmp.msg_type == STANAG) || (dmp.msg_type == IPM) || (dmp.msg_type == REPORT) || (dmp.msg_type == NOTIF)) { diff --git a/epan/dissectors/packet-dnp.c b/epan/dissectors/packet-dnp.c index d915f08af6..16b099b169 100644 --- a/epan/dissectors/packet-dnp.c +++ b/epan/dissectors/packet-dnp.c @@ -1557,8 +1557,7 @@ dnp3_al_obj_quality(tvbuff_t *tvb, int offset, guint8 al_ptflags, proto_tree *po /* Common code */ proto_item_append_text(point_item, " (Quality: "); - quality_item = proto_tree_add_text(point_tree, tvb, offset, 1, "Quality: "); - quality_tree = proto_item_add_subtree(quality_item, ett_dnp3_al_obj_quality); + quality_tree = proto_tree_add_subtree(point_tree, tvb, offset, 1, ett_dnp3_al_obj_quality, &quality_item, "Quality: "); if (al_ptflags & AL_OBJ_BI_FLAG0) { dnp3_append_2item_text(point_item, quality_item, "Online"); @@ -1690,7 +1689,7 @@ dnp3_al_process_object(tvbuff_t *tvb, packet_info *pinfo, int offset, guint32 al_ptaddr = 0; int num_items = 0; int orig_offset, rangebytes = 0; - proto_item *object_item, *qualifier_item, *range_item; + proto_item *object_item, *range_item; proto_tree *object_tree, *qualifier_tree, *range_tree; orig_offset = offset; @@ -1721,18 +1720,17 @@ dnp3_al_process_object(tvbuff_t *tvb, packet_info *pinfo, int offset, al_objq_index = al_objq_index >> 4; al_objq_code = al_objq & AL_OBJQ_CODE; - qualifier_item = proto_tree_add_text(object_tree, tvb, offset, 1, "Qualifier Field, Prefix: %s, Code: %s", + qualifier_tree = proto_tree_add_subtree_format(object_tree, tvb, offset, 1, ett_dnp3_al_obj_qualifier, NULL, + "Qualifier Field, Prefix: %s, Code: %s", val_to_str_ext_const(al_objq_index, &dnp3_al_objq_index_vals_ext, "Unknown Index Type"), val_to_str_ext_const(al_objq_code, &dnp3_al_objq_code_vals_ext, "Unknown Code Type")); - qualifier_tree = proto_item_add_subtree(qualifier_item, ett_dnp3_al_obj_qualifier); proto_tree_add_item(qualifier_tree, hf_dnp3_al_objq_index, tvb, offset, 1, ENC_BIG_ENDIAN); proto_tree_add_item(qualifier_tree, hf_dnp3_al_objq_code, tvb, offset, 1, ENC_BIG_ENDIAN); offset += 1; /* Create (possibly synthesized) number of items and range field tree */ - range_item = proto_tree_add_text(object_tree, tvb, offset, 0, "Number of Items: "); - range_tree = proto_item_add_subtree(range_item, ett_dnp3_al_obj_range); + range_tree = proto_tree_add_subtree(object_tree, tvb, offset, 0, ett_dnp3_al_obj_range, &range_item, "Number of Items: "); switch (al_objq_code) { @@ -1837,10 +1835,9 @@ dnp3_al_process_object(tvbuff_t *tvb, packet_info *pinfo, int offset, /* Create Point item and Process Index */ if (al_objq_index <= AL_OBJQL_IDX_4O) - point_item = proto_tree_add_text(object_tree, tvb, offset, -1, "Point Number"); + point_tree = proto_tree_add_subtree(object_tree, tvb, offset, -1, ett_dnp3_al_obj_point, &point_item, "Point Number"); else - point_item = proto_tree_add_text(object_tree, tvb, offset, -1, "Object: Size"); - point_tree = proto_item_add_subtree(point_item, ett_dnp3_al_obj_point); + point_tree = proto_tree_add_subtree(object_tree, tvb, offset, -1, ett_dnp3_al_obj_point, &point_item, "Object: Size"); data_pos = offset; indexbytes = dnp3_al_obj_procindex(tvb, offset, al_objq_index, &al_ptaddr, point_tree); @@ -2140,13 +2137,12 @@ dnp3_al_process_object(tvbuff_t *tvb, packet_info *pinfo, int offset, case AL_OBJ_CTLOP_BLK:/* Control Relay Output Block (Obj:12, Var:01) */ { - proto_item *tcc_item; proto_tree *tcc_tree; /* Add a expand/collapse for TCC */ al_tcc_code = tvb_get_guint8(tvb, data_pos); - tcc_item = proto_tree_add_text(point_tree, tvb, data_pos, 1, "Control Code [0x%02x]",al_tcc_code); - tcc_tree = proto_item_add_subtree(tcc_item, ett_dnp3_al_obj_point_tcc); + tcc_tree = proto_tree_add_subtree_format(point_tree, tvb, data_pos, 1, + ett_dnp3_al_obj_point_tcc, NULL, "Control Code [0x%02x]",al_tcc_code); /* Add the Control Code to the Point number list for quick visual reference as to the operation */ proto_item_append_text(point_item, " [%s]", val_to_str_const((al_tcc_code & AL_OBJCTLC_CODE), @@ -2817,7 +2813,7 @@ dissect_dnp3_al(tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree) guint8 al_ctl, al_seq, al_func, al_class = 0, i; guint16 bytes, obj_type = 0; guint data_len = 0, offset = 0; - proto_item *ti, *tc, *t_robj; + proto_item *ti, *tc; proto_tree *al_tree, *field_tree, *robj_tree; const gchar *func_code_str, *obj_type_str; nstime_t al_cto; @@ -2838,16 +2834,13 @@ dissect_dnp3_al(tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree) col_set_fence(pinfo->cinfo, COL_INFO); /* format up the text representation */ - ti = proto_tree_add_text(tree, tvb, offset, data_len, "Application Layer: ("); + al_tree = proto_tree_add_subtree(tree, tvb, offset, data_len, ett_dnp3_al, &ti, "Application Layer: ("); if (al_ctl & DNP3_AL_FIR) proto_item_append_text(ti, "FIR, "); if (al_ctl & DNP3_AL_FIN) proto_item_append_text(ti, "FIN, "); if (al_ctl & DNP3_AL_CON) proto_item_append_text(ti, "CON, "); if (al_ctl & DNP3_AL_UNS) proto_item_append_text(ti, "UNS, "); proto_item_append_text(ti, "Sequence %u, %s)", al_seq, func_code_str); - /* Add the al tree branch */ - al_tree = proto_item_add_subtree(ti, ett_dnp3_al); - /* Application Layer control byte subtree */ tc = proto_tree_add_uint_format(al_tree, hf_dnp3_al_ctl, tvb, offset, 1, al_ctl, "Control: 0x%02x (", al_ctl); @@ -2884,8 +2877,7 @@ dissect_dnp3_al(tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree) case AL_FUNC_READ: /* Read Function Code 0x01 */ /* Create Read Request Data Objects Tree */ - t_robj = proto_tree_add_text(al_tree, tvb, offset, -1, "READ Request Data Objects"); - robj_tree = proto_item_add_subtree(t_robj, ett_dnp3_al_objdet); + robj_tree = proto_tree_add_subtree(al_tree, tvb, offset, -1, ett_dnp3_al_objdet, NULL, "READ Request Data Objects"); /* Process Data Object Details */ while (offset <= (data_len-2)) { /* 2 octet object code + CRC32 */ @@ -2923,8 +2915,7 @@ dissect_dnp3_al(tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree) case AL_FUNC_WRITE: /* Write Function Code 0x02 */ /* Create Write Request Data Objects Tree */ - t_robj = proto_tree_add_text(al_tree, tvb, offset, -1, "WRITE Request Data Objects"); - robj_tree = proto_item_add_subtree(t_robj, ett_dnp3_al_objdet); + robj_tree = proto_tree_add_subtree(al_tree, tvb, offset, -1, ett_dnp3_al_objdet, NULL, "WRITE Request Data Objects"); /* Process Data Object Details */ while (offset <= (data_len-2)) { /* 2 octet object code + CRC32 */ @@ -2941,8 +2932,7 @@ dissect_dnp3_al(tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree) case AL_FUNC_SELECT: /* Select Function Code 0x03 */ /* Create Select Request Data Objects Tree */ - t_robj = proto_tree_add_text(al_tree, tvb, offset, -1, "SELECT Request Data Objects"); - robj_tree = proto_item_add_subtree(t_robj, ett_dnp3_al_objdet); + robj_tree = proto_tree_add_subtree(al_tree, tvb, offset, -1, ett_dnp3_al_objdet, NULL, "SELECT Request Data Objects"); /* Process Data Object Details */ while (offset <= (data_len-2)) { /* 2 octet object code + CRC32 */ @@ -2955,8 +2945,7 @@ dissect_dnp3_al(tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree) /* Functionally identical to 'SELECT' Function Code */ /* Create Operate Request Data Objects Tree */ - t_robj = proto_tree_add_text(al_tree, tvb, offset, -1, "OPERATE Request Data Objects"); - robj_tree = proto_item_add_subtree(t_robj, ett_dnp3_al_objdet); + robj_tree = proto_tree_add_subtree(al_tree, tvb, offset, -1, ett_dnp3_al_objdet, NULL, "OPERATE Request Data Objects"); /* Process Data Object Details */ while (offset <= (data_len-2)) { /* 2 octet object code + CRC32 */ @@ -2970,8 +2959,7 @@ dissect_dnp3_al(tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree) /* Functionally identical to 'SELECT' Function Code */ /* Create Direct Operate Request Data Objects Tree */ - t_robj = proto_tree_add_text(al_tree, tvb, offset, -1, "DIRECT OPERATE Request Data Objects"); - robj_tree = proto_item_add_subtree(t_robj, ett_dnp3_al_objdet); + robj_tree = proto_tree_add_subtree(al_tree, tvb, offset, -1, ett_dnp3_al_objdet, NULL, "DIRECT OPERATE Request Data Objects"); /* Process Data Object Details */ while (offset <= (data_len-2)) { /* 2 octet object code + CRC32 */ @@ -2986,8 +2974,7 @@ dissect_dnp3_al(tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree) case AL_FUNC_FRZCLRNACK: /* Freeze and Clear No ACK Function Code 0x0A */ /* Create Freeze Request Data Objects Tree */ - t_robj = proto_tree_add_text(al_tree, tvb, offset, -1, "Freeze Request Data Objects"); - robj_tree = proto_item_add_subtree(t_robj, ett_dnp3_al_objdet); + robj_tree = proto_tree_add_subtree(al_tree, tvb, offset, -1, ett_dnp3_al_objdet, NULL, "Freeze Request Data Objects"); /* Process Data Object Details */ while (offset <= (data_len-2)) { /* 2 octet object code + CRC32 */ @@ -2999,8 +2986,7 @@ dissect_dnp3_al(tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree) case AL_FUNC_ENSPMSG: /* Enable Spontaneous Messages Function Code 0x14 */ /* Create Enable Spontaneous Messages Data Objects Tree */ - t_robj = proto_tree_add_text(al_tree, tvb, offset, -1, "Enable Spontaneous Msg's Data Objects"); - robj_tree = proto_item_add_subtree(t_robj, ett_dnp3_al_objdet); + robj_tree = proto_tree_add_subtree(al_tree, tvb, offset, -1, ett_dnp3_al_objdet, NULL, "Enable Spontaneous Msg's Data Objects"); /* Process Data Object Details */ while (offset <= (data_len-2)) { /* 2 octet object code + CRC32 */ @@ -3012,8 +2998,7 @@ dissect_dnp3_al(tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree) case AL_FUNC_DISSPMSG: /* Disable Spontaneous Messages Function Code 0x15 */ /* Create Disable Spontaneous Messages Data Objects Tree */ - t_robj = proto_tree_add_text(al_tree, tvb, offset, -1, "Disable Spontaneous Msg's Data Objects"); - robj_tree = proto_item_add_subtree(t_robj, ett_dnp3_al_objdet); + robj_tree = proto_tree_add_subtree(al_tree, tvb, offset, -1, ett_dnp3_al_objdet, NULL, "Disable Spontaneous Msg's Data Objects"); /* Process Data Object Details */ while (offset <= (data_len-2)) { /* 2 octet object code + CRC32 */ @@ -3031,8 +3016,7 @@ dissect_dnp3_al(tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree) case AL_FUNC_DELETEFILE: /* Delete File Function Code 0x1B */ /* Create File Data Objects Tree */ - t_robj = proto_tree_add_text(al_tree, tvb, offset, -1, "File Data Objects"); - robj_tree = proto_item_add_subtree(t_robj, ett_dnp3_al_objdet); + robj_tree = proto_tree_add_subtree(al_tree, tvb, offset, -1, ett_dnp3_al_objdet, NULL, "File Data Objects"); /* Process Data Object Details */ while (offset <= (data_len-2)) { /* 2 octet object code + CRC32 */ @@ -3055,8 +3039,7 @@ dissect_dnp3_al(tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree) if (bytes > 0) { /* Create Response Data Objects Tree */ - t_robj = proto_tree_add_text(al_tree, tvb, offset, -1,"RESPONSE Data Objects"); - robj_tree = proto_item_add_subtree(t_robj, ett_dnp3_al_objdet); + robj_tree = proto_tree_add_subtree(al_tree, tvb, offset, -1, ett_dnp3_al_objdet, NULL, "RESPONSE Data Objects"); /* Process Data Object Details */ while (offset <= (data_len-2)) { /* 2 octet object code + CRC32 */ @@ -3120,7 +3103,7 @@ dissect_dnp3_message(tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree, void* dnp3_tree = proto_item_add_subtree(ti, ett_dnp3); /* Create Subtree for Data Link Layer */ - tdl = proto_tree_add_text(dnp3_tree, tvb, offset, DNP_HDR_LEN, + dl_tree = proto_tree_add_subtree_format(dnp3_tree, tvb, offset, DNP_HDR_LEN, ett_dnp3_dl, &tdl, "Data Link Layer, Len: %u, From: %u, To: %u, ", dl_len, dl_src, dl_dst); if (dl_prm) { if (dl_ctl & DNP3_CTL_DIR) proto_item_append_text(tdl, "DIR, "); @@ -3135,7 +3118,6 @@ dissect_dnp3_message(tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree, void* if (dl_ctl & DNP3_CTL_DFC) proto_item_append_text(tdl, "DFC, "); } proto_item_append_text(tdl, "%s", func_code_str); - dl_tree = proto_item_add_subtree(tdl, ett_dnp3_dl); /* start bytes */ proto_tree_add_item(dl_tree, hf_dnp3_start, tvb, offset, 2, ENC_BIG_ENDIAN); @@ -3214,7 +3196,6 @@ dissect_dnp3_message(tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree, void* (dl_func != DL_FUNC_RESET_LINK) && (dl_func != DL_FUNC_ACK)) { proto_tree *tr_tree, *al_tree; - proto_item *al_chunks; guint8 tr_ctl, tr_seq; gboolean tr_fir, tr_fin; guint8 *tmp, *tmp_ptr; @@ -3243,8 +3224,7 @@ dissect_dnp3_message(tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree, void* proto_tree_add_item(tr_tree, hf_dnp3_tr_seq, tvb, offset, 1, ENC_BIG_ENDIAN); /* Allocate AL chunk tree */ - al_chunks = proto_tree_add_text(tr_tree, tvb, offset + 1, -1, "Application data chunks"); - al_tree = proto_item_add_subtree(al_chunks, ett_dnp3_al_data); + al_tree = proto_tree_add_subtree(tr_tree, tvb, offset + 1, -1, ett_dnp3_al_data, NULL, "Application data chunks"); /* extract the application layer data, validating the CRCs */ diff --git a/epan/dissectors/packet-dns.c b/epan/dissectors/packet-dns.c index 7eff3e326d..958a14f8fe 100644 --- a/epan/dissectors/packet-dns.c +++ b/epan/dissectors/packet-dns.c @@ -1313,12 +1313,11 @@ dissect_dns_query(tvbuff_t *tvb, int offset, int dns_data_offset, } } if (dns_tree != NULL) { - tq = proto_tree_add_text(dns_tree, tvb, offset, len, "%s: type %s, class %s", + q_tree = proto_tree_add_subtree_format(dns_tree, tvb, offset, len, ett_dns_qd, &tq, "%s: type %s, class %s", name_out, type_name, dns_class_name(dns_class)); if (is_mdns) { proto_item_append_text(tq, ", \"%s\" question", qu ? "QU" : "QM"); } - q_tree = proto_item_add_subtree(tq, ett_dns_qd); proto_tree_add_string(q_tree, hf_dns_qry_name, tvb, offset, name_len, name); @@ -1654,18 +1653,16 @@ dissect_dns_answer(tvbuff_t *tvb, int offsetx, int dns_data_offset, */ name_out = format_text(name, strlen(name)); if (dns_type != T_OPT) { - trr = proto_tree_add_text(dns_tree, tvb, offsetx, + rr_tree = proto_tree_add_subtree_format(dns_tree, tvb, offsetx, (data_offset - data_start) + data_len, - "%s: type %s, class %s", + ett_dns_rr, &trr, "%s: type %s, class %s", name_out, type_name, class_name); - rr_tree = proto_item_add_subtree(trr, ett_dns_rr); add_rr_to_tree(rr_tree, tvb, offsetx, name, name_len, dns_type, pinfo, is_mdns); } else { - trr = proto_tree_add_text(dns_tree, tvb, offsetx, + rr_tree = proto_tree_add_subtree_format(dns_tree, tvb, offsetx, (data_offset - data_start) + data_len, - "%s: type %s", name_out, type_name); - rr_tree = proto_item_add_subtree(trr, ett_dns_rr); + ett_dns_rr, &trr, "%s: type %s", name_out, type_name); add_opt_rr_to_tree(rr_tree, tvb, offsetx, name, name_len, is_mdns); } if (is_mdns && flush) { @@ -3489,8 +3486,7 @@ dissect_query_records(tvbuff_t *tvb, int cur_off, int dns_data_offset, start_off = cur_off; - ti = proto_tree_add_text(dns_tree, tvb, start_off, -1, "%s", s); - qatree = proto_item_add_subtree(ti, ett_dns_qry); + qatree = proto_tree_add_subtree(dns_tree, tvb, start_off, -1, ett_dns_qry, &ti, s); while (count-- > 0) { add_off = dissect_dns_query(tvb, cur_off, dns_data_offset, cinfo, qatree, @@ -3514,8 +3510,7 @@ dissect_answer_records(tvbuff_t *tvb, int cur_off, int dns_data_offset, start_off = cur_off; if (dns_tree) { - ti = proto_tree_add_text(dns_tree, tvb, start_off, -1, "%s", name); - qatree = proto_item_add_subtree(ti, ett_dns_ans); + qatree = proto_tree_add_subtree(dns_tree, tvb, start_off, -1, ett_dns_ans, &ti, name); } while (count-- > 0) { add_off = dissect_dns_answer( diff --git a/epan/dissectors/packet-dplay.c b/epan/dissectors/packet-dplay.c index ff29751754..7fb1e74bec 100644 --- a/epan/dissectors/packet-dplay.c +++ b/epan/dissectors/packet-dplay.c @@ -449,12 +449,10 @@ static gint display_unicode_string(proto_tree *tree, gint hf_index, tvbuff_t *tv static gint dissect_sockaddr_in(proto_tree *tree, tvbuff_t *tvb, gint offset) { - proto_item *sa_item = NULL; - proto_tree *sa_tree = NULL; + proto_tree *sa_tree; - sa_item = proto_tree_add_text(tree, tvb, offset, 16, + sa_tree = proto_tree_add_subtree(tree, tvb, offset, 16, ett_dplay_sockaddr, NULL, "DirectPlay sockaddr_in structure"); - sa_tree = proto_item_add_subtree(sa_item, ett_dplay_sockaddr); proto_tree_add_item(sa_tree, hf_dplay_saddr_af, tvb, offset, 2, ENC_LITTLE_ENDIAN); offset += 2; proto_tree_add_item(sa_tree, hf_dplay_saddr_port, tvb, offset, 2, ENC_BIG_ENDIAN); offset += 2; proto_tree_add_item(sa_tree, hf_dplay_saddr_ip, tvb, offset, 4, ENC_BIG_ENDIAN); offset += 4; @@ -465,8 +463,8 @@ static gint dissect_sockaddr_in(proto_tree *tree, tvbuff_t *tvb, gint offset) static gint dissect_session_desc(proto_tree *tree, tvbuff_t *tvb, gint offset) { guint32 flags; - proto_item *flags_item = NULL; - proto_tree *flags_tree = NULL; + proto_item *flags_item; + proto_tree *flags_tree; flags = tvb_get_letohl(tvb, offset+4); @@ -748,8 +746,8 @@ static gint dissect_type02_message(proto_tree *tree, tvbuff_t *tvb, gint offset) { guint32 passwd_offset; guint32 flags; - proto_item *flags_item = NULL; - proto_tree *flags_tree = NULL; + proto_item *flags_item; + proto_tree *flags_tree; passwd_offset = tvb_get_letohl(tvb, offset + 16); flags = tvb_get_letohl(tvb, offset + 20); @@ -868,8 +866,7 @@ static gint dissect_type13_message(proto_tree *tree, tvbuff_t *tvb, gint offset) static gint dissect_type15_message(proto_tree *tree, tvbuff_t *tvb, gint offset) { guint16 second_message_type; - proto_item *enc_item = NULL; - proto_tree *enc_tree = NULL; + proto_tree *enc_tree; second_message_type = tvb_get_letohs(tvb, 72); proto_tree_add_item(tree, hf_dplay_message_guid, tvb, offset, 16, ENC_BIG_ENDIAN); offset += 16; @@ -880,8 +877,7 @@ static gint dissect_type15_message(proto_tree *tree, tvbuff_t *tvb, gint offset) proto_tree_add_item(tree, hf_dplay_type_15_msg_size, tvb, offset, 4, ENC_LITTLE_ENDIAN); offset += 4; proto_tree_add_item(tree, hf_dplay_type_15_packet_offset, tvb, offset, 4, ENC_LITTLE_ENDIAN); offset += 4; - enc_item = proto_tree_add_text(tree, tvb, offset, -1, "DirectPlay encapsulated packet"); - enc_tree = proto_item_add_subtree(enc_item, ett_dplay_enc_packet); + enc_tree = proto_tree_add_subtree(tree, tvb, offset, -1, ett_dplay_enc_packet, NULL, "DirectPlay encapsulated packet"); proto_tree_add_item(enc_tree, hf_dplay_play_str_2, tvb, offset, 4, ENC_ASCII|ENC_NA); offset += 4; proto_tree_add_item(enc_tree, hf_dplay_command_2, tvb, offset, 2, ENC_LITTLE_ENDIAN); offset += 2; @@ -969,29 +965,23 @@ static gint dissect_type29_message(proto_tree *tree, tvbuff_t *tvb, gint offset) } for (i=0; i < player_count; ++i) { - proto_item *spp_item; proto_tree *spp_tree; - spp_item = proto_tree_add_text(tree, tvb, offset, 0, "Player %d", i); - spp_tree = proto_item_add_subtree(spp_item, ett_dplay_type29_spp); + spp_tree = proto_tree_add_subtree_format(tree, tvb, offset, 0, ett_dplay_type29_spp, NULL, "Player %d", i); offset = dissect_dplay_super_packed_player(spp_tree, tvb, offset); } for (i=0; i < group_count; ++i) { - proto_item *spp_item; proto_tree *spp_tree; - spp_item = proto_tree_add_text(tree, tvb, offset, 0, "Group %d", i); - spp_tree = proto_item_add_subtree(spp_item, ett_dplay_type29_spp); + spp_tree = proto_tree_add_subtree_format(tree, tvb, offset, 0, ett_dplay_type29_spp, NULL, "Group %d", i); offset = dissect_dplay_super_packed_player(spp_tree, tvb, offset); } for (i=0; i < shortcut_count; ++i) { - proto_item *spp_item; proto_tree *spp_tree; - spp_item = proto_tree_add_text(tree, tvb, offset, 0, "Shortcut %d", i); - spp_tree = proto_item_add_subtree(spp_item, ett_dplay_type29_spp); + spp_tree = proto_tree_add_subtree_format(tree, tvb, offset, 0, ett_dplay_type29_spp, NULL, "Shortcut %d", i); offset = dissect_dplay_super_packed_player(spp_tree, tvb, offset); } @@ -1042,18 +1032,15 @@ static void dissect_dplay(tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree) if(tree) { - proto_item *dplay_item = NULL; - proto_item *header_item = NULL; - proto_item *data_item = NULL; - proto_tree *dplay_tree = NULL; - proto_tree *dplay_header = NULL; - proto_tree *dplay_data = NULL; + proto_item *dplay_item; + proto_tree *dplay_tree; + proto_tree *dplay_header; + proto_tree *dplay_data; gint offset = 0; dplay_item = proto_tree_add_item(tree, proto_dplay, tvb, 0, -1, ENC_NA); dplay_tree = proto_item_add_subtree(dplay_item, ett_dplay); - header_item = proto_tree_add_text(dplay_tree, tvb, offset, DPLAY_HEADER_OFFSET, "DirectPlay header"); - dplay_header = proto_item_add_subtree(header_item, ett_dplay_header); + dplay_header = proto_tree_add_subtree(dplay_tree, tvb, offset, DPLAY_HEADER_OFFSET, ett_dplay_header, NULL, "DirectPlay header"); offset = dissect_dplay_header(dplay_header, tvb, offset); @@ -1061,8 +1048,7 @@ static void dissect_dplay(tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree) if(message_type == 0x0004) return; - data_item = proto_tree_add_text(dplay_tree, tvb, offset, -1, "DirectPlay data"); - dplay_data = proto_item_add_subtree(data_item, ett_dplay_data); + dplay_data = proto_tree_add_subtree(dplay_tree, tvb, offset, -1, ett_dplay_data, NULL, "DirectPlay data"); switch(message_type) { @@ -1125,16 +1111,14 @@ static void dissect_dplay_player_msg(tvbuff_t *tvb, packet_info *pinfo, proto_tr if(tree) { - proto_item *dplay_item = NULL; - proto_item *data_item = NULL; - proto_tree *dplay_tree = NULL; - proto_tree *data_tree = NULL; + proto_item *dplay_item; + proto_tree *dplay_tree; + proto_tree *data_tree; gint offset = 0; dplay_item = proto_tree_add_item(tree, proto_dplay, tvb, offset, -1, ENC_NA); dplay_tree = proto_item_add_subtree(dplay_item, ett_dplay); - data_item = proto_tree_add_text(dplay_tree, tvb, offset, -1, "Message content"); - data_tree = proto_item_add_subtree(data_item, ett_dplay_data); + data_tree = proto_tree_add_subtree(dplay_tree, tvb, offset, -1, ett_dplay_data, NULL, "Message content"); mixed = tvb_get_letohl(tvb, offset); size = mixed & 0x000FFFFF; token = (mixed & 0xFFF00000) >> 20; diff --git a/epan/dissectors/packet-dpnss.c b/epan/dissectors/packet-dpnss.c index e608b01860..86f951846a 100644 --- a/epan/dissectors/packet-dpnss.c +++ b/epan/dissectors/packet-dpnss.c @@ -1067,7 +1067,6 @@ dissect_dpnns_sup_str_par(tvbuff_t *tvb, proto_tree * tree, int par_type_num, in static int dissect_dpnss_sup_info_str(tvbuff_t *tvb, packet_info *pinfo _U_, proto_tree *tree, gint offset) { - proto_item *sup_str_item; proto_tree *sup_str_tree; gint start_offset, hash_offset, tvb_end_offset, sup_inf_str_end_offset, str_no; gint par_start_offset, par_end_offset, number_of_found_par; @@ -1090,10 +1089,9 @@ dissect_dpnss_sup_info_str(tvbuff_t *tvb, packet_info *pinfo _U_, proto_tree *tr /* offset points to start of supplementary information string */ offset++; hash_offset = tvb_find_guint8(tvb, offset, -1, '#'); - sup_str_item = proto_tree_add_text(tree, tvb, start_offset, hash_offset-start_offset+1, - "Supplementary Information %u: %s",str_no, + sup_str_tree = proto_tree_add_subtree_format(tree, tvb, start_offset, hash_offset-start_offset+1, + ett_dpnss_sup_str, NULL, "Supplementary Information %u: %s",str_no, tvb_format_text(tvb,start_offset,hash_offset-start_offset+1)); - sup_str_tree = proto_item_add_subtree(sup_str_item, ett_dpnss_sup_str); /* SUPPLEMENTARY INFORMATION STRING IDENTIFIER * Get the parameter number string and translate it to an index into the dpnns_sup_serv_set. * The number may have a trailing alpha character at the end. @@ -1160,7 +1158,7 @@ dissect_dpnss_sup_info_str(tvbuff_t *tvb, packet_info *pinfo _U_, proto_tree *tr static int dissect_dpnss_LbL_msg(tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree) { - proto_item *sic_field_item, *ind_field_item; + proto_item *ind_field_item; proto_tree *sic_field_tree, *ind_field_tree; int offset = 0; int tvb_end_offset; @@ -1205,8 +1203,7 @@ dissect_dpnss_LbL_msg(tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree) * Note: On data calls the SIC may comprise more than one octet. * The Service Indicator Code is coded in accordance with ANNEX 1. */ - sic_field_item = proto_tree_add_text(tree, tvb, offset, -1, "Service Indicator Code"); - sic_field_tree = proto_item_add_subtree(sic_field_item, ett_dpnss_sic_field); + sic_field_tree = proto_tree_add_subtree(tree, tvb, offset, -1, ett_dpnss_sic_field, NULL, "Service Indicator Code"); offset =dissect_dpnss_sic(tvb, pinfo, sic_field_tree, offset); /* Indication Field */ ind_field_item = proto_tree_add_text(tree, tvb, offset, -1, @@ -1255,7 +1252,7 @@ dissect_dpnss_LbL_msg(tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree) static int dissect_dpnss_e2e_msg(tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree) { - proto_item *sel_field_item, *sic_field_item, *ind_field_item; + proto_item *sel_field_item, *ind_field_item; proto_tree *sel_field_tree, *sic_field_tree, *ind_field_tree; int offset = 0; int tvb_end_offset; @@ -1305,8 +1302,7 @@ dissect_dpnss_e2e_msg(tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree) * Note: On data calls the SIC may comprise more than one octet. * The Service Indicator Code is coded in accordance with ANNEX 1. */ - sic_field_item = proto_tree_add_text(tree, tvb, offset, -1, "Service Indicator Code"); - sic_field_tree = proto_item_add_subtree(sic_field_item, ett_dpnss_sic_field); + sic_field_tree = proto_tree_add_subtree(tree, tvb, offset, -1, ett_dpnss_sic_field, NULL, "Service Indicator Code"); offset =dissect_dpnss_sic(tvb, pinfo, sic_field_tree, offset); /* * Selection Field @@ -1352,7 +1348,7 @@ dissect_dpnss_e2e_msg(tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree) static int dissect_dpnss_cc_msg(tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree) { - proto_item *sel_field_item, *sic_field_item, *ind_field_item; + proto_item *sel_field_item, *ind_field_item; proto_tree *sel_field_tree, *sic_field_tree, *ind_field_tree; int offset = 0; int tvb_end_offset; @@ -1382,8 +1378,7 @@ dissect_dpnss_cc_msg(tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree) * Note: On data calls the SIC may comprise more than one octet. * The Service Indicator Code is coded in accordance with ANNEX 1. */ - sic_field_item = proto_tree_add_text(tree, tvb, offset, -1, "Service Indicator Code"); - sic_field_tree = proto_item_add_subtree(sic_field_item, ett_dpnss_sic_field); + sic_field_tree = proto_tree_add_subtree(tree, tvb, offset, -1, ett_dpnss_sic_field, NULL, "Service Indicator Code"); offset =dissect_dpnss_sic(tvb, pinfo, sic_field_tree, offset); /* * Selection Field diff --git a/epan/dissectors/packet-drda.c b/epan/dissectors/packet-drda.c index c82565c771..79d14005f9 100644 --- a/epan/dissectors/packet-drda.c +++ b/epan/dissectors/packet-drda.c @@ -720,9 +720,8 @@ dissect_drda(tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree, void* data _U_ proto_item_append_text(ti, " (%s)", val_to_str_ext(iCommand, &drda_opcode_vals_ext, "Unknown (0x%02x)")); drdaroot_tree = proto_item_add_subtree(ti, ett_drda); - ti = proto_tree_add_text(drdaroot_tree, tvb, offset, 10, DRDA_TEXT_DDM); + drda_tree = proto_tree_add_subtree(drdaroot_tree, tvb, offset, 10, ett_drda_ddm, &ti, DRDA_TEXT_DDM); proto_item_append_text(ti, " (%s)", val_to_str_ext(iCommand, &drda_opcode_abbr_ext, "Unknown (0x%02x)")); - drda_tree = proto_item_add_subtree(ti, ett_drda_ddm); proto_tree_add_item(drda_tree, hf_drda_ddm_length, tvb, offset + 0, 2, ENC_BIG_ENDIAN); proto_tree_add_item(drda_tree, hf_drda_ddm_magic, tvb, offset + 2, 1, ENC_BIG_ENDIAN); @@ -754,10 +753,9 @@ dissect_drda(tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree, void* data _U_ if (tvb_length_remaining(tvb, offset) >= iLengthParam) { iParameterCP = tvb_get_ntohs(tvb, offset + 2); - ti = proto_tree_add_text(drdaroot_tree, tvb, offset, iLengthParam, - DRDA_TEXT_PARAM); + drda_tree_sub = proto_tree_add_subtree(drdaroot_tree, tvb, offset, iLengthParam, + ett_drda_param, &ti, DRDA_TEXT_PARAM); proto_item_append_text(ti, " (%s)", val_to_str_ext(iParameterCP, &drda_opcode_vals_ext, "Unknown (0x%02x)")); - drda_tree_sub = proto_item_add_subtree(ti, ett_drda_param); proto_tree_add_item(drda_tree_sub, hf_drda_param_length, tvb, offset, 2, ENC_BIG_ENDIAN); proto_tree_add_item(drda_tree_sub, hf_drda_param_codepoint, tvb, offset + 2, 2, ENC_BIG_ENDIAN); proto_tree_add_item(drda_tree_sub, hf_drda_param_data, tvb, offset + 4, iLengthParam - 4, ENC_UTF_8|ENC_NA); diff --git a/epan/dissectors/packet-dsi.c b/epan/dissectors/packet-dsi.c index 3271105fec..2ed4c808f9 100644 --- a/epan/dissectors/packet-dsi.c +++ b/epan/dissectors/packet-dsi.c @@ -160,12 +160,10 @@ static gint dissect_dsi_open_session(tvbuff_t *tvb, proto_tree *dsi_tree, gint offset, gint dsi_length) { proto_tree *tree; - proto_item *ti; guint8 type; guint8 len; - ti = proto_tree_add_text(dsi_tree, tvb, offset, -1, "Open Session"); - tree = proto_item_add_subtree(ti, ett_dsi_open); + tree = proto_tree_add_subtree(dsi_tree, tvb, offset, -1, ett_dsi_open, NULL, "Open Session"); while( dsi_length >2 ) { @@ -207,8 +205,7 @@ dissect_dsi_attention(tvbuff_t *tvb, proto_tree *dsi_tree, gint offset) return offset; flag = tvb_get_ntohs(tvb, offset); - ti = proto_tree_add_text(dsi_tree, tvb, offset, -1, "Attention"); - tree = proto_item_add_subtree(ti, ett_dsi_attn); + tree = proto_tree_add_subtree(dsi_tree, tvb, offset, -1, ett_dsi_attn, NULL, "Attention"); ti = proto_tree_add_item(tree, hf_dsi_attn_flag, tvb, offset, 2, ENC_BIG_ENDIAN); tree = proto_item_add_subtree(ti, ett_dsi_attn_flag); diff --git a/epan/dissectors/packet-dtcp-ip.c b/epan/dissectors/packet-dtcp-ip.c index 8a667127aa..178a9d3e37 100644 --- a/epan/dissectors/packet-dtcp-ip.c +++ b/epan/dissectors/packet-dtcp-ip.c @@ -140,7 +140,7 @@ dissect_dtcp_ip(tvbuff_t *tvb, packet_info *pinfo, { guint offset = 0; guint16 length; - proto_item *pi, *pi_ctrl; + proto_item *pi; proto_tree *dtcp_ip_tree, *dtcp_ip_ctrl_tree; guint8 subfct_val; const gchar *subfct_str; @@ -169,9 +169,8 @@ dissect_dtcp_ip(tvbuff_t *tvb, packet_info *pinfo, tvb, offset, 2, ENC_BIG_ENDIAN); offset += 2; - pi_ctrl = proto_tree_add_text(dtcp_ip_tree, - tvb, offset, CTRL_LEN, "Control"); - dtcp_ip_ctrl_tree = proto_item_add_subtree(pi_ctrl, ett_dtcp_ip_ctrl); + dtcp_ip_ctrl_tree = proto_tree_add_subtree(dtcp_ip_tree, + tvb, offset, CTRL_LEN, ett_dtcp_ip_ctrl, NULL, "Control"); /* for now, we don't display the 4 reserved bits */ proto_tree_add_item(dtcp_ip_ctrl_tree, hf_dtcp_ip_ctype, diff --git a/epan/dissectors/packet-dtls.c b/epan/dissectors/packet-dtls.c index 71bf1eddd0..c48d7d624f 100644 --- a/epan/dissectors/packet-dtls.c +++ b/epan/dissectors/packet-dtls.c @@ -1568,7 +1568,6 @@ dissect_dtls_hnd_hello_common(tvbuff_t *tvb, proto_tree *tree, /* show the client's random challenge */ nstime_t gmt_unix_time; guint8 session_id_length; - proto_item *ti_rnd; proto_tree *dtls_rnd_tree; if (tree || ssl) @@ -1593,8 +1592,7 @@ dissect_dtls_hnd_hello_common(tvbuff_t *tvb, proto_tree *tree, ssl->state); } - ti_rnd = proto_tree_add_text(tree, tvb, offset, 32, "Random"); - dtls_rnd_tree = proto_item_add_subtree(ti_rnd, ett_dtls_random); + dtls_rnd_tree = proto_tree_add_subtree(tree, tvb, offset, 32, ett_dtls_random, NULL, "Random"); /* show the time */ gmt_unix_time.secs = tvb_get_ntohl(tvb, offset); @@ -1907,7 +1905,6 @@ dissect_dtls_hnd_new_ses_ticket(tvbuff_t *tvb, proto_tree *tree, guint32 offset, guint32 length) { guint nst_len; - proto_item *ti; proto_tree *subtree; @@ -1916,8 +1913,7 @@ dissect_dtls_hnd_new_ses_ticket(tvbuff_t *tvb, return; } - ti = proto_tree_add_text(tree, tvb, offset, 6+nst_len, "TLS Session Ticket"); - subtree = proto_item_add_subtree(ti, ett_dtls_new_ses_ticket); + subtree = proto_tree_add_subtree(tree, tvb, offset, 6+nst_len, ett_dtls_new_ses_ticket, NULL, "TLS Session Ticket"); proto_tree_add_item(subtree, hf_dtls_handshake_session_ticket_lifetime_hint, tvb, offset, 4, ENC_BIG_ENDIAN); diff --git a/epan/dissectors/packet-dtn.c b/epan/dissectors/packet-dtn.c index a42839ba82..5492c58e0c 100644 --- a/epan/dissectors/packet-dtn.c +++ b/epan/dissectors/packet-dtn.c @@ -485,13 +485,11 @@ static int dissect_dictionary(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset, dictionary_data_t* dict_data, guint8 pri_hdr_procflags, gchar **bundle_custodian) { - proto_item *ti; proto_tree *dict_tree; int sdnv_length; const gchar *src_node, *dst_node; - ti = proto_tree_add_text(tree, tvb, offset, dict_data->bundle_header_dict_length, "Dictionary"); - dict_tree = proto_item_add_subtree(ti, ett_dictionary); + dict_tree = proto_tree_add_subtree(tree, tvb, offset, dict_data->bundle_header_dict_length, ett_dictionary, NULL, "Dictionary"); /* * If the dictionary length is 0, then the CBHE block compression method is applied. (RFC6260) @@ -1068,8 +1066,7 @@ dissect_payload_header(proto_tree *tree, tvbuff_t *tvb, packet_info *pinfo, int proto_tree *payload_tree; int sdnv_length, payload_length; - payload_item = proto_tree_add_text(tree, tvb, offset, -1, "Payload Header"); - payload_tree = proto_item_add_subtree(payload_item, ett_payload_hdr); + payload_tree = proto_tree_add_subtree(tree, tvb, offset, -1, ett_payload_hdr, &payload_item, "Payload Header"); proto_tree_add_text(payload_tree, tvb, offset, 1, "Header Type: 1"); ++offset; @@ -1183,8 +1180,8 @@ dissect_admin_record(proto_tree *primary_tree, tvbuff_t *tvb, packet_info *pinfo int endpoint_length; *success = FALSE; - admin_record_item = proto_tree_add_text(primary_tree, tvb, offset, -1, "Administrative Record"); - admin_record_tree = proto_item_add_subtree(admin_record_item, ett_admin_record); + admin_record_tree = proto_tree_add_subtree(primary_tree, tvb, offset, -1, + ett_admin_record, &admin_record_item, "Administrative Record"); record_type = tvb_get_guint8(tvb, offset); proto_tree_add_item(admin_record_tree, hf_bundle_admin_record_type, tvb, offset, 1, ENC_NA); @@ -1472,8 +1469,7 @@ display_metadata_block(proto_tree *tree, tvbuff_t *tvb, packet_info *pinfo, int proto_item *block_flag_item; type = tvb_get_guint8(tvb, offset); - block_item = proto_tree_add_text(tree, tvb, offset, -1, "Metadata Block"); - block_tree = proto_item_add_subtree(block_item, ett_metadata_hdr); + block_tree = proto_tree_add_subtree(tree, tvb, offset, -1, ett_metadata_hdr, &block_item, "Metadata Block"); proto_tree_add_item(block_tree, hf_bundle_block_type_code, tvb, offset, 1, ENC_BIG_ENDIAN); ++offset; @@ -1741,8 +1737,7 @@ dissect_dtn_contact_header(tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree, ti = proto_tree_add_item(tree, proto_tcp_conv, tvb, offset, -1, ENC_NA); conv_proto_tree = proto_item_add_subtree(ti, ett_tcp_conv); - ti = proto_tree_add_text(conv_proto_tree, tvb, offset, -1, "Contact Header"); - conv_tree = proto_item_add_subtree(ti, ett_tcp_conv); + conv_tree = proto_tree_add_subtree(conv_proto_tree, tvb, offset, -1, ett_tcp_conv, NULL, "Contact Header"); proto_tree_add_item(conv_tree, hf_contact_hdr_magic, tvb, offset, 4, ENC_NA|ENC_ASCII); offset += 4; @@ -1817,7 +1812,7 @@ dissect_tcpcl_pdu(tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree, void* dat guint8 conv_hdr; int offset = 0; int sdnv_length, segment_length, convergence_hdr_size; - proto_item *ci, *conv_item, *sub_item; + proto_item *ci, *sub_item; proto_tree *conv_proto_tree, *conv_tree, *sub_tree; fragment_head *frag_msg; tvbuff_t *new_tvb; @@ -1829,8 +1824,7 @@ dissect_tcpcl_pdu(tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree, void* dat ci = proto_tree_add_item(tree, proto_tcp_conv, tvb, offset, -1, ENC_NA); conv_proto_tree = proto_item_add_subtree(ci, ett_tcp_conv); - conv_item = proto_tree_add_text(conv_proto_tree, tvb, 0, -1, "TCP Convergence Header"); - conv_tree = proto_item_add_subtree(conv_item, ett_tcp_conv_hdr); + conv_tree = proto_tree_add_subtree(conv_proto_tree, tvb, 0, -1, ett_tcp_conv_hdr, NULL, "TCP Convergence Header"); conv_hdr = tvb_get_guint8(tvb, offset); proto_tree_add_item(conv_tree, hf_tcp_convergence_pkt_type, tvb, offset, 1, ENC_NA); @@ -2050,8 +2044,7 @@ dissect_bundle(tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree, void *data _ ti = proto_tree_add_item(tree, proto_bundle, tvb, offset, -1, ENC_NA); bundle_tree = proto_item_add_subtree(ti, ett_bundle); - ti = proto_tree_add_text(tree, tvb, offset, -1, "Primary Bundle Header"); - primary_tree = proto_item_add_subtree(ti, ett_primary_hdr); + primary_tree = proto_tree_add_subtree(tree, tvb, offset, -1, ett_primary_hdr, &ti, "Primary Bundle Header"); proto_tree_add_item(primary_tree, hf_bundle_pdu_version, tvb, offset, 1, ENC_BIG_ENDIAN); if (version == 4) { diff --git a/epan/dissectors/packet-dtp.c b/epan/dissectors/packet-dtp.c index 3e4d7f95e4..f13849f603 100644 --- a/epan/dissectors/packet-dtp.c +++ b/epan/dissectors/packet-dtp.c @@ -186,10 +186,9 @@ dissect_dtp(tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree) type = tvb_get_ntohs(tvb, offset); length = tvb_get_ntohs(tvb, offset + 2); - ti = proto_tree_add_text(dtp_tree, tvb, offset, length, "%s", + tlv_tree = proto_tree_add_subtree(dtp_tree, tvb, offset, length, ett_dtp_tlv, NULL, val_to_str(type, dtp_tlv_type_vals, "Unknown TLV type: 0x%02x")); - tlv_tree = proto_item_add_subtree(ti, ett_dtp_tlv); proto_tree_add_uint(tlv_tree, hf_dtp_tlvtype, tvb, offset, 2, type); offset+=2; @@ -227,7 +226,6 @@ dissect_dtp_tlv(packet_info *pinfo, tvbuff_t *tvb, int offset, int length, case DTP_TLV_TRSTATUS: if (length == 1) { /* Value field length must be 1 byte */ - proto_item * value_item = NULL; proto_tree * field_tree = NULL; guint8 trunk_status = tvb_get_guint8(tvb, offset); @@ -236,11 +234,10 @@ dissect_dtp_tlv(packet_info *pinfo, tvbuff_t *tvb, int offset, int length, val_to_str_const(DTP_TOSVALUE(trunk_status), dtp_tos_vals, "Unknown operating status"), val_to_str_const(DTP_TASVALUE(trunk_status), dtp_tas_vals, "Unknown administrative status"), trunk_status); - value_item = proto_tree_add_text(tree, tvb, offset, length, "Value: %s/%s (0x%02x)", + field_tree = proto_tree_add_subtree_format(tree, tvb, offset, length, ett_dtp_status, NULL, "Value: %s/%s (0x%02x)", val_to_str_const(DTP_TOSVALUE(trunk_status), dtp_tos_vals, "Unknown operating status"), val_to_str_const(DTP_TASVALUE(trunk_status), dtp_tas_vals, "Unknown administrative status"), trunk_status); - field_tree = proto_item_add_subtree(value_item, ett_dtp_status); proto_tree_add_item(field_tree, hf_dtp_tos, tvb, offset, length, ENC_NA); proto_tree_add_item(field_tree, hf_dtp_tas, tvb, offset, length, ENC_NA); } @@ -251,19 +248,17 @@ dissect_dtp_tlv(packet_info *pinfo, tvbuff_t *tvb, int offset, int length, case DTP_TLV_TRTYPE: if (length == 1) { /* Value field length must be 1 byte */ - proto_item * value_item = NULL; - proto_tree * field_tree = NULL; + proto_tree * field_tree; guint8 trunk_type = tvb_get_guint8(tvb, offset); proto_item_append_text(ti, " (Operating/Administrative): %s/%s (0x%02x)", val_to_str_const(DTP_TOTVALUE(trunk_type), dtp_tot_vals, "Unknown operating type"), val_to_str_const(DTP_TATVALUE(trunk_type), dtp_tat_vals, "Unknown administrative type"), trunk_type); - value_item = proto_tree_add_text(tree, tvb, offset, length, "Value: %s/%s (0x%02x)", + field_tree = proto_tree_add_subtree_format(tree, tvb, offset, length, ett_dtp_type, NULL, "Value: %s/%s (0x%02x)", val_to_str_const(DTP_TOTVALUE(trunk_type), dtp_tot_vals, "Unknown operating type"), val_to_str_const(DTP_TATVALUE(trunk_type), dtp_tat_vals, "Unknown administrative type"), trunk_type); - field_tree = proto_item_add_subtree(value_item, ett_dtp_type); proto_tree_add_item(field_tree, hf_dtp_tot, tvb, offset, length, ENC_NA); proto_tree_add_item(field_tree, hf_dtp_tat, tvb, offset, length, ENC_NA); } diff --git a/epan/dissectors/packet-dtpt.c b/epan/dissectors/packet-dtpt.c index ec15f36b7c..f85a329c46 100644 --- a/epan/dissectors/packet-dtpt.c +++ b/epan/dissectors/packet-dtpt.c @@ -240,12 +240,11 @@ dissect_dtpt_wstring(tvbuff_t *tvb, guint offset, proto_tree *tree, int hfindex) wstring_size += wstring_padding; } if (tree) { - proto_item *dtpt_wstring_item = NULL; - proto_tree *dtpt_wstring_tree = NULL; + proto_item *dtpt_wstring_item; + proto_tree *dtpt_wstring_tree; dtpt_wstring_item = proto_tree_add_string(tree, hfindex, tvb, offset+0, 4+wstring_size, wstring_data); - if (dtpt_wstring_item) - dtpt_wstring_tree = proto_item_add_subtree(dtpt_wstring_item, ett_dtpt_wstring); + dtpt_wstring_tree = proto_item_add_subtree(dtpt_wstring_item, ett_dtpt_wstring); if (dtpt_wstring_tree) { proto_tree_add_uint(dtpt_wstring_tree, hf_dtpt_wstring_length, tvb, offset+0, 4, wstring_length); @@ -333,16 +332,12 @@ dissect_dtpt_sockaddr(tvbuff_t *tvb, guint offset, proto_tree *tree, int hfindex sockaddr_length = tvb_get_letohl(tvb, offset + 0); if (tree) { - sockaddr_item = proto_tree_add_text(tree, - tvb, offset, sockaddr_len1+sockaddr_len2, "%s", proto_registrar_get_name(hfindex)); - - if (sockaddr_item) - sockaddr_tree = proto_item_add_subtree(sockaddr_item, ett_dtpt_sockaddr); - if (sockaddr_tree) { - if (sockaddr_type == SOCKADDR_WITH_LEN) - proto_tree_add_uint(sockaddr_tree, hf_dtpt_sockaddr_length, + sockaddr_tree = proto_tree_add_subtree(tree, tvb, offset, sockaddr_len1+sockaddr_len2, + ett_dtpt_sockaddr, NULL, proto_registrar_get_name(hfindex)); + + if (sockaddr_type == SOCKADDR_WITH_LEN) + proto_tree_add_uint(sockaddr_tree, hf_dtpt_sockaddr_length, tvb, offset+0, 4, sockaddr_length); - } } offset += sockaddr_len1; @@ -431,10 +426,9 @@ dissect_dtpt_conversation(tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree, v static int dissect_dtpt_data(tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree) { - proto_item *dtpt_item = NULL; - proto_tree *dtpt_tree = NULL; - proto_item *dtpt_queryset_item = NULL; - proto_tree *dtpt_queryset_tree = NULL; + proto_item *dtpt_item; + proto_tree *dtpt_tree; + proto_tree *dtpt_queryset_tree; guint offset = 0; guint32 queryset_rawsize; guint32 queryset_size; @@ -444,7 +438,7 @@ dissect_dtpt_data(tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree) guint32 num_addrs; guint32 addrs_length1 = 0; proto_item *dtpt_addrs_item = NULL; - proto_tree *dtpt_addrs_tree = NULL; + proto_tree *dtpt_addrs_tree; guint32 blob_rawsize = 0; guint32 blob_size = 0; guint32 blob_data_length = 0; @@ -457,21 +451,15 @@ dissect_dtpt_data(tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree) col_set_str(pinfo->cinfo, COL_PROTOCOL, "DTPT"); col_set_str(pinfo->cinfo, COL_INFO, "QuerySet"); - if (tree) { - dtpt_item = proto_tree_add_item(tree, proto_dtpt, - tvb, 0, -1, ENC_NA); - if (dtpt_item) - dtpt_tree = proto_item_add_subtree(dtpt_item, ett_dtpt); - } + dtpt_item = proto_tree_add_item(tree, proto_dtpt, tvb, 0, -1, ENC_NA); + dtpt_tree = proto_item_add_subtree(dtpt_item, ett_dtpt); if (dtpt_tree) { proto_tree_add_uint(dtpt_tree, hf_dtpt_queryset_rawsize, tvb, 0, 4, queryset_rawsize); - dtpt_queryset_item = proto_tree_add_text(dtpt_tree, - tvb, 4, 60, "QuerySet raw"); - if (dtpt_queryset_item) - dtpt_queryset_tree = proto_item_add_subtree(dtpt_queryset_item, ett_dtpt_queryset); + dtpt_queryset_tree = proto_tree_add_subtree(dtpt_tree, tvb, 4, 60, + ett_dtpt_queryset, NULL, "QuerySet raw"); if (dtpt_queryset_tree) { proto_tree_add_uint(dtpt_queryset_tree, hf_dtpt_queryset_size, @@ -524,11 +512,10 @@ dissect_dtpt_data(tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree) proto_tree *dtpt_protocols_tree = NULL; guint32 i; - dtpt_protocols_item = proto_tree_add_text(dtpt_tree, + dtpt_protocols_tree = proto_tree_add_subtree_format(dtpt_tree, tvb, offset, 4+(num_protocols>0?4:0)+num_protocols*8, - "Protocols: %d", num_protocols); - if (dtpt_protocols_item) - dtpt_protocols_tree = proto_item_add_subtree(dtpt_protocols_item, ett_dtpt_protocols); + ett_dtpt_protocols, NULL, "Protocols: %d", num_protocols); + if (dtpt_protocols_tree) { proto_tree_add_uint(dtpt_protocols_tree, hf_dtpt_protocols_number, tvb, offset, 4, num_protocols); @@ -539,10 +526,9 @@ dissect_dtpt_data(tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree) proto_item *dtpt_protocol_item = NULL; proto_tree *dtpt_protocol_tree = NULL; - dtpt_protocol_item = proto_tree_add_text(dtpt_protocols_tree, - tvb, offset+4+4+i*8, 8, "Protocol[%d]", i+1); - if (dtpt_protocol_item) - dtpt_protocol_tree = proto_item_add_subtree(dtpt_protocol_item, ett_dtpt_protocol); + dtpt_protocol_tree = proto_tree_add_subtree_format(dtpt_protocols_tree, + tvb, offset+4+4+i*8, 8, ett_dtpt_protocol, NULL, "Protocol[%d]", i+1); + if (dtpt_protocol_tree) { proto_tree_add_uint(dtpt_protocol_tree, hf_dtpt_protocol_family, tvb, offset+4+4+i*8, 4, tvb_get_letohl(tvb, offset+4+4+i*8)); @@ -553,7 +539,7 @@ dissect_dtpt_data(tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree) } } offset += 4 + (num_protocols>0?4:0) + num_protocols*8; - offset = dissect_dtpt_wstring(tvb, offset, dtpt_tree, hf_dtpt_query_string ); + offset = dissect_dtpt_wstring(tvb, offset, dtpt_tree, hf_dtpt_query_string); addrs_start = offset; num_addrs = tvb_get_letohl(tvb, offset); @@ -561,10 +547,8 @@ dissect_dtpt_data(tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree) addrs_length1 = tvb_get_letohl(tvb, offset+4); } if (dtpt_tree) { - dtpt_addrs_item = proto_tree_add_text(dtpt_tree, - tvb, offset, -1, "Addresses"); - if (dtpt_addrs_item) - dtpt_addrs_tree = proto_item_add_subtree(dtpt_addrs_item, ett_dtpt_cs_addrs); + dtpt_addrs_tree = proto_tree_add_subtree(dtpt_tree, + tvb, offset, -1, ett_dtpt_cs_addrs, &dtpt_addrs_item, "Addresses"); if (dtpt_addrs_tree) { proto_tree_add_uint(dtpt_addrs_tree, hf_dtpt_cs_addrs_number, tvb, offset, 4, num_addrs); @@ -582,18 +566,15 @@ dissect_dtpt_data(tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree) offset2 = offset + 24*num_addrs; for (i=0;i<num_addrs;i++,offset+=24) { - proto_item *dtpt_addr1_item = NULL; proto_tree *dtpt_addr1_tree = NULL; proto_item *dtpt_addr2_item = NULL; proto_tree *dtpt_addr2_tree = NULL; guint32 offset2_start; if (dtpt_addrs_tree) { - dtpt_addr1_item = proto_tree_add_text(dtpt_addrs_tree, - tvb, offset, 24, "Address[%u] Part 1", i+1); - if (dtpt_addr1_item) - dtpt_addr1_tree = proto_item_add_subtree(dtpt_addr1_item, - ett_dtpt_cs_addr1); + dtpt_addr1_tree = proto_tree_add_subtree_format(dtpt_addrs_tree, + tvb, offset, 24, ett_dtpt_cs_addr1, NULL, "Address[%u] Part 1", i+1); + if (dtpt_addr1_tree) { proto_tree_add_uint(dtpt_addr1_tree, hf_dtpt_cs_addr_local_pointer, tvb, offset+ 0, 4, tvb_get_letohl(tvb, offset+ 0)); @@ -609,11 +590,8 @@ dissect_dtpt_data(tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree) tvb, offset+20, 4, tvb_get_letohl(tvb, offset+20)); } - dtpt_addr2_item = proto_tree_add_text(dtpt_addrs_tree, - tvb, offset2, -1, "Address[%u] Part 2", i+1); - if (dtpt_addr2_item) - dtpt_addr2_tree = proto_item_add_subtree(dtpt_addr2_item, - ett_dtpt_cs_addr2); + dtpt_addr2_tree = proto_tree_add_subtree_format(dtpt_addrs_tree, + tvb, offset2, -1, ett_dtpt_cs_addr2, &dtpt_addr2_item, "Address[%u] Part 2", i+1); } offset2_start = offset2; @@ -621,35 +599,29 @@ dissect_dtpt_data(tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree) offset2 = dissect_dtpt_sockaddr(tvb, offset2, dtpt_addr2_tree, hf_dtpt_cs_addr_local, SOCKADDR_WITH_LEN); offset2 = dissect_dtpt_sockaddr(tvb, offset2, dtpt_addr2_tree, hf_dtpt_cs_addr_remote, SOCKADDR_WITH_LEN); - if (dtpt_addr2_item) - proto_item_set_len(dtpt_addr2_item, + proto_item_set_len(dtpt_addr2_item, offset2 - offset2_start); } offset = offset2; } - if (dtpt_addrs_item) - proto_item_set_len(dtpt_addrs_item, offset - addrs_start); - - if (dtpt_item) - proto_item_set_len(dtpt_item, offset); + proto_item_set_len(dtpt_addrs_item, offset - addrs_start); + proto_item_set_len(dtpt_item, offset); blob_rawsize = tvb_get_letohl(tvb, offset); if (blob_rawsize>=4) { blob_size = tvb_get_letohl(tvb,offset+4+0); } + if (dtpt_tree) { - proto_item *dtpt_blobraw_item = NULL; - proto_tree *dtpt_blobraw_tree = NULL; + proto_tree *dtpt_blobraw_tree; proto_tree_add_uint(dtpt_tree, hf_dtpt_blob_rawsize, tvb, offset+0, 4, blob_rawsize); if (blob_rawsize>0) { - dtpt_blobraw_item = proto_tree_add_text(dtpt_tree, - tvb, offset+4, blob_rawsize, "Blob raw"); - if (dtpt_blobraw_item) - dtpt_blobraw_tree = proto_item_add_subtree(dtpt_blobraw_item, - ett_dtpt_blobraw); + dtpt_blobraw_tree = proto_tree_add_subtree(dtpt_tree, + tvb, offset+4, blob_rawsize, ett_dtpt_blobraw, NULL, "Blob raw"); + if (dtpt_blobraw_tree) { proto_tree_add_uint(dtpt_blobraw_tree, hf_dtpt_blob_size, tvb, offset+4+0, 4, blob_size); @@ -661,21 +633,17 @@ dissect_dtpt_data(tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree) offset += 4+blob_rawsize; - if (dtpt_item) - proto_item_set_len(dtpt_item, offset); + proto_item_set_len(dtpt_item, offset); if (blob_size>0) { - proto_item *dtpt_blob_item = NULL; - proto_tree *dtpt_blob_tree = NULL; + proto_tree *dtpt_blob_tree; blob_data_length = tvb_get_letohl(tvb,offset); if (dtpt_tree) { - dtpt_blob_item = proto_tree_add_text(dtpt_tree, - tvb, offset, 4+blob_data_length, "Blob"); - if (dtpt_blob_item) - dtpt_blob_tree = proto_item_add_subtree(dtpt_blob_item, - ett_dtpt_blob); + dtpt_blob_tree = proto_tree_add_subtree(dtpt_tree, + tvb, offset, 4+blob_data_length, ett_dtpt_blob, NULL, "Blob"); + if (dtpt_blob_tree) { proto_tree_add_uint(dtpt_blob_tree, hf_dtpt_blob_data_length, tvb, offset+0, 4, blob_data_length); @@ -694,8 +662,8 @@ dissect_dtpt_data(tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree) static int dissect_dtpt(tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree, void *data _U_) { - proto_tree *dtpt_tree = NULL; - proto_item *dtpt_item = NULL; + proto_tree *dtpt_tree; + proto_item *dtpt_item; guint8 version; guint8 message_type; guint32 flags; @@ -730,12 +698,8 @@ dissect_dtpt(tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree, void *data _U_ conversation_set_dissector(c, dtpt_conversation_handle); } - if (tree) { - dtpt_item = proto_tree_add_item(tree, proto_dtpt, - tvb, 0, -1, ENC_NA); - if (dtpt_item) - dtpt_tree = proto_item_add_subtree(dtpt_item, ett_dtpt); - } + dtpt_item = proto_tree_add_item(tree, proto_dtpt, tvb, 0, -1, ENC_NA); + dtpt_tree = proto_item_add_subtree(dtpt_item, ett_dtpt); if (dtpt_tree) { proto_tree_add_uint(dtpt_tree, hf_dtpt_version, diff --git a/epan/dissectors/packet-dua.c b/epan/dissectors/packet-dua.c index b42b49470e..42cc6eba9b 100644 --- a/epan/dissectors/packet-dua.c +++ b/epan/dissectors/packet-dua.c @@ -469,10 +469,9 @@ 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(dua_tree, parameter_tvb, PARAMETER_HEADER_OFFSET, - tvb_length(parameter_tvb), "%s", + parameter_tree = proto_tree_add_subtree(dua_tree, parameter_tvb, PARAMETER_HEADER_OFFSET, + -1, ett_dua_parameter, ¶meter_item, val_to_str_const(tag, parameter_tag_values, "Unknown parameter")); - parameter_tree = proto_item_add_subtree(parameter_item, ett_dua_parameter); /* add tag and length to the dua tree */ proto_tree_add_item(parameter_tree, hf_parameter_tag, diff --git a/epan/dissectors/packet-dvb-ait.c b/epan/dissectors/packet-dvb-ait.c index aa31bfdb25..db65844e75 100644 --- a/epan/dissectors/packet-dvb-ait.c +++ b/epan/dissectors/packet-dvb-ait.c @@ -284,8 +284,7 @@ dissect_dvb_ait_descriptor(tvbuff_t *tvb, guint offset, gint ret; guint offset_start; guint8 tag, len; - proto_item *descr_tree_ti = NULL; - proto_tree *descr_tree = NULL; + proto_tree *descr_tree; tag = tvb_get_guint8(tvb, offset); len = tvb_get_guint8(tvb, offset+1); @@ -297,9 +296,8 @@ dissect_dvb_ait_descriptor(tvbuff_t *tvb, guint offset, if (try_val_to_str(tag, ait_descr_tag)) { offset_start = offset; - descr_tree_ti = proto_tree_add_text(tree, tvb, offset_start, len+2, - "Descriptor Tag=0x%02x", tag); - descr_tree = proto_item_add_subtree(descr_tree_ti, ett_dvb_ait_descr); + descr_tree = proto_tree_add_subtree_format(tree, tvb, offset_start, len+2, + ett_dvb_ait_descr, NULL, "Descriptor Tag=0x%02x", tag); proto_tree_add_item(descr_tree, hf_dvb_ait_descr_tag, tvb, offset, 1, ENC_BIG_ENDIAN); @@ -413,9 +411,8 @@ dissect_dvb_ait(tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree, void *data offset_app_start = offset; org_id = tvb_get_ntohl(tvb, offset); app_id = tvb_get_ntohs(tvb, offset+4); - app_tree_ti = proto_tree_add_text(ait_tree, tvb, offset, -1, - "Application: Org 0x%x, App 0x%x", org_id, app_id); - ait_app_tree = proto_item_add_subtree(app_tree_ti, ett_dvb_ait_app); + ait_app_tree = proto_tree_add_subtree_format(ait_tree, tvb, offset, -1, + ett_dvb_ait_app, &app_tree_ti, "Application: Org 0x%x, App 0x%x", org_id, app_id); proto_tree_add_item(ait_app_tree, hf_dvb_ait_org_id, tvb, offset, 4, ENC_BIG_ENDIAN); diff --git a/epan/dissectors/packet-dvb-bat.c b/epan/dissectors/packet-dvb-bat.c index 6a0dfb5080..4dd351b1f6 100644 --- a/epan/dissectors/packet-dvb-bat.c +++ b/epan/dissectors/packet-dvb-bat.c @@ -105,7 +105,6 @@ dissect_dvb_bat(tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree) proto_item *ti; proto_tree *dvb_bat_tree; - proto_item *tsi; proto_tree *transport_stream_tree; col_set_str(pinfo->cinfo, COL_INFO, "Bouquet Association Table (BAT)"); @@ -147,8 +146,8 @@ dissect_dvb_bat(tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree) ts_id = tvb_get_ntohs(tvb, offset); descriptor_len = tvb_get_ntohs(tvb, offset + 4) & DVB_BAT_TRANSPORT_DESCRIPTORS_LENGTH_MASK; - tsi = proto_tree_add_text(dvb_bat_tree, tvb, offset, 6 + descriptor_len, "Transport Stream 0x%04x", ts_id); - transport_stream_tree = proto_item_add_subtree(tsi, ett_dvb_bat_transport_stream); + transport_stream_tree = proto_tree_add_subtree_format(dvb_bat_tree, tvb, offset, 6 + descriptor_len, + ett_dvb_bat_transport_stream, NULL, "Transport Stream 0x%04x", ts_id); proto_tree_add_item(transport_stream_tree, hf_dvb_bat_transport_stream_id, tvb, offset, 2, ENC_BIG_ENDIAN); offset += 2; diff --git a/epan/dissectors/packet-dvb-eit.c b/epan/dissectors/packet-dvb-eit.c index 5f72794751..67ea0ce25f 100644 --- a/epan/dissectors/packet-dvb-eit.c +++ b/epan/dissectors/packet-dvb-eit.c @@ -100,7 +100,6 @@ dissect_dvb_eit(tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree) proto_item *ti; proto_tree *dvb_eit_tree; - proto_item *ei; proto_tree *dvb_eit_event_tree; proto_item *duration_item; @@ -150,8 +149,7 @@ dissect_dvb_eit(tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree) while (offset < length) { evt_id = tvb_get_ntohs(tvb, offset); - ei = proto_tree_add_text(dvb_eit_tree, tvb, offset, 12, "Event 0x%04hx", evt_id); - dvb_eit_event_tree = proto_item_add_subtree(ei, ett_dvb_eit_event); + dvb_eit_event_tree = proto_tree_add_subtree_format(dvb_eit_tree, tvb, offset, 12, ett_dvb_eit_event, NULL, "Event 0x%04hx", evt_id); proto_tree_add_item(dvb_eit_event_tree, hf_dvb_eit_event_id, tvb, offset, 2, ENC_BIG_ENDIAN); offset += 2; diff --git a/epan/dissectors/packet-dvb-nit.c b/epan/dissectors/packet-dvb-nit.c index 05907c2c62..7ccab92cd9 100644 --- a/epan/dissectors/packet-dvb-nit.c +++ b/epan/dissectors/packet-dvb-nit.c @@ -84,7 +84,6 @@ dissect_dvb_nit(tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree, void *data proto_item *ti; proto_tree *dvb_nit_tree; - proto_item *tsi; proto_tree *dvb_nit_ts_tree; col_set_str(pinfo->cinfo, COL_INFO, "Network Information Table (NIT)"); @@ -124,8 +123,8 @@ dissect_dvb_nit(tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree, void *data tsid = tvb_get_ntohs(tvb, offset); ts_desc_len = 3 + (tvb_get_ntohs(tvb, offset + 4) & DVB_NIT_TRANSPORT_DESCRIPTORS_LENGTH_MASK); - tsi = proto_tree_add_text(dvb_nit_tree, tvb, offset, ts_desc_len, "Stream ID=0x%04hx", tsid); - dvb_nit_ts_tree = proto_item_add_subtree(tsi, ett_dvb_nit_ts); + dvb_nit_ts_tree = proto_tree_add_subtree_format(dvb_nit_tree, tvb, offset, ts_desc_len, + ett_dvb_nit_ts, NULL, "Stream ID=0x%04hx", tsid); proto_tree_add_item(dvb_nit_ts_tree, hf_dvb_nit_transport_stream_id, tvb, offset, 2, ENC_BIG_ENDIAN); offset += 2; diff --git a/epan/dissectors/packet-dvb-sdt.c b/epan/dissectors/packet-dvb-sdt.c index 9e3f928c00..20df8cc29a 100644 --- a/epan/dissectors/packet-dvb-sdt.c +++ b/epan/dissectors/packet-dvb-sdt.c @@ -103,7 +103,6 @@ dissect_dvb_sdt(tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree) proto_item *ti; proto_tree *dvb_sdt_tree; - proto_item *si; proto_tree *dvb_sdt_service_tree; /* The TVB should start right after the section_length in the Section packet */ @@ -144,8 +143,8 @@ dissect_dvb_sdt(tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree) while (offset < length) { svc_id = tvb_get_ntohs(tvb, offset); - si = proto_tree_add_text(dvb_sdt_tree, tvb, offset, 5, "Service 0x%04hx", svc_id); - dvb_sdt_service_tree = proto_item_add_subtree(si, ett_dvb_sdt_service); + dvb_sdt_service_tree = proto_tree_add_subtree_format(dvb_sdt_tree, tvb, offset, 5, + ett_dvb_sdt_service, NULL, "Service 0x%04hx", svc_id); proto_tree_add_item(dvb_sdt_service_tree, hf_dvb_sdt_service_id, tvb, offset, 2, ENC_BIG_ENDIAN); offset += 2; diff --git a/epan/dissectors/packet-dvbci.c b/epan/dissectors/packet-dvbci.c index 0e553c2c62..608e284d76 100644 --- a/epan/dissectors/packet-dvbci.c +++ b/epan/dissectors/packet-dvbci.c @@ -1754,7 +1754,6 @@ dissect_opp_cap_loop(guint8 cap_loop_len, const gchar *title, tvbuff_t *tvb, gint offset, packet_info *pinfo _U_, proto_tree *tree) { - proto_item *ti = NULL; proto_tree *loop_tree = NULL; guint i; @@ -1764,8 +1763,7 @@ dissect_opp_cap_loop(guint8 cap_loop_len, const gchar *title, return -1; if (tree && cap_loop_len>0) { - ti = proto_tree_add_text(tree, tvb, offset, cap_loop_len, "%s", title); - loop_tree = proto_item_add_subtree(ti, ett_dvbci_opp_cap_loop); + loop_tree = proto_tree_add_subtree(tree, tvb, offset, cap_loop_len, ett_dvbci_opp_cap_loop, NULL, title); } for (i=0; i<cap_loop_len; i+=item_len) { proto_tree_add_item(loop_tree, item_hf, @@ -1825,7 +1823,7 @@ static gint dissect_conn_desc(tvbuff_t *tvb, gint offset, circuit_t *circuit, packet_info *pinfo, proto_tree *tree) { - proto_item *ti = NULL; + proto_item *ti; proto_tree *conn_desc_tree = NULL; guint32 tag; gint offset_start, offset_body; @@ -1842,9 +1840,8 @@ dissect_conn_desc(tvbuff_t *tvb, gint offset, circuit_t *circuit, if (tag!= T_CONNECTION_DESCRIPTOR) return 0; - ti = proto_tree_add_text(tree, tvb, - offset_start, -1, "Connection descriptor"); - conn_desc_tree = proto_item_add_subtree(ti, ett_dvbci_lsc_conn_desc); + conn_desc_tree = proto_tree_add_subtree(tree, tvb, + offset_start, -1, ett_dvbci_lsc_conn_desc, &ti, "Connection descriptor"); proto_tree_add_item(conn_desc_tree, hf_dvbci_apdu_tag, tvb, offset, APDU_TAG_SIZE, ENC_BIG_ENDIAN); @@ -2034,7 +2031,7 @@ static gint dissect_cc_item(tvbuff_t *tvb, gint offset, packet_info *pinfo, proto_tree *tree, guint8 *dat_id_ptr) { - proto_item *ti = NULL; + proto_item *ti; proto_tree *cc_item_tree = NULL; gint offset_start; guint16 dat_len; @@ -2050,9 +2047,8 @@ dissect_cc_item(tvbuff_t *tvb, gint offset, if (dat_id_ptr) *dat_id_ptr = dat_id; - ti = proto_tree_add_text(tree, tvb, offset_start, -1, "CC data item: %s", - val_to_str_const(dat_id, dvbci_cc_dat_id, "unknown")); - cc_item_tree = proto_item_add_subtree(ti, ett_dvbci_cc_item); + cc_item_tree = proto_tree_add_subtree_format(tree, tvb, offset_start, -1, ett_dvbci_cc_item, &ti, + "CC data item: %s", val_to_str_const(dat_id, dvbci_cc_dat_id, "unknown")); proto_tree_add_item(cc_item_tree, hf_dvbci_cc_dat_id, tvb, offset, 1, ENC_BIG_ENDIAN); @@ -2487,7 +2483,7 @@ dissect_ca_desc(tvbuff_t *tvb, gint offset, packet_info *pinfo, { gint offset_start; guint8 tag, len_byte; - proto_item *ti = NULL; + proto_item *ti; proto_tree *ca_desc_tree = NULL; offset_start = offset; @@ -2499,9 +2495,8 @@ dissect_ca_desc(tvbuff_t *tvb, gint offset, packet_info *pinfo, return 0; } - ti = proto_tree_add_text( - tree, tvb, offset_start, -1, "Conditional Access descriptor"); - ca_desc_tree = proto_item_add_subtree(ti, ett_dvbci_ca_desc); + ca_desc_tree = proto_tree_add_subtree( + tree, tvb, offset_start, -1, ett_dvbci_ca_desc, &ti, "Conditional Access descriptor"); offset++; len_byte = tvb_get_guint8(tvb,offset); @@ -2533,7 +2528,7 @@ static gint dissect_es(tvbuff_t *tvb, gint offset, packet_info *pinfo, proto_tree *tree, gboolean *scrambled) { - proto_item *ti = NULL; + proto_item *ti; proto_tree *es_tree = NULL; gint offset_start, ca_desc_len; gint es_info_len, all_len; @@ -2546,8 +2541,7 @@ dissect_es(tvbuff_t *tvb, gint offset, *scrambled = FALSE; } - ti = proto_tree_add_text(tree, tvb, offset_start, -1, "Elementary Stream"); - es_tree = proto_item_add_subtree(ti, ett_dvbci_application); + es_tree = proto_tree_add_subtree(tree, tvb, offset_start, -1, ett_dvbci_application, &ti, "Elementary Stream"); proto_tree_add_item( es_tree, hf_dvbci_stream_type, tvb, offset, 1, ENC_BIG_ENDIAN); @@ -2590,7 +2584,7 @@ static gint dissect_dvbci_text(const gchar *title, tvbuff_t *tvb, gint offset, packet_info *pinfo, proto_tree *tree, int hf) { - proto_item *ti = NULL; + proto_item *ti; proto_tree *text_tree; guint32 tag; gint offset_start; @@ -2606,8 +2600,7 @@ dissect_dvbci_text(const gchar *title, tvbuff_t *tvb, gint offset, if (tag!=T_TEXT_LAST && tag!=T_TEXT_MORE) return 0; - ti = proto_tree_add_text(tree, tvb, offset_start, -1, "%s", title); - text_tree = proto_item_add_subtree(ti, ett_dvbci_text); + text_tree = proto_tree_add_subtree(tree, tvb, offset_start, -1, ett_dvbci_text, &ti, title); proto_tree_add_item(text_tree, hf_dvbci_apdu_tag, tvb, offset, APDU_TAG_SIZE, ENC_BIG_ENDIAN); @@ -2658,9 +2651,8 @@ dissect_res_id(tvbuff_t *tvb, gint offset, packet_info *pinfo, RES_VER(res_id)); } - ti = proto_tree_add_text(tree, tvb, offset, tvb_data_len, - "Resource ID: 0x%04x", res_id); - res_tree = proto_item_add_subtree(ti, ett_dvbci_res); + res_tree = proto_tree_add_subtree_format(tree, tvb, offset, tvb_data_len, + ett_dvbci_res, &ti, "Resource ID: 0x%04x", res_id); /* parameter "value" == complete resource id, RES_..._MASK will be applied by the hf definition */ @@ -2754,7 +2746,6 @@ dissect_dvbci_payload_ca(guint32 tag, gint len_field, packet_info *pinfo, proto_tree *tree) { const gchar *tag_str; - proto_item *pi; guint16 prog_num; guint8 byte; guint prog_info_len; @@ -2849,8 +2840,7 @@ dissect_dvbci_payload_ca(guint32 tag, gint len_field, offset++; while (tvb_reported_length_remaining(tvb, offset) > 0) { /* there's no need to check for tree==NULL */ - pi = proto_tree_add_text(tree, tvb, offset, 3, "Elementary Stream"); - es_tree = proto_item_add_subtree(pi, ett_dvbci_application); + es_tree = proto_tree_add_subtree(tree, tvb, offset, 3, ett_dvbci_application, NULL, "Elementary Stream"); proto_tree_add_item(es_tree, hf_dvbci_es_pid, tvb, offset, 2, ENC_BIG_ENDIAN); @@ -3325,7 +3315,7 @@ dissect_sac_msg(guint32 tag, tvbuff_t *tvb, gint offset, gint offset_start; guint32 msg_ctr; guint8 enc_flag, enc_cip; - proto_item *enc_flag_pi, *ti; + proto_item *enc_flag_pi; guint16 sac_payload_len; /* payload data and padding */ gint sac_payload_data_len = 0; /* just payload data */ tvbuff_t *clear_sac_body_tvb; @@ -3380,9 +3370,8 @@ dissect_sac_msg(guint32 tag, tvbuff_t *tvb, gint offset, if (enc_flag) add_new_data_source(pinfo, clear_sac_body_tvb, "Clear SAC message body"); if (sac_payload_len>0) { - ti = proto_tree_add_text(tree, clear_sac_body_tvb, 0, sac_payload_len, - "SAC message payload"); - sac_tree = proto_item_add_subtree(ti, ett_dvbci_sac_msg_body); + sac_tree = proto_tree_add_subtree(tree, clear_sac_body_tvb, 0, sac_payload_len, + ett_dvbci_sac_msg_body, NULL, "SAC message payload"); if (tag==T_CC_SAC_DATA_REQ || tag==T_CC_SAC_DATA_CNF) { sac_payload_data_len = dissect_cc_data_payload(tag, clear_sac_body_tvb, 0, pinfo, sac_tree, &is_exportable); @@ -3589,7 +3578,6 @@ dissect_dvbci_ami_file_ack(tvbuff_t *tvb, gint offset, guint8 *file_name_str; guint32 file_data_len; tvbuff_t *png_file_tvb = NULL; - proto_item *ti; proto_tree *req_tree; req_type = tvb_get_guint8(tvb, offset+1); @@ -3653,11 +3641,9 @@ dissect_dvbci_ami_file_ack(tvbuff_t *tvb, gint offset, tvb_reported_length_remaining(tvb, offset), ENC_NA); } else if (req_type==REQ_TYPE_REQ) { - ti = proto_tree_add_text(tree, tvb, + req_tree = proto_tree_add_subtree(tree, tvb, offset, tvb_reported_length_remaining(tvb, offset), - "Supported request types"); - req_tree = proto_item_add_subtree( - ti, ett_dvbci_ami_req_types); + ett_dvbci_ami_req_types, NULL, "Supported request types"); while (tvb_reported_length_remaining(tvb, offset) > 0) { proto_tree_add_item(req_tree, hf_dvbci_req_type, tvb, offset, 1, ENC_BIG_ENDIAN); @@ -4160,7 +4146,6 @@ static void dissect_dvbci_apdu(tvbuff_t *tvb, circuit_t *circuit, packet_info *pinfo, proto_tree *tree, guint8 direction) { - proto_item *ti; proto_tree *app_tree; guint32 apdu_len, tag, len_field; const gchar *tag_str; @@ -4173,8 +4158,7 @@ dissect_dvbci_apdu(tvbuff_t *tvb, circuit_t *circuit, apdu_len = tvb_reported_length(tvb); - ti = proto_tree_add_text(tree, tvb, 0, apdu_len, "Application Layer"); - app_tree = proto_item_add_subtree(ti, ett_dvbci_application); + app_tree = proto_tree_add_subtree(tree, tvb, 0, apdu_len, ett_dvbci_application, NULL, "Application Layer"); tag = tvb_get_ntoh24(tvb, 0); tag_str = try_val_to_str(tag, dvbci_apdu_tag); @@ -4277,8 +4261,7 @@ dissect_dvbci_spdu(tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree, spdu_len = tvb_reported_length(tvb); - ti = proto_tree_add_text(tree, tvb, 0, -1, "Session Layer"); - sess_tree = proto_item_add_subtree(ti, ett_dvbci_session); + sess_tree = proto_tree_add_subtree(tree, tvb, 0, -1, ett_dvbci_session, &ti, "Session Layer"); tag = tvb_get_guint8(tvb,0); tag_str = try_val_to_str(tag, dvbci_spdu_tag); @@ -4579,8 +4562,7 @@ dissect_dvbci_tpdu(tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree, col_clear(pinfo->cinfo, COL_INFO); - ti = proto_tree_add_text(tree, tvb, 0, -1, "Transport Layer"); - trans_tree = proto_item_add_subtree(ti, ett_dvbci_transport); + trans_tree = proto_tree_add_subtree(tree, tvb, 0, -1, ett_dvbci_transport, &ti, "Transport Layer"); offset = dissect_dvbci_tpdu_hdr(tvb, pinfo, trans_tree, direction, lpdu_tcid, tpdu_len, &hdr_tag, &body_len); @@ -4638,7 +4620,6 @@ static void dissect_dvbci_lpdu(tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree, guint8 direction) { - proto_item *ti; proto_tree *link_tree; guint32 payload_len; guint8 tcid, more_last; @@ -4651,8 +4632,7 @@ dissect_dvbci_lpdu(tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree, col_set_str(pinfo->cinfo, COL_INFO, "LPDU"); - ti = proto_tree_add_text(tree, tvb, 0, 2, "Link Layer"); - link_tree = proto_item_add_subtree(ti, ett_dvbci_link); + link_tree = proto_tree_add_subtree(tree, tvb, 0, 2, ett_dvbci_link, NULL, "Link Layer"); tcid = tvb_get_guint8(tvb, 0); col_append_sep_fstr(pinfo->cinfo, COL_INFO, ": ", "tcid %d", tcid); @@ -4822,9 +4802,8 @@ dissect_dvbci_cis_payload_config(tvbuff_t *data_tvb, while (tvb_reported_length_remaining(data_tvb, offset) > 0) { st_code = tvb_get_guint8(data_tvb, offset); st_code_str = val_to_str_const(st_code, dvbci_cis_subtpl_code, "unknown"); - st_item = proto_tree_add_text(tree, data_tvb, offset, -1, - "Subtuple: %s (0x%x)", st_code_str, st_code); - st_tree = proto_item_add_subtree(st_item, ett_dvbci_cis_subtpl); + st_tree = proto_tree_add_subtree_format(tree, data_tvb, offset, -1, + ett_dvbci_cis_subtpl, &st_item, "Subtuple: %s (0x%x)", st_code_str, st_code); proto_tree_add_item(st_tree, hf_dvbci_cis_st_code, data_tvb, offset, 1, ENC_LITTLE_ENDIAN); offset++; @@ -4902,7 +4881,7 @@ dissect_dvbci_cis(tvbuff_t *tvb, gint offset, { gint offset_start; proto_tree *cis_tree = NULL, *tpl_tree = NULL; - proto_item *ti_main = NULL, *ti_tpl; + proto_item *ti_main, *ti_tpl; guint8 tpl_code; const gchar *tpl_code_str = NULL; guint8 len_field; @@ -4910,17 +4889,15 @@ dissect_dvbci_cis(tvbuff_t *tvb, gint offset, offset_start = offset; - ti_main = proto_tree_add_text(tree, tvb, offset, -1, - "Card Information Structure (CIS)"); - cis_tree = proto_item_add_subtree(ti_main, ett_dvbci_cis); + cis_tree = proto_tree_add_subtree(tree, tvb, offset, -1, + ett_dvbci_cis, &ti_main, "Card Information Structure (CIS)"); do { tpl_code = tvb_get_guint8(tvb, offset); tpl_code_str = val_to_str_const(tpl_code, dvbci_cis_tpl_code, "unknown"); - ti_tpl = proto_tree_add_text(cis_tree, - tvb, offset, -1, "CIS tuple: %s", tpl_code_str); - tpl_tree = proto_item_add_subtree(ti_tpl, ett_dvbci_cis_tpl); + tpl_tree = proto_tree_add_subtree_format(cis_tree, + tvb, offset, -1, ett_dvbci_cis_tpl, &ti_tpl, "CIS tuple: %s", tpl_code_str); proto_tree_add_uint_format(tpl_tree, hf_dvbci_cis_tpl_code, tvb, offset, 1, tpl_code, "Tuple code: %s (0x%x)", @@ -4985,7 +4962,7 @@ dissect_dvbci(tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree, void *data _U guint8 version, event; const gchar *event_str; guint16 len_field; - proto_item *ti, *ti_hdr; + proto_item *ti; proto_tree *dvbci_tree, *hdr_tree; tvbuff_t *payload_tvb; guint16 cor_addr; @@ -5020,8 +4997,7 @@ dissect_dvbci(tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree, void *data _U ti = proto_tree_add_protocol_format(tree, proto_dvbci, tvb, 0, packet_len, "DVB Common Interface: %s", event_str); dvbci_tree = proto_item_add_subtree(ti, ett_dvbci); - ti_hdr = proto_tree_add_text(dvbci_tree, tvb, 0, offset, "Pseudo header"); - hdr_tree = proto_item_add_subtree(ti_hdr, ett_dvbci_hdr); + hdr_tree = proto_tree_add_subtree(dvbci_tree, tvb, 0, offset, ett_dvbci_hdr, NULL, "Pseudo header"); proto_tree_add_text(hdr_tree, tvb, offset_ver, 1, "Version: %d", version); proto_tree_add_item(hdr_tree, hf_dvbci_event, tvb, offset_evt, 1, ENC_BIG_ENDIAN); proto_tree_add_text(hdr_tree, tvb, offset_len_field, 2, |