diff options
author | Michael Mann <mmann78@netscape.net> | 2014-06-26 22:51:11 -0400 |
---|---|---|
committer | Michael Mann <mmann78@netscape.net> | 2014-06-28 12:05:43 +0000 |
commit | 7bf6862ecf0d0a508bf097f3b52d07bd19128272 (patch) | |
tree | 08dfcfd08ae0ba90383451f2a2f1d321aba7cb23 /epan | |
parent | 929afd23a77b27b28fe3ca17cb063725467d387a (diff) |
convert to proto_tree_add_subtree[_format]
Change-Id: Ia7014003a3cff5181295172978d6c613c3b83b0b
Reviewed-on: https://code.wireshark.org/review/2676
Tested-by: Michael Mann <mmann78@netscape.net>
Reviewed-by: Michael Mann <mmann78@netscape.net>
Diffstat (limited to 'epan')
26 files changed, 223 insertions, 399 deletions
diff --git a/epan/dissectors/packet-h263.c b/epan/dissectors/packet-h263.c index 0a44bef650..a06b785cea 100644 --- a/epan/dissectors/packet-h263.c +++ b/epan/dissectors/packet-h263.c @@ -639,10 +639,8 @@ static void dissect_h263_data( tvbuff_t *tvb, packet_info *pinfo, proto_tree *tr col_append_str( pinfo->cinfo, COL_INFO, "H263 payload "); - if( tree ) { - h263_payload_item = proto_tree_add_item( tree, proto_h263_data, tvb, offset, -1, ENC_NA ); - h263_payload_tree = proto_item_add_subtree( h263_payload_item, ett_h263_payload ); - } + h263_payload_item = proto_tree_add_item( tree, proto_h263_data, tvb, offset, -1, ENC_NA ); + h263_payload_tree = proto_item_add_subtree( h263_payload_item, ett_h263_payload ); length = tvb_reported_length_remaining(tvb,0); if(length<4){ diff --git a/epan/dissectors/packet-h264.c b/epan/dissectors/packet-h264.c index 70d5b17810..5d0e55fa11 100644 --- a/epan/dissectors/packet-h264.c +++ b/epan/dissectors/packet-h264.c @@ -1841,7 +1841,7 @@ static void dissect_h264(tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree) { int offset = 0; - proto_item *item, *ti, *stream_item, *fua_item; + proto_item *item; proto_tree *h264_tree, *h264_nal_tree, *stream_tree, *fua_tree; guint8 type; tvbuff_t *rbsp_tvb; @@ -1861,10 +1861,9 @@ dissect_h264(tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree) /* if the type is 28, it would be draw another title */ if (type == 28) - ti = proto_tree_add_text(h264_tree, tvb, offset, 1, "FU identifier"); + h264_nal_tree = proto_tree_add_subtree(h264_tree, tvb, offset, 1, ett_h264_nal, NULL, "FU identifier"); else - ti = proto_tree_add_text(h264_tree, tvb, offset, 1, "NAL unit header or first byte of the payload"); - h264_nal_tree = proto_item_add_subtree(ti, ett_h264_nal); + h264_nal_tree = proto_tree_add_subtree(h264_tree, tvb, offset, 1, ett_h264_nal, NULL, "NAL unit header or first byte of the payload"); /* +---------------+ * |0|1|2|3|4|5|6|7| @@ -1885,8 +1884,7 @@ dissect_h264(tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree) proto_tree_add_item(h264_nal_tree, hf_h264_type, tvb, offset, 1, ENC_BIG_ENDIAN); offset++; if (type == 28) { - fua_item = proto_tree_add_text(h264_tree, tvb, offset, 1, "FU Header"); - fua_tree = proto_item_add_subtree(fua_item, ett_h264_fua); + fua_tree = proto_tree_add_subtree(h264_tree, tvb, offset, 1, ett_h264_fua, NULL, "FU Header"); proto_tree_add_item(fua_tree, hf_h264_start_bit, tvb, offset, 1, ENC_BIG_ENDIAN); proto_tree_add_item(fua_tree, hf_h264_end_bit, tvb, offset, 1, ENC_BIG_ENDIAN); proto_tree_add_item(fua_tree, hf_h264_forbidden_bit, tvb, offset, 1, ENC_BIG_ENDIAN); @@ -1902,8 +1900,7 @@ dissect_h264(tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree) /* Unescape NAL unit */ rbsp_tvb = dissect_h265_unescap_nal_unit(tvb, pinfo, offset); - stream_item = proto_tree_add_text(h264_tree, tvb, offset, -1, "H264 bitstream"); - stream_tree = proto_item_add_subtree(stream_item, ett_h264_stream); + stream_tree = proto_tree_add_subtree(h264_tree, tvb, offset, -1, ett_h264_stream, NULL, "H264 bitstream"); switch (type) { case 1: /* 1 Coded slice of a non-IDR picture */ dissect_h264_slice_layer_without_partitioning_rbsp(stream_tree, rbsp_tvb, pinfo, 0); diff --git a/epan/dissectors/packet-hartip.c b/epan/dissectors/packet-hartip.c index 6d6b0d71d3..2d8e9d3cd5 100644 --- a/epan/dissectors/packet-hartip.c +++ b/epan/dissectors/packet-hartip.c @@ -832,7 +832,7 @@ dissect_hartip_common(tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree, gint offset) { proto_tree *hartip_tree, *hdr_tree, *body_tree; - proto_item *ti, *hart_item; + proto_item *hart_item; gint bodylen; guint8 message_type, message_id; guint16 transaction_id, length; @@ -847,8 +847,8 @@ dissect_hartip_common(tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree, hart_item = proto_tree_add_item(tree, proto_hartip, tvb, 0, length, ENC_NA); hartip_tree = proto_item_add_subtree(hart_item, ett_hartip); - ti = proto_tree_add_text(hartip_tree, tvb, offset, HARTIP_HEADER_LENGTH, "HART_IP Header"); - hdr_tree = proto_item_add_subtree(ti, ett_hartip_hdr); + hdr_tree = proto_tree_add_subtree(hartip_tree, tvb, offset, HARTIP_HEADER_LENGTH, + ett_hartip_hdr, NULL, "HART_IP Header"); proto_tree_add_item(hdr_tree, hf_hartip_hdr_version, tvb, offset, 1, ENC_BIG_ENDIAN); offset += 1; @@ -896,9 +896,9 @@ dissect_hartip_common(tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree, bodylen = length - HARTIP_HEADER_LENGTH; /* add body elements. */ - ti = proto_tree_add_text(hartip_tree, tvb, offset, bodylen, + body_tree = proto_tree_add_subtree_format(hartip_tree, tvb, offset, bodylen, + ett_hartip_body, NULL, "HART_IP Body, %s, %s", msg_id_str, msg_type_str); - body_tree = proto_item_add_subtree(ti, ett_hartip_body); if (message_type == ERROR_MSG_TYPE) { offset += dissect_error(body_tree, tvb, offset, bodylen); diff --git a/epan/dissectors/packet-hazelcast.c b/epan/dissectors/packet-hazelcast.c index c7322ab7f0..62cc7f52ad 100644 --- a/epan/dissectors/packet-hazelcast.c +++ b/epan/dissectors/packet-hazelcast.c @@ -286,7 +286,7 @@ static int dissect_hazelcast_message(tvbuff_t *tvb, packet_info *pinfo _U_, prot if (tree) { - proto_item *ti = NULL; + proto_item *ti; ti = proto_tree_add_item(tree, proto_hazelcast, tvb, 0, -1, ENC_NA); hcast_tree = proto_item_add_subtree(ti, ett_hazelcast); diff --git a/epan/dissectors/packet-hclnfsd.c b/epan/dissectors/packet-hclnfsd.c index b5052791cb..f03a504b8b 100644 --- a/epan/dissectors/packet-hclnfsd.c +++ b/epan/dissectors/packet-hclnfsd.c @@ -205,51 +205,39 @@ dissect_hclnfsd_authorize_call(tvbuff_t *tvb, int offset, packet_info *pinfo _U_ offset += 4; request_type = tvb_get_ntohl(tvb, offset); - if (tree) - proto_tree_add_uint(tree, hf_hclnfsd_request_type, tvb, offset, + proto_tree_add_uint(tree, hf_hclnfsd_request_type, tvb, offset, 4, request_type); offset += 4; offset = dissect_rpc_string(tvb, tree, hf_hclnfsd_device, offset, NULL); - if (tree) + ident_tree = proto_tree_add_subtree(tree, tvb, offset, -1, + ett_hclnfsd_auth_ident, &ident_item, "Authentication Ident"); + + if (ident_tree) { - ident_item = proto_tree_add_text(tree, tvb, offset, -1, - "Authentication Ident"); + newoffset = dissect_rpc_string(tvb, ident_tree, + hf_hclnfsd_auth_ident_obscure, offset, &ident); - if (ident_item) + if (ident) { - ident_tree = proto_item_add_subtree(ident_item, - ett_hclnfsd_auth_ident); - - if (ident_tree) - { - newoffset = dissect_rpc_string(tvb, ident_tree, - hf_hclnfsd_auth_ident_obscure, offset, &ident); - - if (ident) - { - ident_len = (int)strlen(ident); - - proto_item_set_len(ident_item, ident_len); + ident_len = (int)strlen(ident); - ident_decoded = hclnfsd_decode_obscure(ident, ident_len); + proto_item_set_len(ident_item, ident_len); - username = ident_decoded + 2; - password = username + strlen(username) + 1; + ident_decoded = hclnfsd_decode_obscure(ident, ident_len); - proto_tree_add_text(ident_tree, tvb, offset, ident_len, - "Username: %s", username); + username = ident_decoded + 2; + password = username + strlen(username) + 1; - proto_tree_add_text(ident_tree, tvb, offset, ident_len, - "Password: %s", password); + proto_tree_add_text(ident_tree, tvb, offset, ident_len, + "Username: %s", username); - offset = newoffset; + proto_tree_add_text(ident_tree, tvb, offset, ident_len, + "Password: %s", password); - ident = NULL; - } - } + offset = newoffset; } } diff --git a/epan/dissectors/packet-hdfs.c b/epan/dissectors/packet-hdfs.c index bc2f581b1e..871726f5f2 100644 --- a/epan/dissectors/packet-hdfs.c +++ b/epan/dissectors/packet-hdfs.c @@ -537,8 +537,8 @@ dissect_hdfs_message(tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree, void* if (tree) { - proto_item *ti = NULL; - proto_tree *hdfs_tree = NULL; + proto_item *ti; + proto_tree *hdfs_tree; ti = proto_tree_add_item(tree, proto_hdfs, tvb, 0, -1, ENC_NA); hdfs_tree = proto_item_add_subtree(ti, ett_hdfs); diff --git a/epan/dissectors/packet-hdmi.c b/epan/dissectors/packet-hdmi.c index f9bdd94c0a..60abebde0f 100644 --- a/epan/dissectors/packet-hdmi.c +++ b/epan/dissectors/packet-hdmi.c @@ -103,7 +103,7 @@ sub_check_hdmi(packet_info *pinfo _U_) static gint dissect_hdmi_edid(tvbuff_t *tvb, gint offset, packet_info *pinfo, proto_tree *tree) { - proto_item *ti, *yi; + proto_item *yi; proto_tree *edid_tree; guint64 edid_hdr; guint16 manf_id; @@ -113,10 +113,9 @@ dissect_hdmi_edid(tvbuff_t *tvb, gint offset, packet_info *pinfo, proto_tree *tr guint8 edid_ver, edid_rev; - ti = proto_tree_add_text(tree, tvb, - offset, tvb_reported_length_remaining(tvb, offset), + edid_tree = proto_tree_add_subtree(tree, tvb, + offset, -1, ett_hdmi_edid, NULL, "Extended Display Identification Data (EDID)"); - edid_tree = proto_item_add_subtree(ti, ett_hdmi_edid); edid_hdr = tvb_get_ntoh64(tvb, offset); if (edid_hdr != EDID_HDR_VALUE) diff --git a/epan/dissectors/packet-hip.c b/epan/dissectors/packet-hip.c index b273f17109..b7501c0cde 100644 --- a/epan/dissectors/packet-hip.c +++ b/epan/dissectors/packet-hip.c @@ -552,9 +552,8 @@ dissect_hip_common(tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree, gboolean length = (hiph_hdr_len + 1) * 8; /* Begin TLV parsing */ if (offset < length) { - ti_tlv = proto_tree_add_text(hip_tree, tvb, offset, - tvb_length(tvb), "HIP Parameters"); - hip_tlv_tree = proto_item_add_subtree(ti_tlv, ett_hip_tlv); + hip_tlv_tree = proto_tree_add_subtree(hip_tree, tvb, offset, + -1, ett_hip_tlv, NULL, "HIP Parameters"); } /* Parse type and length in TLV */ while (offset < length) @@ -609,10 +608,10 @@ dissect_hip_tlv(tvbuff_t *tvb, int offset, proto_item *ti, int type, int tlv_len /* move over the TLV */ newoffset = offset + 4; + t = proto_item_add_subtree(ti, ett_hip_tlv_data); switch (type) { case PARAM_ESP_INFO: - t = proto_item_add_subtree(ti, ett_hip_tlv_data); /* Reserved */ proto_tree_add_item(t, hf_hip_tlv_ei_res, tvb, newoffset, 2, ENC_BIG_ENDIAN); /* KEYMAT index */ @@ -626,7 +625,6 @@ dissect_hip_tlv(tvbuff_t *tvb, int offset, proto_item *ti, int type, int tlv_len proto_tree_add_item(t, hf_hip_tlv_ei_newspi, tvb, newoffset, 4, ENC_BIG_ENDIAN); break; case PARAM_R1_COUNTER: - t = proto_item_add_subtree(ti, ett_hip_tlv_data); /* Reserved */ proto_tree_add_item(t, hf_hip_tlv_r1_res, tvb, newoffset, 4, ENC_BIG_ENDIAN); /* R1 generation counter */ @@ -636,7 +634,6 @@ dissect_hip_tlv(tvbuff_t *tvb, int offset, proto_item *ti, int type, int tlv_len case PARAM_LOCATOR: /* RFC 5206 section 4. and RFC 5770 section 5.7. for type 2 locators */ - t = proto_item_add_subtree(ti, ett_hip_tlv_data); tlv_len -= 4; /* loop through included locators */ while (tlv_len > 0) { @@ -743,7 +740,6 @@ dissect_hip_tlv(tvbuff_t *tvb, int offset, proto_item *ti, int type, int tlv_len } break; case PARAM_PUZZLE: - t = proto_item_add_subtree(ti, ett_hip_tlv_data); /* K number of verified bits */ proto_tree_add_item(t, hf_hip_tlv_puzzle_k, tvb, newoffset, 1, ENC_BIG_ENDIAN); /* Puzzle lifetime */ @@ -757,7 +753,6 @@ dissect_hip_tlv(tvbuff_t *tvb, int offset, proto_item *ti, int type, int tlv_len proto_tree_add_item(t, hf_hip_tlv_puzzle_i, tvb,newoffset, tlv_len - 4, ENC_NA); break; case PARAM_SOLUTION: - t = proto_item_add_subtree(ti, ett_hip_tlv_data); /* K number of verified bits */ proto_tree_add_item(t, hf_hip_tlv_solution_k, tvb, newoffset, 1, ENC_BIG_ENDIAN); /* Solution Reserved */ @@ -774,12 +769,10 @@ dissect_hip_tlv(tvbuff_t *tvb, int offset, proto_item *ti, int type, int tlv_len proto_tree_add_item(t, hf_hip_tlv_solution_j, tvb, newoffset, (tlv_len -4)/2, ENC_NA); break; case PARAM_SEQ: - t = proto_item_add_subtree(ti, ett_hip_tlv_data); /* Update ID */ proto_tree_add_item(t, hf_hip_tlv_seq_updid, tvb, newoffset, 4, ENC_BIG_ENDIAN); break; case PARAM_ACK: - t = proto_item_add_subtree(ti, ett_hip_tlv_data); /* Can contain multiple Update IDs from peer */ while (tlv_len > 0) { /* peer Update ID */ @@ -789,7 +782,6 @@ dissect_hip_tlv(tvbuff_t *tvb, int offset, proto_item *ti, int type, int tlv_len } break; case PARAM_DIFFIE_HELLMAN: - t = proto_item_add_subtree(ti, ett_hip_tlv_data); n = tvb_get_guint8(tvb, newoffset); /* First Group ID*/ proto_tree_add_uint_format(t, hf_hip_tlv_dh_group_id, tvb, newoffset, @@ -821,7 +813,6 @@ dissect_hip_tlv(tvbuff_t *tvb, int offset, proto_item *ti, int type, int tlv_len } break; case PARAM_ESP_TRANSFORM: - t = proto_item_add_subtree(ti, ett_hip_tlv_data); /* Reserved */ proto_tree_add_item(t, hf_hip_tlv_esp_reserved, tvb, newoffset, 2, ENC_BIG_ENDIAN); newoffset +=2; @@ -839,7 +830,6 @@ dissect_hip_tlv(tvbuff_t *tvb, int offset, proto_item *ti, int type, int tlv_len } break; case PARAM_HIP_TRANSFORM: - t = proto_item_add_subtree(ti, ett_hip_tlv_data); while (tlv_len > 0) { /* Suite # 1, 2, ..., n two bytes per transform id */ @@ -852,7 +842,6 @@ dissect_hip_tlv(tvbuff_t *tvb, int offset, proto_item *ti, int type, int tlv_len } break; case PARAM_NAT_TRAVERSAL_MODE: - t = proto_item_add_subtree(ti, ett_hip_tlv_data); /* Reserved */ proto_tree_add_item(t, hf_hip_tlv_esp_reserved, tvb, newoffset, 2, ENC_BIG_ENDIAN); newoffset += 2; @@ -869,12 +858,10 @@ dissect_hip_tlv(tvbuff_t *tvb, int offset, proto_item *ti, int type, int tlv_len } break; case PARAM_TRANSACTION_PACING: - t = proto_item_add_subtree(ti, ett_hip_tlv_data); /* Min Ta */ proto_tree_add_item(t, hf_hip_tlv_transaction_minta, tvb, newoffset, 4, ENC_BIG_ENDIAN); break; case PARAM_ENCRYPTED: - t = proto_item_add_subtree(ti, ett_hip_tlv_data); /* Reserved */ proto_tree_add_item(t, hf_hip_tlv_enc_reserved, tvb, newoffset, 4, ENC_BIG_ENDIAN); newoffset += 4; @@ -889,7 +876,6 @@ dissect_hip_tlv(tvbuff_t *tvb, int offset, proto_item *ti, int type, int tlv_len "Encrypted Parameter Data (%u bytes)", tlv_len - 4); break; case PARAM_HIP_CIPHER: - t = proto_item_add_subtree(ti, ett_hip_tlv_data); while (tlv_len > 0) { /* Suite # 1, 2, ..., n two bytes per Cipher Suite id */ @@ -899,7 +885,6 @@ dissect_hip_tlv(tvbuff_t *tvb, int offset, proto_item *ti, int type, int tlv_len } break; case PARAM_HIT_SUITE_LIST: - t = proto_item_add_subtree(ti, ett_hip_tlv_data); while (tlv_len > 0) { /* Suite # 1, 2, ..., n one byte per HIT Suite id. @@ -911,7 +896,6 @@ dissect_hip_tlv(tvbuff_t *tvb, int offset, proto_item *ti, int type, int tlv_len } break; case PARAM_HOST_ID: - t = proto_item_add_subtree(ti, ett_hip_tlv_data); hi_len = tvb_get_ntohs(tvb, newoffset); proto_tree_add_item(t, hf_hip_tlv_host_id_len, tvb, newoffset, 2, ENC_BIG_ENDIAN); newoffset += 2; @@ -1039,7 +1023,6 @@ dissect_hip_tlv(tvbuff_t *tvb, int offset, proto_item *ti, int type, int tlv_len } break; case PARAM_CERT: /* CERT */ - t = proto_item_add_subtree(ti, ett_hip_tlv_data); /* Cert Group */ proto_tree_add_item(t, hf_hip_tlv_cert_group, tvb, newoffset, 1, ENC_BIG_ENDIAN); newoffset++; @@ -1057,7 +1040,6 @@ dissect_hip_tlv(tvbuff_t *tvb, int offset, proto_item *ti, int type, int tlv_len tlv_len-4, ENC_NA); break; case PARAM_NOTIFICATION: - t = proto_item_add_subtree(ti, ett_hip_tlv_data); /* Reserved */ proto_tree_add_item(t, hf_hip_tlv_notification_res, tvb, newoffset, 2, ENC_BIG_ENDIAN); newoffset += 2; @@ -1072,7 +1054,6 @@ dissect_hip_tlv(tvbuff_t *tvb, int offset, proto_item *ti, int type, int tlv_len case PARAM_ECHO_RESPONSE_SIGNED: case PARAM_ECHO_REQUEST_UNSIGNED: case PARAM_ECHO_RESPONSE_UNSIGNED: - t = proto_item_add_subtree(ti, ett_hip_tlv_data); /* Variable length Opaque Data */ proto_tree_add_item(t, hf_hip_tlv_opaque_data, tvb, newoffset, tlv_len, ENC_NA); @@ -1081,7 +1062,6 @@ dissect_hip_tlv(tvbuff_t *tvb, int offset, proto_item *ti, int type, int tlv_len case PARAM_REG_REQUEST: case PARAM_REG_RESPONSE: case PARAM_REG_FAILED: - t = proto_item_add_subtree(ti, ett_hip_tlv_data); if (type == PARAM_REG_INFO) { /* Min Lifetime */ proto_tree_add_item(t, hf_hip_tlv_reg_ltmin, tvb, newoffset, 1, ENC_BIG_ENDIAN); @@ -1116,14 +1096,12 @@ dissect_hip_tlv(tvbuff_t *tvb, int offset, proto_item *ti, int type, int tlv_len case PARAM_HMAC_2: case PARAM_RVS_HMAC: case PARAM_RELAY_HMAC: - t = proto_item_add_subtree(ti, ett_hip_tlv_data); /* HMAC */ proto_tree_add_item(t, hf_hip_tlv_hmac, tvb, offset+4, tlv_len, ENC_NA); break; case PARAM_HIP_SIGNATURE: case PARAM_HIP_SIGNATURE_2: - t = proto_item_add_subtree(ti, ett_hip_tlv_data); /* Signature algorithm */ n = tvb_get_guint8(tvb, offset+4); proto_tree_add_uint_format(t, hf_hip_tlv_sig_alg, tvb, newoffset, 1, @@ -1135,12 +1113,10 @@ dissect_hip_tlv(tvbuff_t *tvb, int offset, proto_item *ti, int type, int tlv_len ENC_NA); break; case PARAM_FROM: - t = proto_item_add_subtree(ti, ett_hip_tlv_data); /* Address */ proto_tree_add_item(t, hf_hip_tlv_from_address, tvb, newoffset, 16, ENC_NA); break; case PARAM_VIA_RVS: - t = proto_item_add_subtree(ti, ett_hip_tlv_data); /* RVS Addresses */ while (tlv_len > 0) { proto_tree_add_item(t, hf_hip_tlv_rvs_address, tvb, newoffset, 16, ENC_NA); @@ -1149,7 +1125,6 @@ dissect_hip_tlv(tvbuff_t *tvb, int offset, proto_item *ti, int type, int tlv_len } break; case PARAM_RELAY_FROM: - t = proto_item_add_subtree(ti, ett_hip_tlv_data); /* Port */ proto_tree_add_item(t, hf_hip_tlv_relay_from_port, tvb, newoffset, 2, ENC_BIG_ENDIAN); newoffset += 2; @@ -1163,7 +1138,6 @@ dissect_hip_tlv(tvbuff_t *tvb, int offset, proto_item *ti, int type, int tlv_len proto_tree_add_item(t, hf_hip_tlv_relay_from_address, tvb, newoffset, 16, ENC_NA); break; case PARAM_RELAY_TO: - t = proto_item_add_subtree(ti, ett_hip_tlv_data); /* Port */ proto_tree_add_item(t, hf_hip_tlv_relay_to_port, tvb, newoffset, 2, ENC_BIG_ENDIAN); newoffset += 2; @@ -1177,7 +1151,6 @@ dissect_hip_tlv(tvbuff_t *tvb, int offset, proto_item *ti, int type, int tlv_len proto_tree_add_item(t, hf_hip_tlv_relay_to_address, tvb, newoffset, 16, ENC_NA); break; case PARAM_REG_FROM: - t = proto_item_add_subtree(ti, ett_hip_tlv_data); /* Port */ proto_tree_add_item(t, hf_hip_tlv_reg_from_port, tvb, newoffset, 2, ENC_BIG_ENDIAN); newoffset += 2; diff --git a/epan/dissectors/packet-homeplug-av.c b/epan/dissectors/packet-homeplug-av.c index 9d9f2506fe..aa3f138f44 100644 --- a/epan/dissectors/packet-homeplug-av.c +++ b/epan/dissectors/packet-homeplug-av.c @@ -3192,8 +3192,8 @@ dissect_homeplug_av_mme(ptvcursor_t *cursor, guint8 homeplug_av_mmver, guint16 h static void dissect_homeplug_av(tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree) { - proto_item *ti = NULL; - proto_tree *homeplug_av_tree = NULL; + proto_item *ti; + proto_tree *homeplug_av_tree; ptvcursor_t *cursor; guint8 homeplug_av_mmver; guint16 homeplug_av_mmtype; @@ -3201,10 +3201,8 @@ dissect_homeplug_av(tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree) col_set_str(pinfo->cinfo, COL_PROTOCOL, "HomePlug AV"); col_set_str(pinfo->cinfo, COL_INFO, "MAC Management"); - if (tree) { - ti = proto_tree_add_item(tree, proto_homeplug_av, tvb, 0, -1, ENC_NA); - homeplug_av_tree = proto_item_add_subtree(ti, ett_homeplug_av); - } + ti = proto_tree_add_item(tree, proto_homeplug_av, tvb, 0, -1, ENC_NA); + homeplug_av_tree = proto_item_add_subtree(ti, ett_homeplug_av); cursor = ptvcursor_new(homeplug_av_tree, tvb, 0); diff --git a/epan/dissectors/packet-homeplug.c b/epan/dissectors/packet-homeplug.c index 4eb8f788c9..9cad7a3b59 100644 --- a/epan/dissectors/packet-homeplug.c +++ b/epan/dissectors/packet-homeplug.c @@ -1308,8 +1308,8 @@ static int check_tvb_length(ptvcursor_t *cursor, const gint length) static void dissect_homeplug(tvbuff_t * tvb, packet_info * pinfo, proto_tree * tree) { - proto_item * it= NULL; - proto_tree * homeplug_tree= NULL; + proto_item * it; + proto_tree * homeplug_tree; ptvcursor_t * cursor; col_set_str(pinfo->cinfo, COL_PROTOCOL, "HomePlug"); @@ -1318,10 +1318,8 @@ dissect_homeplug(tvbuff_t * tvb, packet_info * pinfo, proto_tree * tree) homeplug_offset = 0; - if (tree) { - it = proto_tree_add_item(tree, proto_homeplug, tvb, homeplug_offset, -1, ENC_NA); - homeplug_tree = proto_item_add_subtree(it, ett_homeplug); - } + it = proto_tree_add_item(tree, proto_homeplug, tvb, homeplug_offset, -1, ENC_NA); + homeplug_tree = proto_item_add_subtree(it, ett_homeplug); cursor = ptvcursor_new(homeplug_tree, tvb, 0); diff --git a/epan/dissectors/packet-hp-erm.c b/epan/dissectors/packet-hp-erm.c index 7817ef774f..62e26f9a38 100644 --- a/epan/dissectors/packet-hp-erm.c +++ b/epan/dissectors/packet-hp-erm.c @@ -90,17 +90,15 @@ static void dissect_hp_erm(tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree) { proto_item *ti; - proto_tree *hp_erm_tree = NULL; + proto_tree *hp_erm_tree; tvbuff_t *eth_tvb; int offset = 0; col_set_str(pinfo->cinfo, COL_PROTOCOL, PROTO_SHORT_NAME); col_set_str(pinfo->cinfo, COL_INFO, PROTO_SHORT_NAME ":"); - if (tree) { - ti = proto_tree_add_item(tree, proto_hp_erm, tvb, 0, -1, ENC_NA); - hp_erm_tree = proto_item_add_subtree(ti, ett_hp_erm); - } + ti = proto_tree_add_item(tree, proto_hp_erm, tvb, 0, -1, ENC_NA); + hp_erm_tree = proto_item_add_subtree(ti, ett_hp_erm); proto_tree_add_item(hp_erm_tree, hf_hp_erm_unknown1, tvb, offset, 8, ENC_NA); offset += 8; diff --git a/epan/dissectors/packet-hpsw.c b/epan/dissectors/packet-hpsw.c index e909609e2e..c1a08fbc66 100644 --- a/epan/dissectors/packet-hpsw.c +++ b/epan/dissectors/packet-hpsw.c @@ -258,11 +258,9 @@ dissect_hpsw(tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree) if (( length < 1 ) || ( length > tvb_length_remaining(tvb, offset+2))) break; - ti = proto_tree_add_text(hp_tree, tvb, offset, length+2, "%s", + tlv_tree = proto_tree_add_subtree(hp_tree, tvb, offset, length+2, ett_hpsw_tlv, NULL, val_to_str(type, hpsw_tlv_type_vals, "Unknown TLV type: 0x%02x")); - tlv_tree = proto_item_add_subtree(ti, ett_hpsw_tlv); - /* type */ proto_tree_add_uint(tlv_tree, hf_hpsw_tlvtype, tvb, offset, 1, type); offset += 1; diff --git a/epan/dissectors/packet-http.c b/epan/dissectors/packet-http.c index 58978279fc..2cf673c122 100644 --- a/epan/dissectors/packet-http.c +++ b/epan/dissectors/packet-http.c @@ -1004,18 +1004,13 @@ dissect_http_message(tvbuff_t *tvb, int offset, packet_info *pinfo, */ saw_req_resp_or_header = TRUE; if (is_request_or_reply) { - char *text = tvb_format_text(tvb, offset, next_offset - offset); - if (tree) { - hdr_item = proto_tree_add_text(http_tree, tvb, - offset, next_offset - offset, "%s", text); - } + char *text = tvb_format_text(tvb, offset, next_offset - offset); + + req_tree = proto_tree_add_subtree(http_tree, tvb, + offset, next_offset - offset, ett_http_request, &hdr_item, text); + expert_add_info_format(pinfo, hdr_item, &ei_http_chat, "%s", text); if (reqresp_dissector) { - if (tree) - req_tree = proto_item_add_subtree(hdr_item, ett_http_request); - else - req_tree = NULL; - reqresp_dissector(tvb, req_tree, offset, line, lineend, conv_data); } @@ -1343,13 +1338,11 @@ dissect_http_message(tvbuff_t *tvb, int offset, packet_info *pinfo, /* * Add the encoded entity to the protocol tree */ - e_ti = proto_tree_add_text(http_tree, next_tvb, - 0, tvb_length(next_tvb), + e_tree = proto_tree_add_subtree_format(http_tree, next_tvb, + 0, tvb_length(next_tvb), ett_http_encoded_entity, &e_ti, "Content-encoded entity body (%s): %u bytes", headers.content_encoding, tvb_length(next_tvb)); - e_tree = proto_item_add_subtree(e_ti, - ett_http_encoded_entity); if (uncomp_tvb != NULL) { /* @@ -1630,8 +1623,8 @@ chunked_encoding_dissector(tvbuff_t **tvb_ptr, packet_info *pinfo, tvbuff_t *tvb = NULL; tvbuff_t *new_tvb = NULL; gint chunked_data_size = 0; - proto_tree *subtree = NULL; - proto_item *ti = NULL; + proto_tree *subtree; + proto_item *ti; if (tvb_ptr == NULL || *tvb_ptr == NULL) { return 0; @@ -1641,12 +1634,8 @@ chunked_encoding_dissector(tvbuff_t **tvb_ptr, packet_info *pinfo, datalen = tvb_reported_length_remaining(tvb, offset); - if (tree) { - ti = proto_tree_add_text(tree, tvb, offset, datalen, - "HTTP chunked response"); - subtree = proto_item_add_subtree(ti, ett_http_chunked_response); - } - + subtree = proto_tree_add_subtree(tree, tvb, offset, datalen, + ett_http_chunked_response, NULL, "HTTP chunked response"); while (datalen > 0) { proto_item *chunk_ti = NULL; @@ -1733,20 +1722,16 @@ chunked_encoding_dissector(tvbuff_t **tvb_ptr, packet_info *pinfo, if (subtree) { if(chunk_size == 0) { - chunk_ti = proto_tree_add_text(subtree, tvb, - offset, - chunk_offset - offset + chunk_size + 2, - "End of chunked encoding"); + chunk_subtree = proto_tree_add_subtree(subtree, tvb, + offset, chunk_offset - offset + chunk_size + 2, + ett_http_chunk_data, NULL, "End of chunked encoding"); } else { - chunk_ti = proto_tree_add_text(subtree, tvb, + chunk_subtree = proto_tree_add_subtree_format(subtree, tvb, offset, chunk_offset - offset + chunk_size + 2, - "Data chunk (%u octets)", chunk_size); + ett_http_chunk_data, NULL, "Data chunk (%u octets)", chunk_size); } - chunk_subtree = proto_item_add_subtree(chunk_ti, - ett_http_chunk_data); - proto_tree_add_text(chunk_subtree, tvb, offset, chunk_offset - offset, "Chunk size: %u octets", chunk_size); @@ -1825,13 +1810,8 @@ chunked_encoding_dissector(tvbuff_t **tvb_ptr, packet_info *pinfo, datalen = tvb_reported_length_remaining(tvb, offset); - subtree = NULL; - if (tree) { - proto_item *ti; - ti = proto_tree_add_text(tree, tvb, offset, datalen, - "HTTP chunked response"); - subtree = proto_item_add_subtree(ti, ett_http_chunked_response); - } + subtree = proto_tree_add_subtree(tree, tvb, offset, datalen, + ett_http_chunked_response, NULL, "HTTP chunked response"); /* Dechunk the "chunked response" to a new memory buffer */ orig_datalen = datalen; @@ -1889,24 +1869,22 @@ chunked_encoding_dissector(tvbuff_t **tvb_ptr, packet_info *pinfo, raw_len += chunk_size; if (subtree) { - proto_item *chunk_ti; proto_tree *chunk_subtree; if(chunk_size == 0) { - chunk_ti = proto_tree_add_text(subtree, tvb, + chunk_subtree = proto_tree_add_subtree(subtree, tvb, offset, chunk_offset - offset + chunk_size + 2, + ett_http_chunk_data, NULL, "End of chunked encoding"); } else { - chunk_ti = proto_tree_add_text(subtree, tvb, + chunk_subtree = proto_tree_add_subtree_format(subtree, tvb, offset, chunk_offset - offset + chunk_size + 2, + ett_http_chunk_data, NULL, "Data chunk (%u octets)", chunk_size); } - chunk_subtree = proto_item_add_subtree(chunk_ti, - ett_http_chunk_data); - proto_tree_add_text(chunk_subtree, tvb, offset, chunk_offset - offset, "Chunk size: %u octets", chunk_size); diff --git a/epan/dissectors/packet-hyperscsi.c b/epan/dissectors/packet-hyperscsi.c index e3a398e9d3..1f3413e0ac 100644 --- a/epan/dissectors/packet-hyperscsi.c +++ b/epan/dissectors/packet-hyperscsi.c @@ -86,17 +86,15 @@ dissect_hyperscsi(tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree) guint16 hs_fragno; gint offset = 0; proto_tree *hs_hdr_tree, *hs_pdu_tree; - proto_tree *hs_tree = NULL; + proto_tree *hs_tree; proto_item *ti; guint8 hs_cmd, hs_ver; col_set_str(pinfo->cinfo, COL_PROTOCOL, "HyperSCSI"); col_clear(pinfo->cinfo, COL_INFO); - if (tree) { - ti = proto_tree_add_item(tree, proto_hyperscsi, tvb, offset, -1, ENC_NA); - hs_tree = proto_item_add_subtree(ti, ett_hyperscsi); - } + ti = proto_tree_add_item(tree, proto_hyperscsi, tvb, offset, -1, ENC_NA); + hs_tree = proto_item_add_subtree(ti, ett_hyperscsi); hs_hdr1 = tvb_get_guint8(tvb, offset); offset++; @@ -114,8 +112,7 @@ dissect_hyperscsi(tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree) */ if (tree) { - ti = proto_tree_add_text(hs_tree, tvb, 0, 3, "HyperSCSI Header"); - hs_hdr_tree = proto_item_add_subtree(ti, ett_hs_hdr); + hs_hdr_tree = proto_tree_add_subtree(hs_tree, tvb, 0, 3, ett_hs_hdr, NULL, "HyperSCSI Header"); /* * Now, add the header items @@ -142,8 +139,7 @@ dissect_hyperscsi(tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree) val_to_str(hs_cmd, hscsi_opcodes, "Unknown HyperSCSI Request or Response (%u)")); if (tree) { - ti = proto_tree_add_text(hs_tree, tvb, 3, -1, "HyperSCSI PDU"); - hs_pdu_tree = proto_item_add_subtree(ti, ett_hs_pdu); + hs_pdu_tree = proto_tree_add_subtree(hs_tree, tvb, 3, -1, ett_hs_pdu, NULL, "HyperSCSI PDU"); proto_tree_add_uint(hs_pdu_tree, hf_hs_ver, tvb, 3, 1, hs_ver); diff --git a/epan/dissectors/packet-zbee-aps.c b/epan/dissectors/packet-zbee-aps.c index 01c2800d28..0feeaa6b1b 100644 --- a/epan/dissectors/packet-zbee-aps.c +++ b/epan/dissectors/packet-zbee-aps.c @@ -1053,9 +1053,8 @@ static void dissect_zbee_aps_cmd(tvbuff_t *tvb, packet_info *pinfo, proto_tree * guint8 cmd_id = tvb_get_guint8(tvb, offset); /* Create a subtree for the APS Command frame, and add the command ID to it. */ - cmd_root = proto_tree_add_text(tree, tvb, offset, tvb_length(tvb), + cmd_tree = proto_tree_add_subtree_format(tree, tvb, offset, -1, ett_zbee_aps_cmd, &cmd_root, "Command Frame: %s", val_to_str_const(cmd_id, zbee_aps_cmd_names, "Unknown")); - cmd_tree = proto_item_add_subtree(cmd_root, ett_zbee_aps_cmd); /* Add the command ID. */ proto_tree_add_uint(cmd_tree, hf_zbee_aps_cmd_id, tvb, offset, 1, cmd_id); @@ -1679,11 +1678,10 @@ dissect_zbee_t2(tvbuff_t *tvb, proto_tree *tree, guint16 cluster_id) { guint offset = 0; guint8 payload_length; - proto_item *ti; proto_tree *t2_tree; - ti = proto_tree_add_text(tree, tvb, 0, tvb_length(tvb), "ZigBee Test Profile #2"); - t2_tree = proto_item_add_subtree(ti, ett_zbee_aps_t2); + t2_tree = proto_tree_add_subtree(tree, tvb, 0, -1, ett_zbee_aps_t2, NULL, "ZigBee Test Profile #2"); + switch (cluster_id) { case ZBEE_APS_T2_CID_BTRES: payload_length = tvb_get_guint8(tvb, offset); diff --git a/epan/dissectors/packet-zbee-nwk-gp.c b/epan/dissectors/packet-zbee-nwk-gp.c index b85b9c83b3..4d1bf3538d 100644 --- a/epan/dissectors/packet-zbee-nwk-gp.c +++ b/epan/dissectors/packet-zbee-nwk-gp.c @@ -829,7 +829,6 @@ dissect_zbee_nwk_gp_cmd_attr_reporting(tvbuff_t *tvb, packet_info *pinfo _U_, pr zbee_nwk_green_power_packet *packet _U_, guint offset) { guint16 cluster_id; - proto_item *ti; proto_tree *field_tree; /* Get cluster ID and add it into the tree. */ @@ -838,8 +837,8 @@ dissect_zbee_nwk_gp_cmd_attr_reporting(tvbuff_t *tvb, packet_info *pinfo _U_, pr offset += 2; /* Create subtree and parse ZCL Write Attribute Payload. */ - ti = proto_tree_add_text(tree, tvb, offset, 2, "Attribute reporting command for cluster: 0x%02X", cluster_id); - field_tree = proto_item_add_subtree(ti, ett_zbee_nwk_cmd_options); + field_tree = proto_tree_add_subtree_format(tree, tvb, offset, 2, ett_zbee_nwk_cmd_options, NULL, + "Attribute reporting command for cluster: 0x%02X", cluster_id); dissect_zcl_write_attr(tvb, pinfo, field_tree, &offset, cluster_id); return offset; @@ -1026,20 +1025,18 @@ dissect_zbee_nwk_gp_cmd(tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree, voi { guint offset = 0; guint8 cmd_id = tvb_get_guint8(tvb, offset); - proto_item *cmd_root = NULL; - proto_tree *cmd_tree = NULL; + proto_item *cmd_root; + proto_tree *cmd_tree; zbee_nwk_green_power_packet *packet = (zbee_nwk_green_power_packet *)data; /* Create a subtree for the command. */ - if (tree) { - cmd_root = proto_tree_add_text(tree, tvb, offset, tvb_length(tvb), "Command Frame: %s", - val_to_str_ext_const(cmd_id, + cmd_tree = proto_tree_add_subtree_format(tree, tvb, offset, -1, ett_zbee_nwk_cmd, &cmd_root, + "Command Frame: %s", val_to_str_ext_const(cmd_id, &zbee_nwk_gp_cmd_names_ext, "Unknown Command Frame")); - cmd_tree = proto_item_add_subtree(cmd_root, ett_zbee_nwk_cmd); - /* Add the command ID. */ - proto_tree_add_uint(cmd_tree, hf_zbee_nwk_gp_command_id, tvb, offset, 1, cmd_id); - } + /* Add the command ID. */ + proto_tree_add_uint(cmd_tree, hf_zbee_nwk_gp_command_id, tvb, offset, 1, cmd_id); + offset += 1; /* Add the command name to the info column. */ col_set_str(pinfo->cinfo, COL_INFO, val_to_str_ext_const(cmd_id, &zbee_nwk_gp_cmd_names_ext, "Unknown command")); diff --git a/epan/dissectors/packet-zbee-nwk.c b/epan/dissectors/packet-zbee-nwk.c index 1ca5bfb4ed..1664d442c4 100644 --- a/epan/dissectors/packet-zbee-nwk.c +++ b/epan/dissectors/packet-zbee-nwk.c @@ -612,11 +612,8 @@ dissect_zbee_nwk_full(tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree, void guint16 relay_addr; guint i; - if (tree) { - /* Create a subtree for the source route field. */ - ti = proto_tree_add_text(nwk_tree, tvb, offset, 1, "Source Route"); - field_tree = proto_item_add_subtree(ti, ett_zbee_nwk_route); - } + /* Create a subtree for the source route field. */ + field_tree = proto_tree_add_subtree(nwk_tree, tvb, offset, 1, ett_zbee_nwk_route, &ti, "Source Route"); /* Get and display the relay count. */ relay_count = tvb_get_guint8(tvb, offset); @@ -733,21 +730,18 @@ dissect_zbee_nwk(tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree, void* data */ static void dissect_zbee_nwk_cmd(tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree, zbee_nwk_packet* packet) { - proto_tree *cmd_tree = NULL; - proto_item *cmd_root = NULL; + proto_tree *cmd_tree; + proto_item *cmd_root; guint offset=0; guint8 cmd_id = tvb_get_guint8(tvb, offset); /* Create a subtree for this command. */ - if (tree) { - cmd_root = proto_tree_add_text(tree, tvb, offset, tvb_length(tvb), "Command Frame: %s", - val_to_str_const(cmd_id, zbee_nwk_cmd_names, "Unknown")); - cmd_tree = proto_item_add_subtree(cmd_root, ett_zbee_nwk_cmd); + cmd_tree = proto_tree_add_subtree_format(tree, tvb, offset, -1, ett_zbee_nwk_cmd, &cmd_root, "Command Frame: %s", + val_to_str_const(cmd_id, zbee_nwk_cmd_names, "Unknown")); - /* Add the command ID. */ - proto_tree_add_uint(cmd_tree, hf_zbee_nwk_cmd_id, tvb, offset, 1, cmd_id); - } + /* Add the command ID. */ + proto_tree_add_uint(cmd_tree, hf_zbee_nwk_cmd_id, tvb, offset, 1, cmd_id); offset += 1; /* Add the command name to the info column. */ diff --git a/epan/dissectors/packet-zbee-security.c b/epan/dissectors/packet-zbee-security.c index cf3f5a815e..30a24fca68 100644 --- a/epan/dissectors/packet-zbee-security.c +++ b/epan/dissectors/packet-zbee-security.c @@ -422,8 +422,7 @@ zbee_security_handoff(void) tvbuff_t * dissect_zbee_secure(tvbuff_t *tvb, packet_info *pinfo, proto_tree* tree, guint offset) { - proto_tree *sec_tree = NULL; - proto_item *sec_root; + proto_tree *sec_tree; proto_tree *field_tree; proto_item *ti; @@ -454,10 +453,7 @@ dissect_zbee_secure(tvbuff_t *tvb, packet_info *pinfo, proto_tree* tree, guint o proto_get_id_by_filter_name(IEEE802154_PROTOABBREV_WPAN), 0); /* Create a subtree for the security information. */ - if (tree) { - sec_root = proto_tree_add_text(tree, tvb, offset, tvb_length_remaining(tvb, offset), "ZigBee Security Header"); - sec_tree = proto_item_add_subtree(sec_root, ett_zbee_sec); - } + sec_tree = proto_tree_add_subtree(tree, tvb, offset, -1, ett_zbee_sec, NULL, "ZigBee Security Header"); /* Get and display the Security control field */ packet.control = tvb_get_guint8(tvb, offset); diff --git a/epan/dissectors/packet-zbee-zcl-general.c b/epan/dissectors/packet-zbee-zcl-general.c index 458e20b189..1385891ceb 100644 --- a/epan/dissectors/packet-zbee-zcl-general.c +++ b/epan/dissectors/packet-zbee-zcl-general.c @@ -547,7 +547,6 @@ static const value_string zbee_zcl_identify_srv_tx_cmd_names[] = { static int dissect_zbee_zcl_identify(tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree, void* data) { - proto_item *payload_root; proto_tree *payload_tree; zbee_zcl_packet *zcl; guint offset = 0; @@ -573,8 +572,7 @@ dissect_zbee_zcl_identify(tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree, v /* Check is this command has a payload, than add the payload tree */ rem_len = tvb_reported_length_remaining(tvb, ++offset); if (rem_len > 0) { - payload_root = proto_tree_add_text(tree, tvb, offset, rem_len, "Payload"); - payload_tree = proto_item_add_subtree(payload_root, ett_zbee_zcl_identify); + payload_tree = proto_tree_add_subtree(tree, tvb, offset, rem_len, ett_zbee_zcl_identify, NULL, "Payload"); /* Call the appropriate command dissector */ switch (cmd_id) { @@ -603,8 +601,7 @@ dissect_zbee_zcl_identify(tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree, v /* Check is this command has a payload, than add the payload tree */ rem_len = tvb_reported_length_remaining(tvb, ++offset); if (rem_len > 0) { - payload_root = proto_tree_add_text(tree, tvb, offset, rem_len, "Payload"); - payload_tree = proto_item_add_subtree(payload_root, ett_zbee_zcl_identify); + payload_tree = proto_tree_add_subtree(tree, tvb, offset, rem_len, ett_zbee_zcl_identify, NULL, "Payload"); /* Call the appropriate command dissector */ switch (cmd_id) { @@ -1239,7 +1236,6 @@ static const value_string zbee_zcl_part_id_length_names[] = { static int dissect_zbee_zcl_part(tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree, void* data) { - proto_item *payload_root; proto_tree *payload_tree; zbee_zcl_packet *zcl; guint offset = 0; @@ -1265,8 +1261,7 @@ dissect_zbee_zcl_part(tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree, void* /* Check is this command has a payload, than add the payload tree */ rem_len = tvb_reported_length_remaining(tvb, ++offset); if (rem_len > 0) { - payload_root = proto_tree_add_text(tree, tvb, offset, rem_len, "Payload"); - payload_tree = proto_item_add_subtree(payload_root, ett_zbee_zcl_part); + payload_tree = proto_tree_add_subtree(tree, tvb, offset, rem_len, ett_zbee_zcl_part, NULL, "Payload"); /* Call the appropriate command dissector */ switch (cmd_id) { @@ -1299,8 +1294,7 @@ dissect_zbee_zcl_part(tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree, void* /* Check is this command has a payload, than add the payload tree */ rem_len = tvb_reported_length_remaining(tvb, ++offset); if (rem_len > 0) { - payload_root = proto_tree_add_text(tree, tvb, offset, rem_len, "Payload"); - payload_tree = proto_item_add_subtree(payload_root, ett_zbee_zcl_part); + payload_tree = proto_tree_add_subtree(tree, tvb, offset, rem_len, ett_zbee_zcl_part, NULL, "Payload"); /* Call the appropriate command dissector */ switch (cmd_id) { @@ -2645,7 +2639,6 @@ dissect_zcl_ota_cmd_id(proto_tree* tree, tvbuff_t* tvb, guint* offset, guint8 cm static int dissect_zbee_zcl_ota(tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree, void *data) { - proto_item *payload_root; proto_tree *payload_tree; zbee_zcl_packet *zcl; guint offset = 0; @@ -2671,8 +2664,7 @@ dissect_zbee_zcl_ota(tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree, void * /* Check is this command has a payload, than add the payload tree */ rem_len = tvb_reported_length_remaining(tvb, ++offset); if (rem_len > 0) { - payload_root = proto_tree_add_text(tree, tvb, offset, rem_len, "Payload"); - payload_tree = proto_item_add_subtree(payload_root, ett_zbee_zcl_ota); + payload_tree = proto_tree_add_subtree(tree, tvb, offset, rem_len, ett_zbee_zcl_ota, NULL, "Payload"); /* Call the appropriate command dissector */ switch (cmd_id) { @@ -2713,8 +2705,7 @@ dissect_zbee_zcl_ota(tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree, void * /* Check is this command has a payload, than add the payload tree */ rem_len = tvb_reported_length_remaining(tvb, ++offset); if (rem_len > 0) { - payload_root = proto_tree_add_text(tree, tvb, offset, rem_len, "Payload"); - payload_tree = proto_item_add_subtree(payload_root, ett_zbee_zcl_ota); + payload_tree = proto_tree_add_subtree(tree, tvb, offset, rem_len, ett_zbee_zcl_ota, NULL, "Payload"); /* Call the appropriate command dissector */ switch (cmd_id) { @@ -3159,7 +3150,6 @@ static const value_string zbee_zcl_pwr_prof_state_names[] = { static int dissect_zbee_zcl_pwr_prof (tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree, void *data) { - proto_item *payload_root; proto_tree *payload_tree; zbee_zcl_packet *zcl; guint offset = 0; @@ -3185,8 +3175,7 @@ dissect_zbee_zcl_pwr_prof (tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree, /* Check is this command has a payload, than add the payload tree */ rem_len = tvb_reported_length_remaining(tvb, ++offset); if (rem_len > 0) { - payload_root = proto_tree_add_text(tree, tvb, offset, rem_len, "Payload"); - payload_tree = proto_item_add_subtree(payload_root, ett_zbee_zcl_pwr_prof); + payload_tree = proto_tree_add_subtree(tree, tvb, offset, rem_len, ett_zbee_zcl_pwr_prof, NULL, "Payload"); /* Call the appropriate command dissector */ switch (cmd_id) { @@ -3231,8 +3220,7 @@ dissect_zbee_zcl_pwr_prof (tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree, /* Check is this command has a payload, than add the payload tree */ rem_len = tvb_reported_length_remaining(tvb, ++offset); if (rem_len > 0) { - payload_root = proto_tree_add_text(tree, tvb, offset, rem_len, "Payload"); - payload_tree = proto_item_add_subtree(payload_root, ett_zbee_zcl_pwr_prof); + payload_tree = proto_tree_add_subtree(tree, tvb, offset, rem_len, ett_zbee_zcl_pwr_prof, NULL, "Payload"); /* Call the appropriate command dissector */ switch (cmd_id) { @@ -3434,8 +3422,8 @@ dissect_zcl_pwr_prof_enphsschednotif(tvbuff_t *tvb, proto_tree *tree, guint *off /* Scheduled Energy Phases decoding */ for (i=0 ; i<num_of_sched_phases ; i++) { /* Create subtree */ - ti = proto_tree_add_text(tree, tvb, *offset, 1, "Energy Phase #%u", i); - sub_tree = proto_item_add_subtree(ti, ett_zbee_zcl_pwr_prof_enphases[i]); + sub_tree = proto_tree_add_subtree_format(tree, tvb, *offset, 1, + ett_zbee_zcl_pwr_prof_enphases[i], NULL, "Energy Phase #%u", i); dissect_zcl_sched_energy_phase(tvb, sub_tree, offset); } @@ -3522,8 +3510,8 @@ dissect_zcl_pwr_prof_pwrprofnotif(tvbuff_t *tvb, proto_tree *tree, guint *offset /* Energy Phases decoding */ for ( i=0 ; i<num_of_transferred_phases ; i++) { /* Create subtree */ - ti = proto_tree_add_text(tree, tvb, *offset, 1, "Energy Phase #%u", i); - sub_tree = proto_item_add_subtree(ti, ett_zbee_zcl_pwr_prof_enphases[i]); + sub_tree = proto_tree_add_subtree_format(tree, tvb, *offset, 1, + ett_zbee_zcl_pwr_prof_enphases[i], NULL, "Energy Phase #%u", i); dissect_zcl_energy_phase(tvb, sub_tree, offset); } @@ -3598,8 +3586,8 @@ dissect_zcl_pwr_prof_pwrprofstatersp(tvbuff_t *tvb, proto_tree *tree, guint *off /* Energy Phases decoding */ for (i=0 ; i<power_profile_count ; i++) { /* Create subtree */ - ti = proto_tree_add_text(tree, tvb, *offset, 1, "Power Profile #%u", i); - sub_tree = proto_item_add_subtree(ti, ett_zbee_zcl_pwr_prof_pwrprofiles[i]); + sub_tree = proto_tree_add_subtree_format(tree, tvb, *offset, 1, + ett_zbee_zcl_pwr_prof_pwrprofiles[i], NULL, "Power Profile #%u", i); dissect_zcl_power_profile(tvb, sub_tree, offset); } @@ -4368,7 +4356,6 @@ static const value_string zbee_zcl_appl_ctrl_time_encoding_type_names[] = { static int dissect_zbee_zcl_appl_ctrl(tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree, void* data) { - proto_item *payload_root; proto_tree *payload_tree; zbee_zcl_packet *zcl; guint offset = 0; @@ -4394,8 +4381,7 @@ dissect_zbee_zcl_appl_ctrl(tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree, /* Check is this command has a payload, than add the payload tree */ rem_len = tvb_reported_length_remaining(tvb, ++offset); if (rem_len > 0) { - payload_root = proto_tree_add_text(tree, tvb, offset, rem_len, "Payload"); - payload_tree = proto_item_add_subtree(payload_root, ett_zbee_zcl_appl_ctrl); + payload_tree = proto_tree_add_subtree(tree, tvb, offset, rem_len, ett_zbee_zcl_appl_ctrl, NULL, "Payload"); /* Call the appropriate command dissector */ switch (cmd_id) { @@ -4434,8 +4420,7 @@ dissect_zbee_zcl_appl_ctrl(tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree, /* Check is this command has a payload, than add the payload tree */ rem_len = tvb_reported_length_remaining(tvb, ++offset); if (rem_len > 0) { - payload_root = proto_tree_add_text(tree, tvb, offset, rem_len, "Payload"); - payload_tree = proto_item_add_subtree(payload_root, ett_zbee_zcl_appl_ctrl); + payload_tree = proto_tree_add_subtree(tree, tvb, offset, rem_len, ett_zbee_zcl_appl_ctrl, NULL, "Payload"); /* Call the appropriate command dissector */ switch (cmd_id) { @@ -4540,8 +4525,8 @@ dissect_zcl_appl_ctrl_wr_funcs(tvbuff_t *tvb, proto_tree *tree, guint *offset) tvb_len = tvb_reported_length(tvb); while ( *offset < tvb_len && i < ZBEE_ZCL_APPL_CTRL_NUM_FUNC_ETT ) { /* Create subtree for attribute status field */ - ti = proto_tree_add_text(tree, tvb, *offset, 0, "Function #%d", i); - sub_tree = proto_item_add_subtree(ti, ett_zbee_zcl_appl_ctrl_func[i]); + sub_tree = proto_tree_add_subtree_format(tree, tvb, *offset, 0, + ett_zbee_zcl_appl_ctrl_func[i], NULL, "Function #%d", i); i++; /* Dissect the attribute identifier */ diff --git a/epan/dissectors/packet-zbee-zcl-ha.c b/epan/dissectors/packet-zbee-zcl-ha.c index a8a2f30154..417649902e 100644 --- a/epan/dissectors/packet-zbee-zcl-ha.c +++ b/epan/dissectors/packet-zbee-zcl-ha.c @@ -819,7 +819,6 @@ static const value_string zbee_zcl_appl_evtalt_status_names[] = { static int dissect_zbee_zcl_appl_evtalt(tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree, void* data) { - proto_item *payload_root; proto_tree *payload_tree; zbee_zcl_packet *zcl; guint offset = 0; @@ -845,8 +844,7 @@ dissect_zbee_zcl_appl_evtalt(tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree /* Check is this command has a payload, than add the payload tree */ rem_len = tvb_reported_length_remaining(tvb, ++offset); if (rem_len > 0) { - /*payload_root = */proto_tree_add_text(tree, tvb, offset, rem_len, "Payload"); - /*payload_tree = proto_item_add_subtree(payload_root, ett_zbee_zcl_appl_evtalt);*/ + /*payload_tree = */proto_tree_add_subtree(tree, tvb, offset, rem_len, ett_zbee_zcl_appl_evtalt, NULL, "Payload"); /* Call the appropriate command dissector */ switch (cmd_id) { @@ -871,8 +869,7 @@ dissect_zbee_zcl_appl_evtalt(tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree /* Check is this command has a payload, than add the payload tree */ rem_len = tvb_reported_length_remaining(tvb, ++offset); if (rem_len > 0) { - payload_root = proto_tree_add_text(tree, tvb, offset, rem_len, "Payload"); - payload_tree = proto_item_add_subtree(payload_root, ett_zbee_zcl_appl_evtalt); + payload_tree = proto_tree_add_subtree(tree, tvb, offset, rem_len, ett_zbee_zcl_appl_evtalt, NULL, "Payload"); /* Call the appropriate command dissector */ switch (cmd_id) { @@ -951,8 +948,8 @@ dissect_zcl_appl_evtalt_get_alerts_rsp(tvbuff_t *tvb, proto_tree *tree, guint *o for ( i=0 ; i<count ; i++) { /* Create subtree */ - ti = proto_tree_add_text(tree, tvb, *offset, 1, "Alerts Structure #%u", i); - sub_tree = proto_item_add_subtree(ti, ett_zbee_zcl_appl_evtalt_alerts_struct[i]); + sub_tree = proto_tree_add_subtree_format(tree, tvb, *offset, 1, + ett_zbee_zcl_appl_evtalt_alerts_struct[i], NULL, "Alerts Structure #%u", i); dissect_zcl_appl_evtalt_alerts_struct(tvb, sub_tree, offset); } @@ -1239,7 +1236,6 @@ static const value_string zbee_zcl_appl_stats_srv_tx_cmd_names[] = { static int dissect_zbee_zcl_appl_stats (tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree, void* data) { - proto_item *payload_root; proto_tree *payload_tree; zbee_zcl_packet *zcl; guint offset = 0; @@ -1265,8 +1261,7 @@ dissect_zbee_zcl_appl_stats (tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree /* Check is this command has a payload, than add the payload tree */ rem_len = tvb_reported_length_remaining(tvb, ++offset); if (rem_len > 0) { - payload_root = proto_tree_add_text(tree, tvb, offset, rem_len, "Payload"); - payload_tree = proto_item_add_subtree(payload_root, ett_zbee_zcl_appl_stats); + payload_tree = proto_tree_add_subtree(tree, tvb, offset, rem_len, ett_zbee_zcl_appl_stats, NULL, "Payload"); /* Call the appropriate command dissector */ switch (cmd_id) { @@ -1295,8 +1290,7 @@ dissect_zbee_zcl_appl_stats (tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree /* Check is this command has a payload, than add the payload tree */ rem_len = tvb_reported_length_remaining(tvb, ++offset); if (rem_len > 0) { - payload_root = proto_tree_add_text(tree, tvb, offset, rem_len, "Payload"); - payload_tree = proto_item_add_subtree(payload_root, ett_zbee_zcl_appl_stats); + payload_tree = proto_tree_add_subtree(tree, tvb, offset, rem_len, ett_zbee_zcl_appl_stats, NULL, "Payload"); /* Call the appropriate command dissector */ switch (cmd_id) { diff --git a/epan/dissectors/packet-zbee-zcl-se.c b/epan/dissectors/packet-zbee-zcl-se.c index cdb0f941f7..41a8f04144 100644 --- a/epan/dissectors/packet-zbee-zcl-se.c +++ b/epan/dissectors/packet-zbee-zcl-se.c @@ -164,7 +164,6 @@ static const value_string zbee_zcl_msg_ctrl_importance_names[] = { static int dissect_zbee_zcl_msg(tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree, void* data) { - proto_item *payload_root; proto_tree *payload_tree; zbee_zcl_packet *zcl; guint offset = 0; @@ -190,8 +189,7 @@ dissect_zbee_zcl_msg(tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree, void* /* Check is this command has a payload, than add the payload tree */ rem_len = tvb_reported_length_remaining(tvb, ++offset); if (rem_len > 0) { - payload_root = proto_tree_add_text(tree, tvb, offset, rem_len, "Payload"); - payload_tree = proto_item_add_subtree(payload_root, ett_zbee_zcl_msg); + payload_tree = proto_tree_add_subtree(tree, tvb, offset, rem_len, ett_zbee_zcl_msg, NULL, "Payload"); /* Call the appropriate command dissector */ switch (cmd_id) { @@ -221,8 +219,7 @@ dissect_zbee_zcl_msg(tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree, void* /* Check is this command has a payload, than add the payload tree */ rem_len = tvb_reported_length_remaining(tvb, ++offset); if (rem_len > 0) { - payload_root = proto_tree_add_text(tree, tvb, offset, rem_len, "Payload"); - payload_tree = proto_item_add_subtree(payload_root, ett_zbee_zcl_msg); + payload_tree = proto_tree_add_subtree(tree, tvb, offset, rem_len, ett_zbee_zcl_msg, NULL, "Payload"); /* Call the appropriate command dissector */ switch (cmd_id) { diff --git a/epan/dissectors/packet-zbee-zcl.c b/epan/dissectors/packet-zbee-zcl.c index bb01f72279..7f63862159 100644 --- a/epan/dissectors/packet-zbee-zcl.c +++ b/epan/dissectors/packet-zbee-zcl.c @@ -829,10 +829,10 @@ static int dissect_zbee_zcl(tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree, tvbuff_t *payload_tvb; dissector_handle_t cluster_handle; - proto_tree *zcl_tree = NULL; + proto_tree *zcl_tree; proto_tree *sub_tree = NULL; - proto_item *proto_root = NULL; + proto_item *proto_root; proto_item *ti; zbee_nwk_packet *nwk; @@ -857,12 +857,10 @@ static int dissect_zbee_zcl(tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree, cluster_handle = dissector_get_uint_handle(zbee_zcl_dissector_table, cluster_id); /* Create the protocol tree */ - if ( tree ) { - proto_root = proto_tree_add_protocol_format(tree, proto_zbee_zcl, tvb, offset, - tvb_length(tvb), "ZigBee Cluster Library Frame"); + proto_root = proto_tree_add_protocol_format(tree, proto_zbee_zcl, tvb, offset, + -1, "ZigBee Cluster Library Frame"); - zcl_tree = proto_item_add_subtree(proto_root, ett_zbee_zcl); - } + zcl_tree = proto_item_add_subtree(proto_root, ett_zbee_zcl); /* Clear info column */ col_clear(pinfo->cinfo, COL_INFO); @@ -877,10 +875,9 @@ static int dissect_zbee_zcl(tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree, /* Display the FCF */ if ( tree ) { /* Create the subtree */ - ti = proto_tree_add_text(zcl_tree, tvb, offset, 1, - "Frame Control Field: %s (0x%02x)", + sub_tree = proto_tree_add_subtree_format(zcl_tree, tvb, offset, 1, + ett_zbee_zcl_fcf, NULL, "Frame Control Field: %s (0x%02x)", val_to_str_const(packet.frame_type, zbee_zcl_frame_types, "Unknown"), fcf); - sub_tree = proto_item_add_subtree(ti, ett_zbee_zcl_fcf); /* Add the frame type */ proto_tree_add_item(sub_tree, hf_zbee_zcl_fcf_frame_type, tvb, offset, 1, ENC_NA); @@ -1374,8 +1371,7 @@ void dissect_zcl_read_attr(tvbuff_t *tvb, packet_info *pinfo _U_, proto_tree *tr */ void dissect_zcl_read_attr_resp(tvbuff_t *tvb, packet_info *pinfo _U_, proto_tree *tree, guint *offset, guint16 cluster_id) { - proto_item *ti = NULL; - proto_tree *sub_tree = NULL; + proto_tree *sub_tree; guint tvb_len; guint i = 0; @@ -1385,8 +1381,7 @@ void dissect_zcl_read_attr_resp(tvbuff_t *tvb, packet_info *pinfo _U_, proto_tre while ( *offset < tvb_len && i < ZBEE_ZCL_NUM_ATTR_ETT ) { /* Create subtree for attribute status field */ - ti = proto_tree_add_text(tree, tvb, *offset, 0, "Status Record"); - sub_tree = proto_item_add_subtree(ti, ett_zbee_zcl_attr[i]); + sub_tree = proto_tree_add_subtree(tree, tvb, *offset, 0, ett_zbee_zcl_attr[i], NULL, "Status Record"); i++; /* Dissect the attribute identifier */ @@ -1419,8 +1414,7 @@ void dissect_zcl_read_attr_resp(tvbuff_t *tvb, packet_info *pinfo _U_, proto_tre */ void dissect_zcl_write_attr(tvbuff_t *tvb, packet_info *pinfo _U_, proto_tree *tree, guint *offset, guint16 cluster_id) { - proto_item *ti = NULL; - proto_tree *sub_tree = NULL; + proto_tree *sub_tree; guint tvb_len; guint i = 0; @@ -1430,8 +1424,7 @@ void dissect_zcl_write_attr(tvbuff_t *tvb, packet_info *pinfo _U_, proto_tree *t while ( *offset < tvb_len && i < ZBEE_ZCL_NUM_ATTR_ETT ) { /* Create subtree for attribute status field */ - ti = proto_tree_add_text(tree, tvb, *offset, 0, "Attribute Field"); - sub_tree = proto_item_add_subtree(ti, ett_zbee_zcl_attr[i]); + sub_tree = proto_tree_add_subtree(tree, tvb, *offset, 0, ett_zbee_zcl_attr[i], NULL, "Attribute Field"); i++; /* Dissect the attribute identifier */ @@ -1459,8 +1452,7 @@ void dissect_zcl_write_attr(tvbuff_t *tvb, packet_info *pinfo _U_, proto_tree *t */ static void dissect_zcl_write_attr_resp(tvbuff_t *tvb, packet_info *pinfo _U_, proto_tree *tree, guint *offset, guint16 cluster_id) { - proto_item *ti = NULL; - proto_tree *sub_tree = NULL; + proto_tree *sub_tree; guint tvb_len; guint i = 0; @@ -1469,8 +1461,7 @@ static void dissect_zcl_write_attr_resp(tvbuff_t *tvb, packet_info *pinfo _U_, p while ( *offset < tvb_len && i < ZBEE_ZCL_NUM_ATTR_ETT ) { /* Create subtree for attribute status field */ - ti = proto_tree_add_text(tree, tvb, *offset, 0, "Status Record"); - sub_tree = proto_item_add_subtree(ti, ett_zbee_zcl_attr[i]); + sub_tree = proto_tree_add_subtree(tree, tvb, *offset, 0, ett_zbee_zcl_attr[i], NULL, "Status Record"); i++; /* Dissect the status */ @@ -1499,8 +1490,7 @@ static void dissect_zcl_write_attr_resp(tvbuff_t *tvb, packet_info *pinfo _U_, p static void dissect_zcl_read_report_config_resp(tvbuff_t *tvb, packet_info *pinfo _U_, proto_tree *tree, guint *offset, guint16 cluster_id) { - proto_item *ti = NULL; - proto_tree *sub_tree = NULL; + proto_tree *sub_tree; guint tvb_len; guint i = 0; @@ -1513,8 +1503,7 @@ static void dissect_zcl_read_report_config_resp(tvbuff_t *tvb, packet_info *pinf while ( *offset < tvb_len && i < ZBEE_ZCL_NUM_ATTR_ETT ) { /* Create subtree for attribute status field */ - ti = proto_tree_add_text(tree, tvb, *offset, 3, "Reporting Configuration Record"); - sub_tree = proto_item_add_subtree(ti, ett_zbee_zcl_attr[i]); + sub_tree = proto_tree_add_subtree(tree, tvb, *offset, 3, ett_zbee_zcl_attr[i], NULL, "Reporting Configuration Record"); i++; /* Dissect the status */ @@ -1571,8 +1560,7 @@ static void dissect_zcl_read_report_config_resp(tvbuff_t *tvb, packet_info *pinf */ static void dissect_zcl_config_report(tvbuff_t *tvb, packet_info *pinfo _U_, proto_tree *tree, guint *offset, guint16 cluster_id) { - proto_item *ti = NULL; - proto_tree *sub_tree = NULL; + proto_tree *sub_tree; guint tvb_len; guint i = 0; @@ -1583,8 +1571,7 @@ static void dissect_zcl_config_report(tvbuff_t *tvb, packet_info *pinfo _U_, pro while ( *offset < tvb_len && i < ZBEE_ZCL_NUM_ATTR_ETT ) { /* Create subtree for attribute status field */ - ti = proto_tree_add_text(tree, tvb, *offset, 3, "Reporting Configuration Record"); - sub_tree = proto_item_add_subtree(ti, ett_zbee_zcl_attr[i]); + sub_tree = proto_tree_add_subtree(tree, tvb, *offset, 3, ett_zbee_zcl_attr[i], NULL, "Reporting Configuration Record"); i++; /* Dissect the direction and any reported configuration */ @@ -1640,8 +1627,7 @@ static void dissect_zcl_config_report(tvbuff_t *tvb, packet_info *pinfo _U_, pro static void dissect_zcl_config_report_resp(tvbuff_t *tvb, packet_info *pinfo _U_, proto_tree *tree, guint *offset, guint16 cluster_id) { - proto_item *ti = NULL; - proto_tree *sub_tree = NULL; + proto_tree *sub_tree; guint tvb_len; guint i = 0; @@ -1650,8 +1636,7 @@ static void dissect_zcl_config_report_resp(tvbuff_t *tvb, packet_info *pinfo _U_ while ( *offset < tvb_len && i < ZBEE_ZCL_NUM_ATTR_ETT ) { /* Create subtree for attribute status field */ - ti = proto_tree_add_text(tree, tvb, *offset, 3, "Attribute Status Record"); - sub_tree = proto_item_add_subtree(ti, ett_zbee_zcl_attr[i]); + sub_tree = proto_tree_add_subtree(tree, tvb, *offset, 3, ett_zbee_zcl_attr[i], NULL, "Attribute Status Record"); i++; /* Dissect the status */ @@ -1683,8 +1668,7 @@ static void dissect_zcl_config_report_resp(tvbuff_t *tvb, packet_info *pinfo _U_ static void dissect_zcl_read_report_config(tvbuff_t *tvb, packet_info *pinfo _U_, proto_tree *tree, guint *offset, guint16 cluster_id) { - proto_item *ti = NULL; - proto_tree *sub_tree = NULL; + proto_tree *sub_tree; guint tvb_len; guint i = 0; @@ -1693,8 +1677,7 @@ static void dissect_zcl_read_report_config(tvbuff_t *tvb, packet_info *pinfo _U_ while ( *offset < tvb_len && i < ZBEE_ZCL_NUM_ATTR_ETT ) { /* Create subtree for attribute status field */ - ti = proto_tree_add_text(tree, tvb, *offset, 3, "Attribute Status Record"); - sub_tree = proto_item_add_subtree(ti, ett_zbee_zcl_attr[i]); + sub_tree = proto_tree_add_subtree(tree, tvb, *offset, 3, ett_zbee_zcl_attr[i], NULL, "Attribute Status Record"); i++; /* Dissect the direction */ @@ -1786,20 +1769,19 @@ static void dissect_zcl_discover_attr(tvbuff_t *tvb, packet_info *pinfo _U_, pro static void dissect_zcl_discover_attr_resp(tvbuff_t *tvb, packet_info *pinfo _U_, proto_tree *tree, guint *offset, guint16 cluster_id) { - proto_item *ti = NULL; proto_tree *sub_tree = NULL; guint tvb_len; guint i = 0; + /* XXX - tree is never available!!!*/ dissect_zcl_attr_uint8(tvb, sub_tree, offset, &hf_zbee_zcl_attr_dis); tvb_len = tvb_length(tvb); while ( *offset < tvb_len && i < ZBEE_ZCL_NUM_ATTR_ETT ) { /* Create subtree for attribute status field */ - ti = proto_tree_add_text(tree, tvb, *offset, 3, "Attribute Status Record"); - sub_tree = proto_item_add_subtree(ti, ett_zbee_zcl_attr[i]); + sub_tree = proto_tree_add_subtree(tree, tvb, *offset, 3, ett_zbee_zcl_attr[i], NULL, "Attribute Status Record"); i++; /* Dissect the attribute identifier */ @@ -2395,23 +2377,22 @@ static guint dissect_zcl_attr_uint8(tvbuff_t *tvb, proto_tree *tree, guint *offs static void dissect_zcl_array_type(tvbuff_t *tvb, proto_tree *tree, guint *offset, guint8 elements_type, guint16 elements_num) { - proto_item *ti = NULL; - proto_tree *sub_tree = NULL; + proto_tree *sub_tree; guint tvb_len; guint i = 1; /* First element has a 1-index value */ tvb_len = tvb_captured_length(tvb); while ( (*offset < tvb_len) && (elements_num != 0) ) { - /* Create subtree for array element field */ - ti = proto_tree_add_text(tree, tvb, *offset, 0, "Element #%d", i); /* Have "common" use case give individual tree control to all elements, but don't prevent dissection if list is large */ if (i < ZBEE_ZCL_NUM_ARRAY_ELEM_ETT-1) - sub_tree = proto_item_add_subtree(ti, ett_zbee_zcl_array_elements[i]); + sub_tree = proto_tree_add_subtree_format(tree, tvb, *offset, 0, + ett_zbee_zcl_array_elements[i], NULL, "Element #%d", i); else - sub_tree = proto_item_add_subtree(ti, ett_zbee_zcl_array_elements[ZBEE_ZCL_NUM_ARRAY_ELEM_ETT-1]); + sub_tree = proto_tree_add_subtree_format(tree, tvb, *offset, 0, + ett_zbee_zcl_array_elements[ZBEE_ZCL_NUM_ARRAY_ELEM_ETT-1], NULL, "Element #%d", i); dissect_zcl_attr_data(tvb, sub_tree, offset, elements_type); elements_num--; @@ -2437,24 +2418,22 @@ dissect_zcl_array_type(tvbuff_t *tvb, proto_tree *tree, guint *offset, guint8 el static void dissect_zcl_set_type(tvbuff_t *tvb, proto_tree *tree, guint *offset, guint8 elements_type, guint16 elements_num) { - proto_item *ti = NULL; - proto_tree *sub_tree = NULL; + proto_tree *sub_tree; guint tvb_len; guint i = 1; /* First element has a 1-index value */ tvb_len = tvb_captured_length(tvb); while ( (*offset < tvb_len) && (elements_num != 0) ) { - /* Create subtree for array element field */ - ti = proto_tree_add_text(tree, tvb, *offset, 0, "Element"); - /* Piggyback on array ett_ variables */ /* Have "common" use case give individual tree control to all elements, but don't prevent dissection if list is large */ if (i < ZBEE_ZCL_NUM_ARRAY_ELEM_ETT-1) - sub_tree = proto_item_add_subtree(ti, ett_zbee_zcl_array_elements[i]); + sub_tree = proto_tree_add_subtree(tree, tvb, *offset, 0, + ett_zbee_zcl_array_elements[i], NULL, "Element"); else - sub_tree = proto_item_add_subtree(ti, ett_zbee_zcl_array_elements[ZBEE_ZCL_NUM_ARRAY_ELEM_ETT-1]); + sub_tree = proto_tree_add_subtree(tree, tvb, *offset, 0, + ett_zbee_zcl_array_elements[ZBEE_ZCL_NUM_ARRAY_ELEM_ETT-1], NULL, "Element"); dissect_zcl_attr_data(tvb, sub_tree, offset, elements_type); elements_num--; diff --git a/epan/dissectors/packet-zbee-zdp-binding.c b/epan/dissectors/packet-zbee-zdp-binding.c index 1271dee0b9..391205723a 100644 --- a/epan/dissectors/packet-zbee-zdp-binding.c +++ b/epan/dissectors/packet-zbee-zdp-binding.c @@ -144,7 +144,6 @@ dissect_zbee_zdp_req_end_device_bind(tvbuff_t *tvb, packet_info *pinfo, proto_tr { guint sizeof_cluster = (version >= ZBEE_VERSION_2007)?(int)sizeof(guint16):(int)sizeof(guint8); guint i; - proto_item *ti; proto_tree *field_tree = NULL; guint offset = 0; @@ -165,15 +164,15 @@ dissect_zbee_zdp_req_end_device_bind(tvbuff_t *tvb, packet_info *pinfo, proto_tr in_count = zbee_parse_uint(tree, hf_zbee_zdp_in_count, tvb, &offset, (guint)sizeof(guint8), NULL); if ((tree) && (in_count)){ - ti = proto_tree_add_text(tree, tvb, offset, (int)(in_count*sizeof_cluster), "Input Cluster List"); - field_tree = proto_item_add_subtree(ti, ett_zbee_zdp_bind_end_in); + field_tree = proto_tree_add_subtree(tree, tvb, offset, (int)(in_count*sizeof_cluster), + ett_zbee_zdp_bind_end_in, NULL, "Input Cluster List"); } for (i=0; i<in_count; i++) zbee_parse_uint(field_tree, hf_zbee_zdp_in_cluster, tvb, &offset, (guint)sizeof_cluster, NULL); out_count = zbee_parse_uint(tree, hf_zbee_zdp_out_count, tvb, &offset, (guint)sizeof(guint8), NULL); if ((tree) && (out_count)) { - ti = proto_tree_add_text(tree, tvb, offset, (int)(out_count*sizeof_cluster), "Output Cluster List"); - field_tree = proto_item_add_subtree(ti, ett_zbee_zdp_bind_end_out); + field_tree = proto_tree_add_subtree(tree, tvb, offset, (int)(out_count*sizeof_cluster), + ett_zbee_zdp_bind_end_out, NULL, "Output Cluster List"); } for (i=0; i<out_count; i++) zbee_parse_uint(field_tree, hf_zbee_zdp_out_cluster, tvb, &offset, sizeof_cluster, NULL); @@ -502,8 +501,7 @@ dissect_zbee_zdp_req_remove_bak_bind_entry(tvbuff_t *tvb, packet_info *pinfo, pr void dissect_zbee_zdp_req_backup_bind_table(tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree, guint8 version) { - proto_item *ti; - proto_tree *field_tree = NULL; + proto_tree *field_tree; guint i; guint offset = 0; @@ -515,10 +513,8 @@ dissect_zbee_zdp_req_backup_bind_table(tvbuff_t *tvb, packet_info *pinfo, proto_ /*idx =*/ zbee_parse_uint(tree, hf_zbee_zdp_index, tvb, &offset, (int)sizeof(guint16), NULL); table_count = zbee_parse_uint(tree, hf_zbee_zdp_table_count, tvb, &offset, (int)sizeof(guint16), NULL); - if (tree) { - ti = proto_tree_add_text(tree, tvb, offset, tvb_length_remaining(tvb, offset), "Binding Table"); - field_tree = proto_item_add_subtree(ti, ett_zbee_zdp_bind); - } + field_tree = proto_tree_add_subtree(tree, tvb, offset, -1, ett_zbee_zdp_bind, NULL, "Binding Table"); + for (i=0; i<table_count; i++) { zdp_parse_bind_table_entry(field_tree, tvb, &offset, version); } /* for */ @@ -570,8 +566,7 @@ dissect_zbee_zdp_req_recover_bind_table(tvbuff_t *tvb, packet_info *pinfo, proto void dissect_zbee_zdp_req_backup_source_bind(tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree) { - proto_item *ti; - proto_tree *field_tree = NULL; + proto_tree *field_tree; guint i; guint offset = 0; @@ -583,10 +578,9 @@ dissect_zbee_zdp_req_backup_source_bind(tvbuff_t *tvb, packet_info *pinfo, proto /*idx =*/ zbee_parse_uint(tree, hf_zbee_zdp_index, tvb, &offset, (int)sizeof(guint16), NULL); count = zbee_parse_uint(tree, hf_zbee_zdp_table_count, tvb, &offset, (int)sizeof(guint16), NULL); - if (tree) { - ti = proto_tree_add_text(tree, tvb, offset, count*(int)sizeof(guint64), "Source Table"); - field_tree = proto_item_add_subtree(ti, ett_zbee_zdp_bind_source); - } + field_tree = proto_tree_add_subtree(tree, tvb, offset, count*(int)sizeof(guint64), + ett_zbee_zdp_bind_source, NULL, "Source Table"); + for (i=0; i<count; i++) zbee_parse_eui64(field_tree, hf_zbee_zdp_bind_src64, tvb, &offset, (int)sizeof(guint64), NULL); /* Dump any leftover bytes. */ @@ -724,7 +718,6 @@ dissect_zbee_zdp_rsp_unbind(tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree) void dissect_zbee_zdp_rsp_bind_register(tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree, guint8 version) { - proto_item *ti; proto_tree *field_tree = NULL; guint offset = 0; guint i; @@ -738,8 +731,7 @@ dissect_zbee_zdp_rsp_bind_register(tvbuff_t *tvb, packet_info *pinfo, proto_tree table_count = zbee_parse_uint(tree, hf_zbee_zdp_table_count, tvb, &offset, (int)sizeof(guint16), NULL); if (tree && table_count) { - ti = proto_tree_add_text(tree, tvb, offset, tvb_length_remaining(tvb, offset), "Binding List"); - field_tree = proto_item_add_subtree(ti, ett_zbee_zdp_bind); + field_tree = proto_tree_add_subtree(tree, tvb, offset, -1, ett_zbee_zdp_bind, NULL, "Binding List"); } for (i=0; i<table_count; i++) { zdp_parse_bind_table_entry(field_tree, tvb, &offset, version); @@ -882,7 +874,6 @@ dissect_zbee_zdp_rsp_backup_bind_table(tvbuff_t *tvb, packet_info *pinfo, proto_ void dissect_zbee_zdp_rsp_recover_bind_table(tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree, guint8 version) { - proto_item *ti; proto_tree *field_tree = NULL; guint offset = 0; guint i; @@ -898,8 +889,7 @@ dissect_zbee_zdp_rsp_recover_bind_table(tvbuff_t *tvb, packet_info *pinfo, proto table_count = zbee_parse_uint(tree, hf_zbee_zdp_table_count, tvb, &offset, (int)sizeof(guint16), NULL); if (tree && table_count) { - ti = proto_tree_add_text(tree, tvb, offset, tvb_length_remaining(tvb, offset), "Binding Table"); - field_tree = proto_item_add_subtree(ti, ett_zbee_zdp_bind); + field_tree = proto_tree_add_subtree(tree, tvb, offset, -1, ett_zbee_zdp_bind, NULL, "Binding Table"); } for (i=0; i<table_count; i++) { zdp_parse_bind_table_entry(field_tree, tvb, &offset, version); @@ -956,7 +946,6 @@ dissect_zbee_zdp_rsp_backup_source_bind(tvbuff_t *tvb, packet_info *pinfo, proto void dissect_zbee_zdp_rsp_recover_source_bind(tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree) { - proto_item *ti; proto_tree *field_tree = NULL; guint offset = 0; guint i; @@ -972,8 +961,8 @@ dissect_zbee_zdp_rsp_recover_source_bind(tvbuff_t *tvb, packet_info *pinfo, prot table_count = zbee_parse_uint(tree, hf_zbee_zdp_table_count, tvb, &offset, (int)sizeof(guint16), NULL); if (tree && table_count) { - ti = proto_tree_add_text(tree, tvb, offset, table_count * (int)sizeof(guint64), "Source Table"); - field_tree = proto_item_add_subtree(ti, ett_zbee_zdp_bind_source); + field_tree = proto_tree_add_subtree(tree, tvb, offset, table_count * (int)sizeof(guint64), + ett_zbee_zdp_bind_source, NULL, "Source Table"); } for (i=0; i<table_count; i++) { (void)zbee_parse_eui64(field_tree, hf_zbee_zdp_bind_src64, tvb, &offset, (int)sizeof(guint64), NULL); diff --git a/epan/dissectors/packet-zbee-zdp-discovery.c b/epan/dissectors/packet-zbee-zdp-discovery.c index 360b64bc84..4544da17d5 100644 --- a/epan/dissectors/packet-zbee-zdp-discovery.c +++ b/epan/dissectors/packet-zbee-zdp-discovery.c @@ -234,7 +234,6 @@ dissect_zbee_zdp_req_active_ep(tvbuff_t *tvb, packet_info *pinfo, proto_tree *tr void dissect_zbee_zdp_req_match_desc(tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree, guint8 version) { - proto_item *ti; proto_tree *field_tree = NULL; guint offset = 0, i; guint sizeof_cluster = (version >= ZBEE_VERSION_2007)?(int)sizeof(guint16):(int)sizeof(guint8); @@ -250,16 +249,15 @@ dissect_zbee_zdp_req_match_desc(tvbuff_t *tvb, packet_info *pinfo, proto_tree *t /* Add the input cluster list. */ in_count = zbee_parse_uint(tree, hf_zbee_zdp_in_count, tvb, &offset, (int)sizeof(guint8), NULL); if (tree && in_count) { - ti = proto_tree_add_text(tree, tvb, offset, in_count*sizeof_cluster, "Input Cluster List"); - field_tree = proto_item_add_subtree(ti, ett_zbee_zdp_match_in); + field_tree = proto_tree_add_subtree(tree, tvb, offset, in_count*sizeof_cluster, + ett_zbee_zdp_match_in, NULL, "Input Cluster List"); } for (i=0; i<in_count; i++) zbee_parse_uint(field_tree, hf_zbee_zdp_in_cluster, tvb, &offset, sizeof_cluster, NULL); /* Add the output cluster list. */ out_count = zbee_parse_uint(tree, hf_zbee_zdp_out_count, tvb, &offset, (int)sizeof(guint8), NULL); if (tree && out_count) { - ti = proto_tree_add_text(tree, tvb, offset, out_count*sizeof_cluster, "Output Cluster List"); - field_tree = proto_item_add_subtree(ti, ett_zbee_zdp_match_out); + field_tree = proto_tree_add_subtree(tree, tvb, offset, out_count*sizeof_cluster, ett_zbee_zdp_match_out, NULL, "Output Cluster List"); } for (i=0; i<out_count; i++) zbee_parse_uint(field_tree, hf_zbee_zdp_out_cluster, tvb, &offset, sizeof_cluster, NULL); @@ -474,8 +472,7 @@ dissect_zbee_zdp_req_system_server_disc(tvbuff_t *tvb, packet_info *pinfo, proto void dissect_zbee_zdp_req_store_discovery(tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree) { - proto_item *ti; - proto_tree *field_tree = NULL; + proto_tree *field_tree; guint offset = 0; guint i; @@ -493,10 +490,8 @@ dissect_zbee_zdp_req_store_discovery(tvbuff_t *tvb, packet_info *pinfo, proto_tr /*ep_count =*/ zbee_parse_uint(tree, hf_zbee_zdp_disc_ep_count, tvb, &offset, (int)sizeof(guint8), NULL); simple_count= zbee_parse_uint(tree, hf_zbee_zdp_disc_simple_count, tvb, &offset, (int)sizeof(guint8), NULL); - if (tree) { - ti = proto_tree_add_text(tree, tvb, offset, simple_count, "Simple Descriptor Sizes"); - field_tree = proto_item_add_subtree(ti, ett_zbee_zdp_simple_sizes); - } + field_tree = proto_tree_add_subtree(tree, tvb, offset, simple_count, ett_zbee_zdp_simple_sizes, NULL, "Simple Descriptor Sizes"); + for (i=0; i<simple_count; i++) { zbee_parse_uint(field_tree, hf_zbee_zdp_disc_simple_size, tvb, &offset, (int)sizeof(guint8), NULL); } @@ -586,8 +581,7 @@ dissect_zbee_zdp_req_store_power_desc(tvbuff_t *tvb, packet_info *pinfo, proto_t void dissect_zbee_zdp_req_store_active_ep(tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree) { - proto_item *ti; - proto_tree *field_tree = NULL; + proto_tree *field_tree; guint offset = 0; guint i; @@ -599,10 +593,8 @@ dissect_zbee_zdp_req_store_active_ep(tvbuff_t *tvb, packet_info *pinfo, proto_tr ext_addr = zbee_parse_eui64(tree, hf_zbee_zdp_ext_addr, tvb, &offset, (int)sizeof(guint64), NULL); ep_count = zbee_parse_uint(tree, hf_zbee_zdp_ep_count, tvb, &offset, (int)sizeof(guint8), NULL); - if (tree) { - ti = proto_tree_add_text(tree, tvb, offset, ep_count, "Active Endpoints"); - field_tree = proto_item_add_subtree(ti, ett_zbee_zdp_endpoint); - } + field_tree = proto_tree_add_subtree(tree, tvb, offset, ep_count, ett_zbee_zdp_endpoint, NULL, "Active Endpoints"); + for (i=0; i<ep_count; i++) { (void)zbee_parse_uint(field_tree, hf_zbee_zdp_endpoint, tvb, &offset, (int)sizeof(guint8), NULL); } @@ -789,7 +781,6 @@ dissect_zbee_zdp_req_ext_active_ep(tvbuff_t *tvb, packet_info *pinfo, proto_tree void dissect_zbee_zdp_rsp_nwk_addr(tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree) { - proto_item *ti; proto_tree *field_tree = NULL; guint offset = 0; guint i; @@ -810,8 +801,8 @@ dissect_zbee_zdp_rsp_nwk_addr(tvbuff_t *tvb, packet_info *pinfo, proto_tree *tre /*idx =*/ zbee_parse_uint(tree, hf_zbee_zdp_index, tvb, &offset, (int)sizeof(guint8), NULL); if ((tree) && (assoc)) { - ti = proto_tree_add_text(tree, tvb, offset, assoc*(int)sizeof(guint16), "Associated Device List"); - field_tree = proto_item_add_subtree(ti, ett_zbee_zdp_assoc_device); + field_tree = proto_tree_add_subtree(tree, tvb, offset, assoc*(int)sizeof(guint16), + ett_zbee_zdp_assoc_device, NULL, "Associated Device List"); } for (i=0; i<assoc; i++) { (void)zbee_parse_uint(field_tree, hf_zbee_zdp_assoc_device, tvb, &offset, (int)sizeof(guint16), NULL); @@ -844,7 +835,6 @@ dissect_zbee_zdp_rsp_nwk_addr(tvbuff_t *tvb, packet_info *pinfo, proto_tree *tre void dissect_zbee_zdp_rsp_ext_addr(tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree) { - proto_item *ti; proto_tree *field_tree = NULL; guint offset = 0; guint i; @@ -865,8 +855,8 @@ dissect_zbee_zdp_rsp_ext_addr(tvbuff_t *tvb, packet_info *pinfo, proto_tree *tre /*idx =*/ zbee_parse_uint(tree, hf_zbee_zdp_index, tvb, &offset, (int)sizeof(guint8), NULL); if ((tree) && (assoc)) { - ti = proto_tree_add_text(tree, tvb, offset, assoc*(int)sizeof(guint16), "Associated Device List"); - field_tree = proto_item_add_subtree(ti, ett_zbee_zdp_assoc_device); + field_tree = proto_tree_add_subtree(tree, tvb, offset, assoc*(int)sizeof(guint16), + ett_zbee_zdp_assoc_device, NULL, "Associated Device List"); } for (i=0; i<assoc; i++) { (void)zbee_parse_uint(field_tree, hf_zbee_zdp_assoc_device, tvb, &offset, (int)sizeof(guint16), NULL); @@ -1006,7 +996,6 @@ dissect_zbee_zdp_rsp_simple_desc(tvbuff_t *tvb, packet_info *pinfo, proto_tree * void dissect_zbee_zdp_rsp_active_ep(tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree) { - proto_item *ti; proto_tree *field_tree = NULL; guint offset = 0; guint i; @@ -1020,8 +1009,8 @@ dissect_zbee_zdp_rsp_active_ep(tvbuff_t *tvb, packet_info *pinfo, proto_tree *tr ep_count = zbee_parse_uint(tree, hf_zbee_zdp_ep_count, tvb, &offset, (int)sizeof(guint8), NULL); if (tree && ep_count) { - ti = proto_tree_add_text(tree, tvb, offset, ep_count*(int)sizeof(guint8), "Active Endpoint List"); - field_tree = proto_item_add_subtree(ti, ett_zbee_zdp_endpoint); + field_tree = proto_tree_add_subtree(tree, tvb, offset, ep_count*(int)sizeof(guint8), + ett_zbee_zdp_endpoint, NULL, "Active Endpoint List"); } for (i=0; i<ep_count; i++) { (void)zbee_parse_uint(field_tree, hf_zbee_zdp_endpoint, tvb, &offset, (int)sizeof(guint8), NULL); @@ -1051,7 +1040,6 @@ dissect_zbee_zdp_rsp_active_ep(tvbuff_t *tvb, packet_info *pinfo, proto_tree *tr void dissect_zbee_zdp_rsp_match_desc(tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree) { - proto_item *ti; proto_tree *field_tree = NULL; guint offset = 0; guint i; @@ -1065,8 +1053,8 @@ dissect_zbee_zdp_rsp_match_desc(tvbuff_t *tvb, packet_info *pinfo, proto_tree *t ep_count = zbee_parse_uint(tree, hf_zbee_zdp_ep_count, tvb, &offset, (int)sizeof(guint8), NULL); if (tree && ep_count) { - ti = proto_tree_add_text(tree, tvb, offset, ep_count*(int)sizeof(guint8), "Matching Endpoint List"); - field_tree = proto_item_add_subtree(ti, ett_zbee_zdp_endpoint); + field_tree = proto_tree_add_subtree(tree, tvb, offset, ep_count*(int)sizeof(guint8), + ett_zbee_zdp_endpoint, NULL, "Matching Endpoint List"); } for (i=0; i<ep_count; i++) { (void)zbee_parse_uint(field_tree, hf_zbee_zdp_endpoint, tvb, &offset, (int)sizeof(guint8), NULL); @@ -1532,7 +1520,6 @@ dissect_zbee_zdp_rsp_ext_simple_desc(tvbuff_t *tvb, packet_info *pinfo, proto_tr void dissect_zbee_zdp_rsp_ext_active_ep(tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree) { - proto_item *ti; proto_tree *field_tree = NULL; guint offset = 0; guint i; @@ -1548,8 +1535,8 @@ dissect_zbee_zdp_rsp_ext_active_ep(tvbuff_t *tvb, packet_info *pinfo, proto_tree idx = zbee_parse_uint(tree, hf_zbee_zdp_index, tvb, &offset, (int)sizeof(guint8), NULL); if (tree && ep_count) { - ti = proto_tree_add_text(tree, tvb, offset, ep_count*(int)sizeof(guint8), "Active Endpoint List"); - field_tree = proto_item_add_subtree(ti, ett_zbee_zdp_endpoint); + field_tree = proto_tree_add_subtree(tree, tvb, offset, ep_count*(int)sizeof(guint8), + ett_zbee_zdp_endpoint, NULL, "Active Endpoint List"); for (i=idx; (i<ep_count) && tvb_bytes_exist(tvb, offset, (int)sizeof(guint8)); i++) { (void)zbee_parse_uint(field_tree, hf_zbee_zdp_endpoint, tvb, &offset, (int)sizeof(guint8), NULL); } diff --git a/epan/dissectors/packet-zbee-zdp-management.c b/epan/dissectors/packet-zbee-zdp-management.c index 3e11b80c83..d80449a380 100644 --- a/epan/dissectors/packet-zbee-zdp-management.c +++ b/epan/dissectors/packet-zbee-zdp-management.c @@ -577,7 +577,6 @@ dissect_zbee_zdp_req_mgmt_nwkupdate(tvbuff_t *tvb, packet_info *pinfo, proto_tre void dissect_zbee_zdp_rsp_mgmt_nwk_disc(tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree, guint8 version) { - proto_item *ti; proto_tree *field_tree = NULL; guint offset = 0; guint i; @@ -593,8 +592,7 @@ dissect_zbee_zdp_rsp_mgmt_nwk_disc(tvbuff_t *tvb, packet_info *pinfo, proto_tree table_count = zbee_parse_uint(tree, hf_zbee_zdp_table_count, tvb, &offset, 1, NULL); if (tree && table_count) { - ti = proto_tree_add_text(tree, tvb, offset, tvb_length_remaining(tvb, offset), "Network List"); - field_tree = proto_item_add_subtree(ti, ett_zbee_zdp_nwk); + field_tree = proto_tree_add_subtree(tree, tvb, offset, -1, ett_zbee_zdp_nwk, NULL, "Network List"); } for (i=0; i<table_count; i++) { zdp_parse_nwk_desc(field_tree, tvb, &offset, version); @@ -623,7 +621,6 @@ dissect_zbee_zdp_rsp_mgmt_nwk_disc(tvbuff_t *tvb, packet_info *pinfo, proto_tree void dissect_zbee_zdp_rsp_mgmt_lqi(tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree, guint8 version) { - proto_item *ti; proto_tree *field_tree = NULL; guint offset = 0; guint i; @@ -639,8 +636,7 @@ dissect_zbee_zdp_rsp_mgmt_lqi(tvbuff_t *tvb, packet_info *pinfo, proto_tree *tre table_count = zbee_parse_uint(tree, hf_zbee_zdp_table_count, tvb, &offset, 1, NULL); if (tree && table_count) { - ti = proto_tree_add_text(tree, tvb, offset, tvb_length_remaining(tvb, offset), "Neighbor Table"); - field_tree = proto_item_add_subtree(ti, ett_zbee_zdp_lqi); + field_tree = proto_tree_add_subtree(tree, tvb, offset, -1, ett_zbee_zdp_lqi, NULL, "Neighbor Table"); } for (i=0; i<table_count; i++) { zdp_parse_neighbor_table_entry(field_tree, tvb, &offset, version); @@ -715,7 +711,6 @@ dissect_zbee_zdp_rsp_mgmt_rtg(tvbuff_t *tvb, packet_info *pinfo, proto_tree *tre void dissect_zbee_zdp_rsp_mgmt_bind(tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree, guint8 version) { - proto_item *ti; proto_tree *field_tree = NULL; guint offset = 0; guint i; @@ -731,8 +726,7 @@ dissect_zbee_zdp_rsp_mgmt_bind(tvbuff_t *tvb, packet_info *pinfo, proto_tree *tr table_count = zbee_parse_uint(tree, hf_zbee_zdp_table_count, tvb, &offset, 1, NULL); if (tree && table_count) { - ti = proto_tree_add_text(tree, tvb, offset, tvb_length_remaining(tvb, offset), "Binding Table"); - field_tree = proto_item_add_subtree(ti, ett_zbee_zdp_bind); + field_tree = proto_tree_add_subtree(tree, tvb, offset, -1, ett_zbee_zdp_bind, NULL, "Binding Table"); } for (i=0; i<table_count; i++) { zdp_parse_bind_table_entry(field_tree, tvb, &offset, version); @@ -845,8 +839,7 @@ dissect_zbee_zdp_rsp_mgmt_permit_join(tvbuff_t *tvb, packet_info *pinfo, proto_t void dissect_zbee_zdp_rsp_mgmt_cache(tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree) { - proto_item *ti; - proto_tree *field_tree; + proto_tree *field_tree = NULL; guint offset = 0; guint i; @@ -861,11 +854,10 @@ dissect_zbee_zdp_rsp_mgmt_cache(tvbuff_t *tvb, packet_info *pinfo, proto_tree *t table_count = zbee_parse_uint(tree, hf_zbee_zdp_table_count, tvb, &offset, 1, NULL); if (tree && table_count) { - ti = proto_tree_add_text(tree, tvb, offset, table_count*(2+8), "Discovery Cache"); - field_tree = proto_item_add_subtree(ti, ett_zbee_zdp_cache); - } else { - field_tree = NULL; + field_tree = proto_tree_add_subtree(tree, tvb, offset, table_count*(2+8), + ett_zbee_zdp_cache, NULL, "Discovery Cache"); } + for (i=0; i<table_count; i++) { guint64 addr64 = tvb_get_letoh64(tvb, offset); guint16 addr16 = tvb_get_letohs(tvb, offset+8); diff --git a/epan/dissectors/packet-zbee-zdp.c b/epan/dissectors/packet-zbee-zdp.c index 2dab6aa99f..405ca6d188 100644 --- a/epan/dissectors/packet-zbee-zdp.c +++ b/epan/dissectors/packet-zbee-zdp.c @@ -627,7 +627,6 @@ zdp_parse_chanmask(proto_tree *tree, tvbuff_t *tvb, guint *offset) guint8 zdp_parse_cinfo(proto_tree *tree, gint ettindex, tvbuff_t *tvb, guint *offset) { - proto_item *ti; proto_tree *field_tree; guint8 flags; @@ -635,10 +634,11 @@ zdp_parse_cinfo(proto_tree *tree, gint ettindex, tvbuff_t *tvb, guint *offset) flags = tvb_get_guint8(tvb, *offset); if (tree) { if (ettindex != -1) { - ti = proto_tree_add_text(tree, tvb, *offset, (int)sizeof(guint8), "Capability Information"); - field_tree = proto_item_add_subtree(ti, ettindex); + field_tree = proto_tree_add_subtree(tree, tvb, *offset, (int)sizeof(guint8), + ettindex, NULL, "Capability Information"); } - else field_tree = tree; + else + field_tree = tree; proto_tree_add_boolean(field_tree, hf_zbee_zdp_cinfo_alt_coord, tvb, *offset, (int)sizeof(guint8), flags & ZBEE_CINFO_ALT_COORD); proto_tree_add_boolean(field_tree, hf_zbee_zdp_cinfo_ffd, tvb, *offset, (int)sizeof(guint8), flags & ZBEE_CINFO_FFD); @@ -670,7 +670,6 @@ zdp_parse_cinfo(proto_tree *tree, gint ettindex, tvbuff_t *tvb, guint *offset) guint16 zdp_parse_server_flags(proto_tree *tree, gint ettindex, tvbuff_t *tvb, guint *offset) { - proto_item *ti; proto_tree *field_tree; guint16 flags; @@ -678,10 +677,10 @@ zdp_parse_server_flags(proto_tree *tree, gint ettindex, tvbuff_t *tvb, guint *of flags = tvb_get_letohs(tvb, *offset); if (tree) { if (ettindex != -1) { - ti = proto_tree_add_text(tree, tvb, *offset, 2, "Server Flags"); - field_tree = proto_item_add_subtree(ti, ettindex); + field_tree = proto_tree_add_subtree(tree, tvb, *offset, 2, ettindex, NULL, "Server Flags"); } - else field_tree = tree; + else + field_tree = tree; proto_tree_add_boolean(field_tree, hf_zbee_zdp_server_pri_trust, tvb, *offset, (int)sizeof(guint16), flags & ZBEE_ZDP_NODE_SERVER_PRIMARY_TRUST); proto_tree_add_boolean(field_tree, hf_zbee_zdp_server_bak_trust, tvb, *offset, (int)sizeof(guint16), flags & ZBEE_ZDP_NODE_SERVER_BACKUP_TRUST); @@ -727,10 +726,10 @@ zdp_parse_node_desc(proto_tree *tree, gint ettindex, tvbuff_t *tvb, guint *offse /*guint16 max_transfer;*/ if ((tree) && (ettindex != -1)) { - field_root = proto_tree_add_text(tree, tvb, *offset, tvb_length_remaining(tvb, *offset), "Node Descriptor"); - field_tree = proto_item_add_subtree(field_root, ettindex); + field_tree = proto_tree_add_subtree(tree, tvb, *offset, -1, ettindex, &field_root, "Node Descriptor"); } - else field_tree = tree; + else + field_tree = tree; /* Get and display the flags. */ flags = tvb_get_letohs(tvb, *offset); @@ -762,10 +761,10 @@ zdp_parse_node_desc(proto_tree *tree, gint ettindex, tvbuff_t *tvb, guint *offse zdp_parse_server_flags(field_tree, ett_zbee_zdp_server, tvb, offset); zbee_parse_uint(field_tree, hf_zbee_zdp_node_max_outgoing_transfer, tvb, offset, 2, NULL); d_c_field = tvb_get_guint8(tvb, *offset); - if (tree) { - ti = proto_tree_add_text(field_tree, tvb, *offset, 1, "Descriptor Capability Field"); - field_tree = proto_item_add_subtree(ti, ett_zbee_zdp_descriptor_capability_field); - } + + field_tree = proto_tree_add_subtree(field_tree, tvb, *offset, 1, + ett_zbee_zdp_descriptor_capability_field, NULL, "Descriptor Capability Field"); + proto_tree_add_boolean(field_tree, hf_zbee_zdp_dcf_eaela, tvb, *offset, 1, d_c_field & ZBEE_ZDP_DCF_EAELA); proto_tree_add_boolean(field_tree, hf_zbee_zdp_dcf_esdla, tvb, *offset, 1, d_c_field & ZBEE_ZDP_DCF_ESDLA); *offset += 1; @@ -806,8 +805,7 @@ zdp_parse_power_desc(proto_tree *tree, gint ettindex, tvbuff_t *tvb, guint *offs guint16 level; if ((tree) && (ettindex != -1)) { - ti = proto_tree_add_text(tree, tvb, *offset, (int)sizeof(guint16), "Power Descriptor"); - field_tree = proto_item_add_subtree(ti, ettindex); + field_tree = proto_tree_add_subtree(tree, tvb, *offset, (int)sizeof(guint16), ettindex, NULL, "Power Descriptor"); } else field_tree = tree; @@ -862,7 +860,6 @@ zdp_parse_power_desc(proto_tree *tree, gint ettindex, tvbuff_t *tvb, guint *offs void zdp_parse_simple_desc(proto_tree *tree, gint ettindex, tvbuff_t *tvb, guint *offset, guint8 version) { - proto_item *ti; proto_item *field_root = NULL; proto_tree *field_tree = NULL, *cluster_tree = NULL; guint i, sizeof_cluster; @@ -875,8 +872,7 @@ zdp_parse_simple_desc(proto_tree *tree, gint ettindex, tvbuff_t *tvb, guint *off guint8 out_count; if ((tree) && (ettindex != -1)) { - field_root = proto_tree_add_text(tree, tvb, *offset, tvb_length_remaining(tvb, *offset), "Simple Descriptor"); - field_tree = proto_item_add_subtree(field_root, ettindex); + field_tree = proto_tree_add_subtree(tree, tvb, *offset, -1, ettindex, &field_root, "Simple Descriptor"); } else field_tree = tree; @@ -889,8 +885,8 @@ zdp_parse_simple_desc(proto_tree *tree, gint ettindex, tvbuff_t *tvb, guint *off in_count = zbee_parse_uint(field_tree, hf_zbee_zdp_in_count, tvb, offset, (int)sizeof(guint8), NULL); if ((tree) && (in_count)) { - ti = proto_tree_add_text(field_tree, tvb, *offset, in_count*sizeof_cluster, "Input Cluster List"); - cluster_tree = proto_item_add_subtree(ti, ett_zbee_zdp_node_in); + cluster_tree = proto_tree_add_subtree(field_tree, tvb, *offset, in_count*sizeof_cluster, + ett_zbee_zdp_node_in, NULL, "Input Cluster List"); } for (i=0; i<in_count && tvb_bytes_exist(tvb, *offset, sizeof_cluster); i++) { zbee_parse_uint(cluster_tree, hf_zbee_zdp_in_cluster, tvb, offset, sizeof_cluster, NULL); @@ -898,8 +894,8 @@ zdp_parse_simple_desc(proto_tree *tree, gint ettindex, tvbuff_t *tvb, guint *off out_count = zbee_parse_uint(field_tree, hf_zbee_zdp_out_count, tvb, offset, (int)sizeof(guint8), NULL); if ((tree) && (out_count)) { - ti = proto_tree_add_text(field_tree, tvb, *offset, in_count*sizeof_cluster, "Output Cluster List"); - cluster_tree = proto_item_add_subtree(ti, ett_zbee_zdp_node_out); + cluster_tree = proto_tree_add_subtree(field_tree, tvb, *offset, in_count*sizeof_cluster, + ett_zbee_zdp_node_out, NULL, "Output Cluster List"); } for (i=0; (i<out_count) && tvb_bytes_exist(tvb, *offset, sizeof_cluster); i++) { zbee_parse_uint(cluster_tree, hf_zbee_zdp_out_cluster, tvb, offset, sizeof_cluster, NULL); @@ -954,7 +950,6 @@ zdp_parse_complex_desc(proto_tree *tree, gint ettindex, tvbuff_t *tvb, guint *of const gint max_len = 128; - proto_item *field_root; proto_tree *field_tree; gchar *str = (gchar *)wmem_alloc(wmem_packet_scope(), length); @@ -962,10 +957,10 @@ zdp_parse_complex_desc(proto_tree *tree, gint ettindex, tvbuff_t *tvb, guint *of guint8 tag; if ((tree) && (ettindex != -1)) { - field_root = proto_tree_add_text(tree, tvb, *offset, length, "Complex Descriptor"); - field_tree = proto_item_add_subtree(field_root, ettindex); + field_tree = proto_tree_add_subtree(tree, tvb, *offset, length, ettindex, NULL, "Complex Descriptor"); } - else field_tree = tree; + else + field_tree = tree; tag = tvb_get_guint8(tvb, *offset); if (tag == tag_charset) { |