aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorMichael Mann <mmann78@netscape.net>2014-06-26 22:51:11 -0400
committerMichael Mann <mmann78@netscape.net>2014-06-28 12:05:43 +0000
commit7bf6862ecf0d0a508bf097f3b52d07bd19128272 (patch)
tree08dfcfd08ae0ba90383451f2a2f1d321aba7cb23
parent929afd23a77b27b28fe3ca17cb063725467d387a (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>
-rw-r--r--epan/dissectors/packet-h263.c6
-rw-r--r--epan/dissectors/packet-h264.c13
-rw-r--r--epan/dissectors/packet-hartip.c10
-rw-r--r--epan/dissectors/packet-hazelcast.c2
-rw-r--r--epan/dissectors/packet-hclnfsd.c48
-rw-r--r--epan/dissectors/packet-hdfs.c4
-rw-r--r--epan/dissectors/packet-hdmi.c7
-rw-r--r--epan/dissectors/packet-hip.c33
-rw-r--r--epan/dissectors/packet-homeplug-av.c10
-rw-r--r--epan/dissectors/packet-homeplug.c10
-rw-r--r--epan/dissectors/packet-hp-erm.c8
-rw-r--r--epan/dissectors/packet-hpsw.c4
-rw-r--r--epan/dissectors/packet-http.c66
-rw-r--r--epan/dissectors/packet-hyperscsi.c14
-rw-r--r--epan/dissectors/packet-zbee-aps.c8
-rw-r--r--epan/dissectors/packet-zbee-nwk-gp.c21
-rw-r--r--epan/dissectors/packet-zbee-nwk.c22
-rw-r--r--epan/dissectors/packet-zbee-security.c8
-rw-r--r--epan/dissectors/packet-zbee-zcl-general.c51
-rw-r--r--epan/dissectors/packet-zbee-zcl-ha.c18
-rw-r--r--epan/dissectors/packet-zbee-zcl-se.c7
-rw-r--r--epan/dissectors/packet-zbee-zcl.c87
-rw-r--r--epan/dissectors/packet-zbee-zdp-binding.c41
-rw-r--r--epan/dissectors/packet-zbee-zdp-discovery.c51
-rw-r--r--epan/dissectors/packet-zbee-zdp-management.c22
-rw-r--r--epan/dissectors/packet-zbee-zdp.c51
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) {