summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorMichael Mann <mmann78@netscape.net>2014-07-04 11:51:09 -0400
committerMichael Mann <mmann78@netscape.net>2014-07-04 16:46:14 +0000
commit93517043e96c26a1d3dad49c2f57b345e3bbbba0 (patch)
tree6cde4e700e2ceffdc055051d6b97bb5df7644c70
parentdd424c622581310b4d0d79bc57137f03d2573752 (diff)
downloadwireshark-93517043e96c26a1d3dad49c2f57b345e3bbbba0.tar.gz
convert to proto_tree_add_subtree[_format]
Change-Id: Idd1b20ab32c0960ea52c6f3bc5346462c37c5684 Reviewed-on: https://code.wireshark.org/review/2853 Reviewed-by: Michael Mann <mmann78@netscape.net>
-rw-r--r--epan/dissectors/packet-nat-pmp.c3
-rw-r--r--epan/dissectors/packet-nbns.c34
-rw-r--r--epan/dissectors/packet-ncp-sss.c2
-rw-r--r--epan/dissectors/packet-ncs.c9
-rw-r--r--epan/dissectors/packet-ndmp.c90
-rw-r--r--epan/dissectors/packet-negoex.c41
-rw-r--r--epan/dissectors/packet-netanalyzer.c4
-rw-r--r--epan/dissectors/packet-netbios.c6
-rw-r--r--epan/dissectors/packet-netflow.c21
-rw-r--r--epan/dissectors/packet-netlink.c9
-rw-r--r--epan/dissectors/packet-nfs.c599
-rw-r--r--epan/dissectors/packet-nfsacl.c56
-rw-r--r--epan/dissectors/packet-nhrp.c42
-rw-r--r--epan/dissectors/packet-nlsp.c43
-rw-r--r--epan/dissectors/packet-noe.c16
-rw-r--r--epan/dissectors/packet-nsip.c32
-rw-r--r--epan/dissectors/packet-nstrace.c7
-rw-r--r--epan/dissectors/packet-ntlmssp.c10
18 files changed, 348 insertions, 676 deletions
diff --git a/epan/dissectors/packet-nat-pmp.c b/epan/dissectors/packet-nat-pmp.c
index 9428499116..2ccbaefcc0 100644
--- a/epan/dissectors/packet-nat-pmp.c
+++ b/epan/dissectors/packet-nat-pmp.c
@@ -367,8 +367,7 @@ dissect_portcontrol_pdu(tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree, gui
start_opcode_offset = offset;
if(try_val_to_str(ropcode, pcp_ropcode_vals) != NULL)
{
- opcode_ti = proto_tree_add_text(pcp_tree, tvb, offset, 0, "%s", op_str);
- opcode_tree = proto_item_add_subtree(opcode_ti, ett_opcode);
+ opcode_tree = proto_tree_add_subtree(pcp_tree, tvb, offset, 0, ett_opcode, &opcode_ti, op_str);
}
switch(ropcode) {
diff --git a/epan/dissectors/packet-nbns.c b/epan/dissectors/packet-nbns.c
index 0e7f1ae5fe..45db5bbff5 100644
--- a/epan/dissectors/packet-nbns.c
+++ b/epan/dissectors/packet-nbns.c
@@ -460,7 +460,6 @@ dissect_nbns_query(tvbuff_t *tvb, int offset, int nbns_data_offset,
int data_offset;
int data_start;
proto_tree *q_tree;
- proto_item *tq;
name = (char *)wmem_alloc(wmem_packet_scope(), MAX_NAME_LEN);
data_start = data_offset = offset;
@@ -476,10 +475,9 @@ dissect_nbns_query(tvbuff_t *tvb, int offset, int nbns_data_offset,
col_append_fstr(cinfo, COL_INFO, " %s %s", type_name, name);
if (nbns_tree != NULL) {
- tq = proto_tree_add_text(nbns_tree, tvb, offset, len,
- "%s: type %s, class %s", name, type_name,
+ q_tree = proto_tree_add_subtree_format(nbns_tree, tvb, offset, len,
+ ett_nbns_qd, NULL, "%s: type %s, class %s", name, type_name,
dns_class_name(dns_class));
- q_tree = proto_item_add_subtree(tq, ett_nbns_qd);
add_name_and_type(q_tree, tvb, offset, name_len, "Name", name,
name_type);
@@ -1025,21 +1023,19 @@ dissect_query_records(tvbuff_t *tvb, int cur_off, int nbns_data_offset,
int count, column_info *cinfo, proto_tree *nbns_tree)
{
int start_off, add_off;
- proto_tree *qatree = NULL;
- proto_item *ti = NULL;
+ proto_tree *qatree;
+ proto_item *ti;
start_off = cur_off;
- if (nbns_tree != NULL) {
- ti = proto_tree_add_text(nbns_tree, tvb, start_off, -1, "Queries");
- qatree = proto_item_add_subtree(ti, ett_nbns_qry);
- }
+ qatree = proto_tree_add_subtree(nbns_tree, tvb, start_off, -1, ett_nbns_qry, &ti, "Queries");
+
while (count-- > 0) {
add_off = dissect_nbns_query(tvb, cur_off, nbns_data_offset,
cinfo, qatree);
cur_off += add_off;
}
- if (ti != NULL)
- proto_item_set_len(ti, cur_off - start_off);
+
+ proto_item_set_len(ti, cur_off - start_off);
return cur_off - start_off;
}
@@ -1050,21 +1046,19 @@ dissect_answer_records(tvbuff_t *tvb, int cur_off, int nbns_data_offset,
int opcode, const char *name)
{
int start_off, add_off;
- proto_tree *qatree = NULL;
- proto_item *ti = NULL;
+ proto_tree *qatree;
+ proto_item *ti;
start_off = cur_off;
- if (nbns_tree != NULL) {
- ti = proto_tree_add_text(nbns_tree, tvb, start_off, -1, "%s", name);
- qatree = proto_item_add_subtree(ti, ett_nbns_ans);
- }
+ qatree = proto_tree_add_subtree(nbns_tree, tvb, start_off, -1, ett_nbns_ans, &ti, name);
+
while (count-- > 0) {
add_off = dissect_nbns_answer(tvb, cur_off, nbns_data_offset,
cinfo, qatree, opcode);
cur_off += add_off;
}
- if (ti != NULL)
- proto_item_set_len(ti, cur_off - start_off);
+
+ proto_item_set_len(ti, cur_off - start_off);
return cur_off - start_off;
}
diff --git a/epan/dissectors/packet-ncp-sss.c b/epan/dissectors/packet-ncp-sss.c
index 5a4148b9e0..cfee0d9ac6 100644
--- a/epan/dissectors/packet-ncp-sss.c
+++ b/epan/dissectors/packet-ncp-sss.c
@@ -508,7 +508,7 @@ dissect_sss_request(tvbuff_t *tvb, packet_info *pinfo, proto_tree *ncp_tree, ncp
switch (subfunc) {
case 1:
- aitem = proto_tree_add_text(ncp_tree, tvb, foffset, tvb_length_remaining(tvb, foffset), "Packet Type: %s", val_to_str(subfunc, sss_func_enum, "Unknown (%d)"));
+ aitem = proto_tree_add_text(ncp_tree, tvb, foffset, -1, "Packet Type: %s", val_to_str(subfunc, sss_func_enum, "Unknown (%d)"));
atree = proto_item_add_subtree(aitem, ett_sss);
proto_tree_add_item(atree, hf_ping_version, tvb, foffset, 4, ENC_LITTLE_ENDIAN);
foffset += 4;
diff --git a/epan/dissectors/packet-ncs.c b/epan/dissectors/packet-ncs.c
index 94ffb77f89..208935255e 100644
--- a/epan/dissectors/packet-ncs.c
+++ b/epan/dissectors/packet-ncs.c
@@ -41,14 +41,11 @@ static int hf_incarnation = -1;
static void
dissect_ncs(tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree)
{
- proto_tree *ncs_tree = NULL;
+ proto_tree *ncs_tree;
proto_item *ti;
- if (tree) {
- ti = proto_tree_add_item(tree, proto_ncs, tvb, 0, -1, ENC_NA);
- ncs_tree = proto_item_add_subtree(ti, ett_ncs);
- }
-
+ ti = proto_tree_add_item(tree, proto_ncs, tvb, 0, -1, ENC_NA);
+ ncs_tree = proto_item_add_subtree(ti, ett_ncs);
col_set_str(pinfo->cinfo, COL_PROTOCOL, "NCS");
col_set_str(pinfo->cinfo, COL_INFO, "Novell Cluster Services Heartbeat");
diff --git a/epan/dissectors/packet-ndmp.c b/epan/dissectors/packet-ndmp.c
index dd20555d79..370748b529 100644
--- a/epan/dissectors/packet-ndmp.c
+++ b/epan/dissectors/packet-ndmp.c
@@ -1373,19 +1373,15 @@ static int
dissect_execute_cdb_cdb(tvbuff_t *tvb, int offset, packet_info *pinfo,
proto_tree *parent_tree, gint devtype)
{
- proto_item* item = NULL;
- proto_tree* tree = NULL;
+ proto_tree* tree;
guint32 cdb_len;
guint32 cdb_len_full;
cdb_len = tvb_get_ntohl(tvb, offset);
cdb_len_full = rpc_roundup(cdb_len);
- if (parent_tree) {
- item = proto_tree_add_text(parent_tree, tvb, offset,
- 4+cdb_len_full, "CDB");
- tree = proto_item_add_subtree(item, ett_ndmp_execute_cdb_cdb);
- }
+ tree = proto_tree_add_subtree(parent_tree, tvb, offset,
+ 4+cdb_len_full, ett_ndmp_execute_cdb_cdb, NULL, "CDB");
proto_tree_add_uint(tree, hf_ndmp_execute_cdb_cdb_len, tvb, offset, 4,
cdb_len);
@@ -1431,20 +1427,15 @@ static int
dissect_execute_cdb_payload(tvbuff_t *tvb, int offset, packet_info *pinfo, proto_tree *parent_tree,
const char *name, int hf_len, gboolean isreq)
{
- proto_item* item = NULL;
- proto_tree* tree = NULL;
+ proto_tree* tree;
guint32 payload_len;
guint32 payload_len_full;
payload_len = tvb_get_ntohl(tvb, offset);
payload_len_full = rpc_roundup(payload_len);
- if (parent_tree) {
- item = proto_tree_add_text(parent_tree, tvb, offset,
- 4+payload_len_full, "%s", name);
- tree = proto_item_add_subtree(item,
- ett_ndmp_execute_cdb_payload);
- }
+ tree = proto_tree_add_subtree(parent_tree, tvb, offset,
+ 4+payload_len_full, ett_ndmp_execute_cdb_payload, NULL, name);
proto_tree_add_uint(tree, hf_len, tvb, offset, 4, payload_len);
offset += 4;
@@ -1538,19 +1529,15 @@ dissect_execute_cdb_request_tape(tvbuff_t *tvb, int offset, packet_info *pinfo,
static int
dissect_execute_cdb_sns(tvbuff_t *tvb, int offset, packet_info *pinfo, proto_tree *parent_tree)
{
- proto_item* item = NULL;
- proto_tree* tree = NULL;
+ proto_tree* tree;
guint32 sns_len;
guint32 sns_len_full;
sns_len = tvb_get_ntohl(tvb, offset);
sns_len_full = rpc_roundup(sns_len);
- if (parent_tree) {
- item = proto_tree_add_text(parent_tree, tvb, offset,
- 4+sns_len_full, "Sense data");
- tree = proto_item_add_subtree(item, ett_ndmp_execute_cdb_sns);
- }
+ tree = proto_tree_add_subtree(parent_tree, tvb, offset,
+ 4+sns_len_full, ett_ndmp_execute_cdb_sns, NULL, "Sense data");
proto_tree_add_uint(tree, hf_ndmp_execute_cdb_sns_len, tvb, offset, 4,
sns_len);
@@ -1910,16 +1897,12 @@ static int
dissect_ndmp_addr(tvbuff_t *tvb, int offset, packet_info *pinfo _U_,
proto_tree *parent_tree)
{
- proto_item* item = NULL;
- proto_tree* tree = NULL;
+ proto_tree* tree;
guint32 type;
type=tvb_get_ntohl(tvb, offset);
- if (parent_tree) {
- item = proto_tree_add_text(parent_tree, tvb, offset, 4,
+ tree = proto_tree_add_subtree_format(parent_tree, tvb, offset, 4, ett_ndmp_addr, NULL,
"Type: %s ", val_to_str(type, addr_type_vals,"Unknown addr type (0x%02x)") );
- tree = proto_item_add_subtree(item, ett_ndmp_addr);
- }
/*address type*/
proto_tree_add_item(tree, hf_ndmp_addr_type, tvb, offset, 4, ENC_BIG_ENDIAN);
@@ -2365,17 +2348,14 @@ static const value_string file_fs_type_vals[] = {
static int
dissect_file_name(tvbuff_t *tvb, int offset, packet_info *pinfo, proto_tree *parent_tree, void* data _U_)
{
- proto_item* item = NULL;
- proto_tree* tree = NULL;
+ proto_item* item;
+ proto_tree* tree;
int old_offset=offset;
guint32 type;
const char *name;
- if (parent_tree) {
- item = proto_tree_add_text(parent_tree, tvb, offset, -1,
- "File");
- tree = proto_item_add_subtree(item, ett_ndmp_file_name);
- }
+ tree = proto_tree_add_subtree(parent_tree, tvb, offset, -1,
+ ett_ndmp_file_name, &item, "File");
/* file type */
type=tvb_get_ntohl(tvb, offset);
@@ -2477,16 +2457,13 @@ static const value_string file_type_vals[] = {
static int
dissect_file_stats(tvbuff_t *tvb, int offset, packet_info *pinfo, proto_tree *parent_tree, void* data _U_)
{
- proto_item* item = NULL;
- proto_tree* tree = NULL;
+ proto_item* item;
+ proto_tree* tree;
int old_offset=offset;
nstime_t ns;
- if (parent_tree) {
- item = proto_tree_add_text(parent_tree, tvb, offset, -1,
- "Stats:");
- tree = proto_item_add_subtree(item, ett_ndmp_file_stats);
- }
+ tree = proto_tree_add_subtree(parent_tree, tvb, offset, -1,
+ ett_ndmp_file_stats, &item, "Stats:");
/* invalids */
offset = dissect_file_invalids(tvb, offset, pinfo, tree);
@@ -2547,15 +2524,12 @@ dissect_file_stats(tvbuff_t *tvb, int offset, packet_info *pinfo, proto_tree *pa
static int
dissect_ndmp_file(tvbuff_t *tvb, int offset, packet_info *pinfo, proto_tree *parent_tree, void* data _U_)
{
- proto_item* item = NULL;
- proto_tree* tree = NULL;
+ proto_item* item;
+ proto_tree* tree;
int old_offset=offset;
- if (parent_tree) {
- item = proto_tree_add_text(parent_tree, tvb, offset, -1,
- "File:");
- tree = proto_item_add_subtree(item, ett_ndmp_file);
- }
+ tree = proto_tree_add_subtree(parent_tree, tvb, offset, -1,
+ ett_ndmp_file, &item, "File:");
/* file names */
offset = dissect_rpc_array(tvb, pinfo, tree, offset,
@@ -3036,7 +3010,6 @@ static int
dissect_ndmp_cmd(tvbuff_t *tvb, int offset, packet_info *pinfo, proto_tree *tree, struct ndmp_header *nh)
{
int i;
- proto_item *cmd_item=NULL;
proto_tree *cmd_tree=NULL;
offset=dissect_ndmp_header(tvb, offset, pinfo, tree, nh);
@@ -3057,9 +3030,7 @@ dissect_ndmp_cmd(tvbuff_t *tvb, int offset, packet_info *pinfo, proto_tree *tree
if (tvb_reported_length_remaining(tvb, offset) > 0) {
if(tree){
- cmd_item = proto_tree_add_text(tree, tvb, offset, -1, "%s",
- msg_vals[i].strptr);
- cmd_tree = proto_item_add_subtree(cmd_item, ett_ndmp);
+ cmd_tree = proto_tree_add_subtree(tree, tvb, offset, -1, ett_ndmp, NULL, msg_vals[i].strptr);
}
}
@@ -3092,8 +3063,7 @@ dissect_ndmp_message(tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree, void*
ndmp_frag_info* nfi;
proto_item *ndmp_item = NULL;
proto_tree *ndmp_tree = NULL;
- proto_item *hdr_item = NULL;
- proto_tree *hdr_tree = NULL;
+ proto_tree *hdr_tree;
wmem_map_t *frags;
conversation_t *conversation;
proto_item *vers_item;
@@ -3267,11 +3237,10 @@ dissect_ndmp_message(tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree, void*
ndmp_item = proto_tree_add_item(tree, proto_ndmp, tvb, 0, -1, ENC_NA);
ndmp_tree = proto_item_add_subtree(ndmp_item, ett_ndmp);
}
- hdr_item = proto_tree_add_text(ndmp_tree, tvb, 0, 4,
- "Fragment header: %s%u %s",
+ hdr_tree = proto_tree_add_subtree_format(ndmp_tree, tvb, 0, 4,
+ ett_ndmp_fraghdr, NULL, "Fragment header: %s%u %s",
(ndmp_rm & RPC_RM_LASTFRAG) ? "Last fragment, " : "",
ndmp_rm & RPC_RM_FRAGLEN, plurality(ndmp_rm & RPC_RM_FRAGLEN, "byte", "bytes"));
- hdr_tree = proto_item_add_subtree(hdr_item, ett_ndmp_fraghdr);
proto_tree_add_boolean(hdr_tree, hf_ndmp_lastfrag, tvb, 0, 4, ndmp_rm);
proto_tree_add_uint(hdr_tree, hf_ndmp_fraglen, tvb, 0, 4, ndmp_rm);
@@ -3384,11 +3353,10 @@ dissect_ndmp_message(tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree, void*
}
/* Add the record marker information to the tree */
- hdr_item = proto_tree_add_text(ndmp_tree, tvb, 0, 4,
- "Fragment header: %s%u %s",
+ hdr_tree = proto_tree_add_subtree_format(ndmp_tree, tvb, 0, 4,
+ ett_ndmp_fraghdr, NULL, "Fragment header: %s%u %s",
(ndmp_rm & RPC_RM_LASTFRAG) ? "Last fragment, " : "",
ndmp_rm & RPC_RM_FRAGLEN, plurality(ndmp_rm & RPC_RM_FRAGLEN, "byte", "bytes"));
- hdr_tree = proto_item_add_subtree(hdr_item, ett_ndmp_fraghdr);
proto_tree_add_boolean(hdr_tree, hf_ndmp_lastfrag, tvb, 0, 4, ndmp_rm);
proto_tree_add_uint(hdr_tree, hf_ndmp_fraglen, tvb, 0, 4, ndmp_rm);
diff --git a/epan/dissectors/packet-negoex.c b/epan/dissectors/packet-negoex.c
index 7c3f2cc76e..81e3173435 100644
--- a/epan/dissectors/packet-negoex.c
+++ b/epan/dissectors/packet-negoex.c
@@ -148,9 +148,7 @@ dissect_negoex_verify_message(tvbuff_t *tvb,
guint32 offset;
guint32 checksum_vector_offset;
guint32 checksum_vector_count;
- proto_item *pi;
proto_tree *checksum;
- proto_item *pi_chk;
proto_tree *checksum_vector;
offset = start_off;
@@ -160,8 +158,7 @@ dissect_negoex_verify_message(tvbuff_t *tvb,
offset += 16;
/* Checksum */
- pi = proto_tree_add_text(tree, tvb, offset, 20, "Checksum");
- checksum = proto_item_add_subtree(pi, ett_negoex_checksum);
+ checksum = proto_tree_add_subtree(tree, tvb, offset, 20, ett_negoex_checksum, NULL, "Checksum");
/* cbHeaderLength */
proto_tree_add_item(checksum, hf_negoex_header_len, tvb, offset, 4, ENC_LITTLE_ENDIAN);
@@ -179,11 +176,10 @@ dissect_negoex_verify_message(tvbuff_t *tvb,
checksum_vector_offset = tvb_get_letohl(tvb, offset);
checksum_vector_count = tvb_get_letohs(tvb, offset + 4);
- pi_chk = proto_tree_add_text(checksum, tvb, offset, 8,
- "Checksum Vector: %u at %u",
+ checksum_vector = proto_tree_add_subtree_format(checksum, tvb, offset, 8,
+ ett_negoex_checksum_vector, NULL, "Checksum Vector: %u at %u",
checksum_vector_count,
checksum_vector_offset);
- checksum_vector = proto_item_add_subtree(pi_chk, ett_negoex_checksum_vector);
proto_tree_add_item(checksum_vector, hf_negoex_checksum_vector_offset, tvb,
offset, 4, ENC_LITTLE_ENDIAN);
@@ -211,7 +207,6 @@ dissect_negoex_exchange_message(tvbuff_t *tvb,
guint32 offset;
guint32 exchange_vector_offset;
guint32 exchange_vector_count;
- proto_item *pi;
proto_tree *exchange_vector;
offset = start_off;
@@ -224,9 +219,9 @@ dissect_negoex_exchange_message(tvbuff_t *tvb,
exchange_vector_offset = tvb_get_letohl(tvb, offset);
exchange_vector_count = tvb_get_letohs(tvb, offset + 4);
- pi = proto_tree_add_text(tree, tvb, offset, 8, "Exchange: %u bytes at %u",
+ exchange_vector = proto_tree_add_subtree_format(tree, tvb, offset, 8,
+ ett_negoex_exchange, NULL, "Exchange: %u bytes at %u",
exchange_vector_count, exchange_vector_offset);
- exchange_vector = proto_item_add_subtree(pi, ett_negoex_exchange);
proto_tree_add_item(exchange_vector, hf_negoex_exchange_vector_offset, tvb,
offset, 4, ENC_LITTLE_ENDIAN);
@@ -263,7 +258,6 @@ dissect_negoex_nego_message(tvbuff_t *tvb,
guint16 authscheme_vector_count;
guint32 extension_vector_offset;
guint32 extension_vector_count;
- proto_item *pi, *ext_pi;
proto_tree *authscheme_vector;
proto_tree *extension_vector;
guint32 i;
@@ -283,9 +277,9 @@ dissect_negoex_nego_message(tvbuff_t *tvb,
authscheme_vector_offset = tvb_get_letohl(tvb, offset);
authscheme_vector_count = tvb_get_letohs(tvb, offset + 4);
- pi = proto_tree_add_text(tree, tvb, offset, 8, "AuthSchemes: %u at %u",
+ authscheme_vector = proto_tree_add_subtree_format(tree, tvb, offset, 8,
+ ett_negoex_authscheme_vector, NULL, "AuthSchemes: %u at %u",
authscheme_vector_count, authscheme_vector_offset);
- authscheme_vector = proto_item_add_subtree(pi, ett_negoex_authscheme_vector);
proto_tree_add_item(authscheme_vector, hf_negoex_authscheme_vector_offset,
tvb, offset, 4, ENC_LITTLE_ENDIAN);
offset += 4;
@@ -307,9 +301,9 @@ dissect_negoex_nego_message(tvbuff_t *tvb,
extension_vector_offset = tvb_get_letohl(tvb, offset);
extension_vector_count = tvb_get_letohs(tvb, offset + 4);
- ext_pi = proto_tree_add_text(tree, tvb, offset, 8, "Extensions: %u at %u",
+ extension_vector = proto_tree_add_subtree_format(tree, tvb, offset, 8,
+ ett_negoex_extension_vector, NULL, "Extensions: %u at %u",
extension_vector_count, extension_vector_count);
- extension_vector = proto_item_add_subtree(ext_pi, ett_negoex_extension_vector);
proto_tree_add_item(extension_vector, hf_negoex_extension_vector_offset,
tvb, offset, 4, ENC_LITTLE_ENDIAN);
@@ -325,7 +319,6 @@ dissect_negoex_nego_message(tvbuff_t *tvb,
for (i = 0; i < extension_vector_count; i++) {
guint32 byte_vector_offset, byte_vector_count;
- proto_item *bv_pi;
proto_tree *bv_tree;
/*
@@ -335,11 +328,10 @@ dissect_negoex_nego_message(tvbuff_t *tvb,
byte_vector_offset = tvb_get_letohl(tvb, offset);
byte_vector_count = tvb_get_letohs(tvb, offset + 4);
- bv_pi = proto_tree_add_text(extension_vector, tvb,
+ bv_tree = proto_tree_add_subtree_format(extension_vector, tvb,
extension_vector_offset + i * 8, 8,
- "Extension: %u bytes at %u",
+ ett_negoex_byte_vector, NULL, "Extension: %u bytes at %u",
byte_vector_count, byte_vector_offset);
- bv_tree = proto_item_add_subtree(bv_pi, ett_negoex_byte_vector);
proto_tree_add_item(bv_tree, hf_negoex_extension, tvb,
byte_vector_offset, byte_vector_count, ENC_NA);
@@ -383,7 +375,6 @@ dissect_negoex(tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree)
proto_tree *negoex_msg_tree;
proto_tree *negoex_hdr_tree;
proto_item *msg;
- proto_item *hdr;
tvbuff_t *msg_tvb;
guint32 start_offset;
@@ -394,18 +385,14 @@ dissect_negoex(tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree)
message_type = tvb_get_letohl(tvb, offset + 8);
/* Add the message type tree ... set its length below */
- msg = proto_tree_add_text(negoex_tree, tvb, offset, -1,
- "NEGOEX %s",
+ negoex_msg_tree = proto_tree_add_subtree_format(negoex_tree, tvb, offset, -1,
+ ett_negoex_msg, &msg, "NEGOEX %s",
val_to_str_const(message_type,
negoex_message_types,
"Unknown NEGOEX message type"));
- /* Add a subtree for the message */
- negoex_msg_tree = proto_item_add_subtree(msg, ett_negoex_msg);
-
/* Add a subtree for the header */
- hdr = proto_tree_add_text(negoex_msg_tree, tvb, offset, 40, "Header");
- negoex_hdr_tree = proto_item_add_subtree(hdr, ett_negoex_hdr);
+ negoex_hdr_tree = proto_tree_add_subtree(negoex_msg_tree, tvb, offset, 40, ett_negoex_hdr, NULL, "Header");
/* Signature, NEGOEXTS */
proto_tree_add_item(negoex_hdr_tree, hf_negoex_sig,
diff --git a/epan/dissectors/packet-netanalyzer.c b/epan/dissectors/packet-netanalyzer.c
index bb9a149611..29132b4401 100644
--- a/epan/dissectors/packet-netanalyzer.c
+++ b/epan/dissectors/packet-netanalyzer.c
@@ -340,8 +340,8 @@ dissect_netanalyzer_transparent(tvbuff_t *tvb, packet_info *pinfo, proto_tree *t
* as normally the transparent mode is used for low level analysis
* where dissecting the frame's content wouldn't make much sense
* use data dissector instead */
- ti = proto_tree_add_text(tree, tvb, 4, tvb_length(tvb)-4, "Raw packet data");
- transparent_payload_tree = proto_item_add_subtree(ti, ett_netanalyzer_transparent);
+ transparent_payload_tree = proto_tree_add_subtree(tree, tvb, 4, tvb_length(tvb)-4,
+ ett_netanalyzer_transparent, NULL, "Raw packet data");
next_tvb = tvb_new_subset_remaining(tvb, 4);
call_dissector(data_dissector_handle, next_tvb, pinfo, transparent_payload_tree);
diff --git a/epan/dissectors/packet-netbios.c b/epan/dissectors/packet-netbios.c
index a4309eed97..0a9c22e900 100644
--- a/epan/dissectors/packet-netbios.c
+++ b/epan/dissectors/packet-netbios.c
@@ -354,7 +354,6 @@ netbios_add_name(const char* label, tvbuff_t *tvb, int offset, proto_tree *tree)
{/* add a name field display tree. Display the name and station type in sub-tree */
proto_tree *field_tree;
- proto_item *tf;
char name_str[(NETBIOS_NAME_LEN - 1)*4 + 1];
int name_type;
const char *name_type_str;
@@ -362,10 +361,9 @@ netbios_add_name(const char* label, tvbuff_t *tvb, int offset, proto_tree *tree)
/* decode the name field */
name_type = get_netbios_name( tvb, offset, name_str, (NETBIOS_NAME_LEN - 1)*4 + 1);
name_type_str = netbios_name_type_descr(name_type);
- tf = proto_tree_add_text( tree, tvb, offset, NETBIOS_NAME_LEN,
- "%s: %s<%02x> (%s)", label, name_str, name_type, name_type_str);
+ field_tree = proto_tree_add_subtree_format( tree, tvb, offset, NETBIOS_NAME_LEN,
+ ett_netb_name, NULL, "%s: %s<%02x> (%s)", label, name_str, name_type, name_type_str);
- field_tree = proto_item_add_subtree( tf, ett_netb_name);
proto_tree_add_string_format( field_tree, hf_netb_nb_name, tvb, offset,
15, name_str, "%s", name_str);
proto_tree_add_uint_format( field_tree, hf_netb_nb_name_type, tvb, offset + 15, 1, name_type,
diff --git a/epan/dissectors/packet-netflow.c b/epan/dissectors/packet-netflow.c
index 6428754adf..7ccb060d71 100644
--- a/epan/dissectors/packet-netflow.c
+++ b/epan/dissectors/packet-netflow.c
@@ -2240,7 +2240,6 @@ dissect_v9_v10_data(tvbuff_t *tvb, packet_info *pinfo, proto_tree *pdutree, int
v9_v10_tmplt_t *tmplt_p;
v9_v10_tmplt_t tmplt_key;
proto_tree *data_tree;
- proto_item *data_item;
guint pdu_len;
if (length == 0) {
@@ -2254,9 +2253,8 @@ dissect_v9_v10_data(tvbuff_t *tvb, packet_info *pinfo, proto_tree *pdutree, int
/* Note: If the flow contains variable length fields then */
/* tmplt_p->length will be less then actual length of the flow. */
while (length >= tmplt_p->length) {
- data_item = proto_tree_add_text(pdutree, tvb,
- offset, tmplt_p->length, "Flow %d", count++);
- data_tree = proto_item_add_subtree(data_item, ett_dataflowset);
+ data_tree = proto_tree_add_subtree_format(pdutree, tvb, offset, tmplt_p->length,
+ ett_dataflowset, NULL, "Flow %d", count++);
pdu_len = dissect_v9_v10_pdu(tvb, pinfo, data_tree, offset, tmplt_p, hdrinfo_p);
@@ -3175,8 +3173,7 @@ dissect_v9_v10_pdu_data(tvbuff_t *tvb, packet_info *pinfo, proto_tree *pdutree,
const value_string *x_vs;
int x_hf;
- ti = proto_tree_add_text(pdutree, tvb, offset, length, "Forwarding Status");
- fwdstattree = proto_item_add_subtree(ti, ett_fwdstat);
+ fwdstattree = proto_tree_add_subtree(pdutree, tvb, offset, length, ett_fwdstat, NULL, "Forwarding Status");
forwarding_status = tvb_get_guint8(tvb, offset)>>6;
switch(forwarding_status) {
@@ -5250,8 +5247,7 @@ dissect_v9_v10_template_fields(tvbuff_t *tvb, packet_info *pinfo _U_, proto_tree
}
}
- field_item = proto_tree_add_text(tmplt_tree, tvb, offset, 4+((pen_str!=NULL)?4:0), "Field (%u/%u)", i+1, count);
- field_tree = proto_item_add_subtree(field_item, ett_field);
+ field_tree = proto_tree_add_subtree_format(tmplt_tree, tvb, offset, 4+((pen_str!=NULL)?4:0), ett_field, &field_item, "Field (%u/%u)", i+1, count);
if (fields_type == TF_SCOPES) {
proto_item_append_text(field_item, " [Scope]");
}
@@ -5333,8 +5329,7 @@ dissect_v9_v10_options_template(tvbuff_t *tvb, packet_info *pinfo, proto_tree *p
id = tvb_get_ntohs(tvb, offset);
- tmplt_item = proto_tree_add_text(pdutree, tvb, offset, -1, "Options Template (Id = %u)", id);
- tmplt_tree = proto_item_add_subtree(tmplt_item, ett_template);
+ tmplt_tree = proto_tree_add_subtree_format(pdutree, tvb, offset, -1, ett_template, &tmplt_item, "Options Template (Id = %u)", id);
proto_tree_add_item(tmplt_tree, hf_cflow_template_id, tvb, offset, 2, ENC_BIG_ENDIAN);
offset += 2;
@@ -5471,7 +5466,6 @@ dissect_v9_v10_data_template(tvbuff_t *tvb, packet_info *pinfo, proto_tree *pdut
v9_v10_tmplt_t *tmplt_p;
v9_v10_tmplt_t tmplt;
proto_tree *tmplt_tree;
- proto_item *tmplt_item;
proto_item *ti;
guint16 id;
guint16 count;
@@ -5481,10 +5475,9 @@ dissect_v9_v10_data_template(tvbuff_t *tvb, packet_info *pinfo, proto_tree *pdut
id = tvb_get_ntohs(tvb, offset);
count = tvb_get_ntohs(tvb, offset + 2);
- tmplt_item = proto_tree_add_text(pdutree, tvb, offset,
+ tmplt_tree = proto_tree_add_subtree_format(pdutree, tvb, offset,
4 + 4 * count /* hdrsiz + count*2*(sizeof guint16)*/,
- "Template (Id = %u, Count = %u)", id, count);
- tmplt_tree = proto_item_add_subtree(tmplt_item, ett_template);
+ ett_template, NULL, "Template (Id = %u, Count = %u)", id, count);
proto_tree_add_item(tmplt_tree, hf_cflow_template_id, tvb,
offset, 2, ENC_BIG_ENDIAN);
diff --git a/epan/dissectors/packet-netlink.c b/epan/dissectors/packet-netlink.c
index c6801aa1ba..14a02300bd 100644
--- a/epan/dissectors/packet-netlink.c
+++ b/epan/dissectors/packet-netlink.c
@@ -140,8 +140,7 @@ dissect_netlink_attributes(tvbuff_t *tvb, header_field_info *hfi_type, int ett,
end_offset = (offset + rta_len + 3) & ~3;
- ti = proto_tree_add_text(tree, tvb, offset, end_offset - offset, "Attribute");
- attr_tree = proto_item_add_subtree(ti, ett);
+ attr_tree = proto_tree_add_subtree(tree, tvb, offset, end_offset - offset, ett, &ti, "Attribute");
proto_tree_add_text(attr_tree, tvb, offset, 2, "Len: %d", rta_len);
offset += 2;
@@ -225,11 +224,9 @@ dissect_netlink(tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree, void *_data
pkt_end_offset = offset + pkt_len;
- ti = proto_tree_add_text(tree, tvb, offset, pkt_len, "Netlink message");
- fh_msg = proto_item_add_subtree(ti, ett_netlink_msg);
+ fh_msg = proto_tree_add_subtree(tree, tvb, offset, pkt_len, ett_netlink_msg, NULL, "Netlink message");
- ti = proto_tree_add_text(fh_msg, tvb, offset, 16, "Header");
- fh_hdr = proto_item_add_subtree(ti, ett_netlink_msghdr);
+ fh_hdr = proto_tree_add_subtree(fh_msg, tvb, offset, 16, ett_netlink_msghdr, NULL, "Header");
proto_tree_add_item(fh_hdr, &hfi_netlink_hdr_len, tvb, offset, 4, encoding);
offset += 4;
diff --git a/epan/dissectors/packet-nfs.c b/epan/dissectors/packet-nfs.c
index 9c0836b824..7074df0891 100644
--- a/epan/dissectors/packet-nfs.c
+++ b/epan/dissectors/packet-nfs.c
@@ -1527,15 +1527,12 @@ dissect_fhandle_data_LINUX_KNFSD_LE(tvbuff_t* tvb, packet_info *pinfo _U_, proto
/* file system id (device) */
{
- proto_item *fsid_item;
proto_tree *fsid_tree;
- fsid_item = proto_tree_add_text(tree, tvb,
- offset+12, 4,
+ fsid_tree = proto_tree_add_subtree_format(tree, tvb,
+ offset+12, 4, ett_nfs_fh_fsid, NULL,
"file system ID: %d,%d",
fsid_major, fsid_minor);
- fsid_tree = proto_item_add_subtree(fsid_item,
- ett_nfs_fh_fsid);
proto_tree_add_uint(fsid_tree, hf_nfs_fh_fsid_major,
tvb, offset+13, 1, fsid_major);
proto_tree_add_uint(fsid_tree, hf_nfs_fh_fsid_minor,
@@ -1544,14 +1541,11 @@ dissect_fhandle_data_LINUX_KNFSD_LE(tvbuff_t* tvb, packet_info *pinfo _U_, proto
/* exported file system id (device) */
{
- proto_item *xfsid_item;
proto_tree *xfsid_tree;
- xfsid_item = proto_tree_add_text(tree, tvb,
- offset+16, 4,
+ xfsid_tree = proto_tree_add_subtree_format(tree, tvb,
+ offset+16, 4, ett_nfs_fh_xfsid, NULL,
"exported file system ID: %d,%d", xfsid_major, xfsid_minor);
- xfsid_tree = proto_item_add_subtree(xfsid_item,
- ett_nfs_fh_xfsid);
proto_tree_add_uint(xfsid_tree, hf_nfs_fh_xfsid_major,
tvb, offset+17, 1, xfsid_major);
proto_tree_add_uint(xfsid_tree, hf_nfs_fh_xfsid_minor,
@@ -1627,7 +1621,6 @@ dissect_fhandle_data_NETAPP(tvbuff_t* tvb, packet_info *pinfo _U_, proto_tree *t
guint32 nfsexport = tvb_get_letohl(tvb, offset + 24);
guint32 export_snapgen = tvb_get_letohl(tvb, offset + 28);
- proto_item *item = NULL;
proto_tree *subtree = NULL;
char *flag_string;
static const char *strings[] = { " MNT_PNT", " SNAPDIR", " SNAPDIR_ENT",
@@ -1642,16 +1635,14 @@ dissect_fhandle_data_NETAPP(tvbuff_t* tvb, packet_info *pinfo _U_, proto_tree *t
g_strlcat(flag_string, strings[bit], 512);
}
}
- item = proto_tree_add_text(tree, tvb, offset + 0, 8,
- "mount (inode %u)", mount);
- subtree = proto_item_add_subtree(item, ett_nfs_fh_mount);
+ subtree = proto_tree_add_subtree_format(tree, tvb, offset + 0, 8,
+ ett_nfs_fh_mount, NULL, "mount (inode %u)", mount);
proto_tree_add_uint(subtree, hf_nfs_fh_mount_fileid,
tvb, offset + 0, 4, mount);
proto_tree_add_uint(subtree, hf_nfs_fh_mount_generation,
tvb, offset + 4, 4, mount_gen);
- item = proto_tree_add_text(tree, tvb, offset + 8, 16,
- "file (inode %u)", inum);
- subtree = proto_item_add_subtree(item, ett_nfs_fh_file);
+ subtree = proto_tree_add_subtree_format(tree, tvb, offset + 8, 16,
+ ett_nfs_fh_file, NULL, "file (inode %u)", inum);
proto_tree_add_uint_format(subtree, hf_nfs_fh_flags,
tvb, offset + 8, 2, flags,
"Flags: %#02x%s", flags,
@@ -1666,9 +1657,8 @@ dissect_fhandle_data_NETAPP(tvbuff_t* tvb, packet_info *pinfo _U_, proto_tree *t
offset + 16, 4, generation);
proto_tree_add_uint(subtree, hf_nfs_fh_fsid, tvb,
offset + 20, 4, fsid);
- item = proto_tree_add_text(tree, tvb, offset + 24, 8,
- "export (inode %u)", nfsexport);
- subtree = proto_item_add_subtree(item, ett_nfs_fh_export);
+ subtree = proto_tree_add_subtree_format(tree, tvb, offset + 24, 8,
+ ett_nfs_fh_export, NULL, "export (inode %u)", nfsexport);
proto_tree_add_uint(subtree, hf_nfs_fh_export_fileid,
tvb, offset + 24, 4, nfsexport);
proto_tree_add_uint(subtree,
@@ -1769,15 +1759,13 @@ dissect_fhandle_data_NETAPP_V4(tvbuff_t* tvb, packet_info *pinfo _U_, proto_tree
g_strlcat(flag_string, strings[bit], 512);
}
}
- item = proto_tree_add_text(tree, tvb, offset + 0, 8, "export (inode %u)", fileid);
- subtree = proto_item_add_subtree(item, ett_nfs4_fh_export);
+ subtree = proto_tree_add_subtree_format(tree, tvb, offset + 0, 8, ett_nfs4_fh_export, NULL, "export (inode %u)", fileid);
proto_tree_add_uint(subtree, hf_nfs_fh_export_fileid,
tvb, offset + 0, 4, fileid);
proto_tree_add_uint(subtree, hf_nfs_fh_export_generation,
tvb, offset + 4, 4, snapgen);
- item = proto_tree_add_text(tree, tvb, offset + 8, 16, "file (inode %u)", inum);
- subtree = proto_item_add_subtree(item, ett_nfs4_fh_file);
+ subtree = proto_tree_add_subtree_format(tree, tvb, offset + 8, 16, ett_nfs4_fh_file, NULL, "file (inode %u)", inum);
item = proto_tree_add_uint_format_value(subtree, hf_nfs_fh_flags,
tvb, offset + 8, 2, flags, "%#02x%s", flags, flag_string);
flag_tree = proto_item_add_subtree(item, ett_nfs4_fh_file_flags);
@@ -1879,9 +1867,8 @@ dissect_fhandle_data_NETAPP_GX_v3(tvbuff_t* tvb, packet_info *pinfo _U_, proto_t
spinfile_id = tvb_get_letohl(tvb, offset+12);
spinfile_uid = tvb_get_letohl(tvb, offset+16);
- tf = proto_tree_add_text(tree, tvb, offset+4, 16,
- " spin file handle");
- field_tree = proto_item_add_subtree(tf, ett_nfs3_gxfh_sfhfield);
+ field_tree = proto_tree_add_subtree(tree, tvb, offset+4, 16,
+ ett_nfs3_gxfh_sfhfield, NULL, " spin file handle");
proto_tree_add_item(field_tree, hf_nfs3_gxfh_ldsid, tvb, offset+4, 4, ENC_BIG_ENDIAN);
proto_tree_add_item(field_tree, hf_nfs3_gxfh_cid, tvb, offset+8, 2, ENC_BIG_ENDIAN);
@@ -1924,9 +1911,8 @@ dissect_fhandle_data_NETAPP_GX_v3(tvbuff_t* tvb, packet_info *pinfo _U_, proto_t
spinfile_id = tvb_get_letohl(tvb, offset+28);
spinfile_uid = tvb_get_letohl(tvb, offset+32);
- tf = proto_tree_add_text(tree, tvb, offset+20, 16,
- " spin (mount point) file handle");
- field_tree = proto_item_add_subtree(tf, ett_nfs3_gxfh_sfhfield);
+ field_tree = proto_tree_add_subtree(tree, tvb, offset+20, 16,
+ ett_nfs3_gxfh_sfhfield, NULL, " spin (mount point) file handle");
proto_tree_add_item(field_tree, hf_nfs3_gxfh_ldsid, tvb, offset+20, 4, ENC_BIG_ENDIAN);
proto_tree_add_item(field_tree, hf_nfs3_gxfh_cid, tvb, offset+24, 2, ENC_BIG_ENDIAN);
@@ -2018,29 +2004,25 @@ dissect_fhandle_data_LINUX_KNFSD_NEW(tvbuff_t* tvb, packet_info *pinfo _U_, prot
}
switch (version) {
- case 1: {
+ case 1:
auth_type = tvb_get_guint8(tvb, offset + 1);
fsid_type = tvb_get_guint8(tvb, offset + 2);
fileid_type = tvb_get_guint8(tvb, offset + 3);
if (tree) {
- proto_item *encoding_item = proto_tree_add_text(tree, tvb,
+ proto_tree *encoding_tree = proto_tree_add_subtree_format(tree, tvb,
offset + 1, 3,
- "encoding: %u %u %u",
+ ett_nfs_fh_encoding, NULL, "encoding: %u %u %u",
auth_type, fsid_type, fileid_type);
- {
- proto_tree *encoding_tree = proto_item_add_subtree(encoding_item,
- ett_nfs_fh_encoding);
- proto_tree_add_uint(encoding_tree, hf_nfs_fh_auth_type,
+ proto_tree_add_uint(encoding_tree, hf_nfs_fh_auth_type,
tvb, offset+1, 1, auth_type);
- proto_tree_add_uint(encoding_tree, hf_nfs_fh_fsid_type,
+ proto_tree_add_uint(encoding_tree, hf_nfs_fh_fsid_type,
tvb, offset+2, 1, fsid_type);
- proto_tree_add_uint(encoding_tree, hf_nfs_fh_fileid_type,
+ proto_tree_add_uint(encoding_tree, hf_nfs_fh_fileid_type,
tvb, offset+3, 1, fileid_type);
- }
}
offset += 4;
- } break;
+ break;
default: {
/* unknown version */
goto out;
@@ -2072,21 +2054,17 @@ dissect_fhandle_data_LINUX_KNFSD_NEW(tvbuff_t* tvb, packet_info *pinfo _U_, prot
fsid_minor = tvb_get_ntohs(tvb, offset + 2);
fsid_inode = tvb_get_letohl(tvb, offset + 4);
if (tree) {
- proto_item *fsid_item = proto_tree_add_text(tree, tvb,
- offset+0, 8,
+ proto_tree *fsid_tree = proto_tree_add_subtree_format(tree, tvb,
+ offset+0, 8, ett_nfs_fh_fsid, NULL,
"file system ID: %u,%u (inode %u)",
fsid_major, fsid_minor, fsid_inode);
- {
- proto_tree *fsid_tree = proto_item_add_subtree(fsid_item,
- ett_nfs_fh_fsid);
- proto_tree_add_uint(fsid_tree, hf_nfs_fh_fsid_major,
+ proto_tree_add_uint(fsid_tree, hf_nfs_fh_fsid_major,
tvb, offset+0, 2, fsid_major);
- proto_tree_add_uint(fsid_tree, hf_nfs_fh_fsid_minor,
+ proto_tree_add_uint(fsid_tree, hf_nfs_fh_fsid_minor,
tvb, offset+2, 2, fsid_minor);
- proto_tree_add_uint(fsid_tree, hf_nfs_fh_fsid_inode,
+ proto_tree_add_uint(fsid_tree, hf_nfs_fh_fsid_inode,
tvb, offset+4, 4, fsid_inode);
- }
}
offset += 8;
} break;
@@ -2112,19 +2090,15 @@ dissect_fhandle_data_LINUX_KNFSD_NEW(tvbuff_t* tvb, packet_info *pinfo _U_, prot
generation = tvb_get_letohl(tvb, offset + 4);
if (tree) {
- proto_item *fileid_item = proto_tree_add_text(tree, tvb,
- offset+0, 8,
+ proto_tree *fileid_tree = proto_tree_add_subtree_format(tree, tvb,
+ offset+0, 8, ett_nfs_fh_fn, NULL,
"file ID: %u (%u)",
inode, generation);
- {
- proto_tree *fileid_tree = proto_item_add_subtree(
- fileid_item, ett_nfs_fh_fn);
- proto_tree_add_uint(fileid_tree, hf_nfs_fh_fn_inode,
+ proto_tree_add_uint(fileid_tree, hf_nfs_fh_fn_inode,
tvb, offset+0, 4, inode);
- proto_tree_add_uint(fileid_tree, hf_nfs_fh_fn_generation,
+ proto_tree_add_uint(fileid_tree, hf_nfs_fh_fn_generation,
tvb, offset+4, 4, generation);
- }
}
/*offset += 8;*/
@@ -2139,21 +2113,17 @@ dissect_fhandle_data_LINUX_KNFSD_NEW(tvbuff_t* tvb, packet_info *pinfo _U_, prot
parent_inode = tvb_get_letohl(tvb, offset + 8);
if (tree) {
- proto_item *fileid_item = proto_tree_add_text(tree, tvb,
- offset+0, 8,
+ proto_tree *fileid_tree = proto_tree_add_subtree_format(tree, tvb,
+ offset+0, 8, ett_nfs_fh_fn, NULL,
"file ID: %u (%u)",
inode, generation);
- {
- proto_tree *fileid_tree = proto_item_add_subtree(
- fileid_item, ett_nfs_fh_fn);
- proto_tree_add_uint(fileid_tree, hf_nfs_fh_fn_inode,
+ proto_tree_add_uint(fileid_tree, hf_nfs_fh_fn_inode,
tvb, offset+0, 4, inode);
- proto_tree_add_uint(fileid_tree, hf_nfs_fh_fn_generation,
+ proto_tree_add_uint(fileid_tree, hf_nfs_fh_fn_generation,
tvb, offset+4, 4, generation);
- proto_tree_add_uint(fileid_tree, hf_nfs_fh_dirinode,
+ proto_tree_add_uint(fileid_tree, hf_nfs_fh_dirinode,
tvb, offset+8, 4, parent_inode);
- }
}
/*offset += 12;*/
@@ -2230,8 +2200,8 @@ dissect_fhandle_data_CELERRA_VNX(tvbuff_t* tvb, packet_info *pinfo _U_, proto_tr
if (fhlen == 32) {
/* Create a "File/Dir" subtree: bytes 0 thru 15 of the 32-byte file handle */
{
- proto_item *obj_item = NULL;
- proto_tree *obj_tree = NULL;
+ proto_item *obj_item;
+ proto_tree *obj_tree;
obj_item = proto_tree_add_item(tree, hf_nfs_fh_obj, tvb, offset+0, 16, ENC_NA );
obj_tree = proto_item_add_subtree(obj_item, ett_nfs_fh_obj);
@@ -2248,8 +2218,8 @@ dissect_fhandle_data_CELERRA_VNX(tvbuff_t* tvb, packet_info *pinfo _U_, proto_tr
}
{
/* Create "Export" subtree (NFSv3: Bytes 16 thru 31 of the 32-byte file handle */
- proto_item *ex_item = NULL;
- proto_tree *ex_tree = NULL;
+ proto_item *ex_item;
+ proto_tree *ex_tree;
ex_item = proto_tree_add_item(tree, hf_nfs_fh_ex, tvb, offset+16, 16, ENC_NA );
ex_tree = proto_item_add_subtree(ex_item, ett_nfs_fh_ex);
@@ -2284,8 +2254,8 @@ dissect_fhandle_data_CELERRA_VNX(tvbuff_t* tvb, packet_info *pinfo _U_, proto_tr
/* Create "Export" subtree (bytes 8 thru 23 of the 40-byte file handle */
{
- proto_item *ex_item = NULL;
- proto_tree *ex_tree = NULL;
+ proto_item *ex_item;
+ proto_tree *ex_tree;
ex_item = proto_tree_add_item(tree, hf_nfs_fh_ex, tvb, offset+8, 16, ENC_NA );
ex_tree = proto_item_add_subtree(ex_item, ett_nfs_fh_ex);
@@ -2302,8 +2272,8 @@ dissect_fhandle_data_CELERRA_VNX(tvbuff_t* tvb, packet_info *pinfo _U_, proto_tr
}
/* Create a "File/Dir/Object" subtree (bytes 24 thru 39 of the 40-byte file handle) */
{
- proto_item *obj_item = NULL;
- proto_tree *obj_tree = NULL;
+ proto_item *obj_item;
+ proto_tree *obj_tree;
obj_item = proto_tree_add_item(tree, hf_nfs_fh_obj, tvb, offset+24, 16, ENC_NA);
obj_tree = proto_item_add_subtree(obj_item, ett_nfs_fh_obj);
@@ -2683,15 +2653,11 @@ int
dissect_fhandle(tvbuff_t *tvb, int offset, packet_info *pinfo, proto_tree *tree,
const char *name, guint32 *hash, rpc_call_info_value *civ)
{
- proto_item *fitem = NULL;
- proto_tree *ftree = NULL;
+ proto_tree *ftree;
- if (tree) {
- fitem = proto_tree_add_text(tree, tvb, offset, FHSIZE,
- "%s", name);
+ ftree = proto_tree_add_subtree(tree, tvb, offset, FHSIZE,
+ ett_nfs_fhandle, NULL, name);
- ftree = proto_item_add_subtree(fitem, ett_nfs_fhandle);
- }
/* are we snooping fh to filenames ?*/
if ((!pinfo->fd->flags.visited) && nfs_file_name_snooping) {
@@ -2848,15 +2814,12 @@ dissect_nfs2_mode(tvbuff_t *tvb, int offset, proto_tree *tree, const char *label
int
dissect_nfs2_fattr(tvbuff_t *tvb, int offset, proto_tree *tree, const char *name)
{
- proto_item *fattr_item = NULL;
- proto_tree *fattr_tree = NULL;
+ proto_item *fattr_item;
+ proto_tree *fattr_tree;
int old_offset = offset;
- if (tree) {
- fattr_item = proto_tree_add_text(tree, tvb, offset, -1,
- "%s", name);
- fattr_tree = proto_item_add_subtree(fattr_item, ett_nfs_fattr);
- }
+ fattr_tree = proto_tree_add_subtree(tree, tvb, offset, -1,
+ ett_nfs_fattr, &fattr_item, name);
offset = dissect_nfs2_ftype(tvb, offset, fattr_tree, "type");
offset = dissect_nfs2_mode(tvb, offset, fattr_tree, "mode");
@@ -2878,9 +2841,7 @@ dissect_nfs2_fattr(tvbuff_t *tvb, int offset, proto_tree *tree, const char *name
hf_nfs_ctime, hf_nfs_ctime_sec, hf_nfs_ctime_usec);
/* now we know, that fattr is shorter */
- if (fattr_item) {
- proto_item_set_len(fattr_item, offset - old_offset);
- }
+ proto_item_set_len(fattr_item, offset - old_offset);
return offset;
}
@@ -2890,15 +2851,12 @@ dissect_nfs2_fattr(tvbuff_t *tvb, int offset, proto_tree *tree, const char *name
static int
dissect_nfs2_sattr(tvbuff_t *tvb, int offset, proto_tree *tree, const char *name)
{
- proto_item *sattr_item = NULL;
- proto_tree *sattr_tree = NULL;
+ proto_item *sattr_item;
+ proto_tree *sattr_tree;
int old_offset = offset;
- if (tree) {
- sattr_item = proto_tree_add_text(tree, tvb, offset, -1,
- "%s", name);
- sattr_tree = proto_item_add_subtree(sattr_item, ett_nfs2_sattr);
- }
+ sattr_tree = proto_tree_add_subtree(tree, tvb, offset, -1,
+ ett_nfs2_sattr, &sattr_item, name);
if (tvb_get_ntohl(tvb, offset+0) != 0xffffffff)
offset = dissect_nfs2_mode(tvb, offset, sattr_tree, "mode");
@@ -3033,15 +2991,12 @@ static int
dissect_diropargs(tvbuff_t *tvb, int offset, packet_info *pinfo, proto_tree *tree,
const char *label, guint32 *hash, const char **name, rpc_call_info_value *civ)
{
- proto_item *diropargs_item = NULL;
- proto_tree *diropargs_tree = NULL;
+ proto_item *diropargs_item;
+ proto_tree *diropargs_tree;
int old_offset = offset;
- if (tree) {
- diropargs_item = proto_tree_add_text(tree, tvb, offset, -1,
- "%s", label);
- diropargs_tree = proto_item_add_subtree(diropargs_item, ett_nfs2_diropargs);
- }
+ diropargs_tree = proto_tree_add_subtree(tree, tvb, offset, -1,
+ ett_nfs2_diropargs, &diropargs_item, label);
/* are we snooping fh to filenames ?*/
if ((!pinfo->fd->flags.visited) && nfs_file_name_snooping) {
@@ -3062,9 +3017,7 @@ dissect_diropargs(tvbuff_t *tvb, int offset, packet_info *pinfo, proto_tree *tre
offset = dissect_filename(tvb, offset, diropargs_tree, hf_nfs_name, name);
/* now we know, that diropargs is shorter */
- if (diropargs_item) {
- proto_item_set_len(diropargs_item, offset - old_offset);
- }
+ proto_item_set_len(diropargs_item, offset - old_offset);
return offset;
}
@@ -3826,14 +3779,10 @@ dissect_nfs3_specdata(tvbuff_t *tvb, int offset, proto_tree *tree, const char *n
specdata2 = tvb_get_ntohl(tvb, offset+4);
if (tree) {
- proto_item *specdata3_item;
proto_tree *specdata3_tree;
- specdata3_item = proto_tree_add_text(tree, tvb, offset, 8,
- "%s: %u,%u", name, specdata1, specdata2);
-
- specdata3_tree = proto_item_add_subtree(specdata3_item,
- ett_nfs3_specdata);
+ specdata3_tree = proto_tree_add_subtree_format(tree, tvb, offset, 8,
+ ett_nfs3_specdata, NULL, "%s: %u,%u", name, specdata1, specdata2);
proto_tree_add_text(specdata3_tree, tvb, offset+0, 4,
"specdata1: %u", specdata1);
@@ -3854,20 +3803,15 @@ dissect_nfs3_fh(tvbuff_t *tvb, int offset, packet_info *pinfo, proto_tree *tree,
guint fh3_len;
guint fh3_len_full;
/*guint fh3_fill;*/
- proto_item *fitem = NULL;
- proto_tree *ftree = NULL;
+ proto_tree *ftree;
int fh_offset, fh_length;
fh3_len = tvb_get_ntohl(tvb, offset+0);
fh3_len_full = rpc_roundup(fh3_len);
/*fh3_fill = fh3_len_full - fh3_len;*/
- if (tree) {
- fitem = proto_tree_add_text(tree, tvb, offset, 4+fh3_len_full,
- "%s", name);
-
- ftree = proto_item_add_subtree(fitem, ett_nfs3_fh);
- }
+ ftree = proto_tree_add_subtree(tree, tvb, offset, 4+fh3_len_full,
+ ett_nfs3_fh, NULL, name);
/* are we snooping fh to filenames ?*/
if ((!pinfo->fd->flags.visited) && nfs_file_name_snooping) {
@@ -3968,11 +3912,8 @@ dissect_nfs_fattr3(packet_info *pinfo, tvbuff_t *tvb, int offset,
int old_offset = offset;
guint32 type, mode, uid, gid;
- if (tree) {
- fattr3_item = proto_tree_add_text(tree, tvb, offset, -1,
- "%s", name);
- fattr3_tree = proto_item_add_subtree(fattr3_item, ett_nfs3_fattr);
- }
+ fattr3_tree = proto_tree_add_subtree(tree, tvb, offset, -1,
+ ett_nfs3_fattr, &fattr3_item, name);
/* ftype */
offset = dissect_ftype3(tvb, offset, fattr3_tree, hf_nfs3_fattr_type, &type);
@@ -4023,10 +3964,7 @@ dissect_nfs_fattr3(packet_info *pinfo, tvbuff_t *tvb, int offset,
offset = dissect_nfstime3 (tvb, offset, fattr3_tree, hf_nfs_ctime, hf_nfs_ctime_sec, hf_nfs_ctime_nsec);
/* now we know, that fattr3 is shorter */
- if (fattr3_item) {
- proto_item_set_len(fattr3_item, offset - old_offset);
- }
-
+ proto_item_set_len(fattr3_item, offset - old_offset);
/* put some nice info in COL_INFO for GETATTR replies */
if (levels & COL_INFO_LEVEL) {
@@ -4061,23 +3999,20 @@ int
dissect_nfs3_post_op_attr(tvbuff_t *tvb, int offset, packet_info *pinfo, proto_tree *tree,
const char *name)
{
- proto_item *post_op_attr_item = NULL;
- proto_tree *post_op_attr_tree = NULL;
+ proto_item *post_op_attr_item;
+ proto_tree *post_op_attr_tree;
int old_offset = offset;
guint32 attributes_follow = 0;
attributes_follow = tvb_get_ntohl(tvb, offset+0);
- if (tree) {
- post_op_attr_item = proto_tree_add_text(tree, tvb, offset, -1,
- "%s", name);
- post_op_attr_tree = proto_item_add_subtree(post_op_attr_item,
- ett_nfs3_post_op_attr);
+ post_op_attr_tree = proto_tree_add_subtree(tree, tvb, offset, -1,
+ ett_nfs3_post_op_attr, &post_op_attr_item, name);
- proto_tree_add_text(post_op_attr_tree, tvb, offset, 4,
+ proto_tree_add_text(post_op_attr_tree, tvb, offset, 4,
"attributes_follow: %s (%u)",
val_to_str_const(attributes_follow, value_follows, "Unknown"), attributes_follow);
- }
+
offset += 4;
switch (attributes_follow) {
case TRUE:
@@ -4091,9 +4026,7 @@ dissect_nfs3_post_op_attr(tvbuff_t *tvb, int offset, packet_info *pinfo, proto_t
}
/* now we know, that post_op_attr_tree is shorter */
- if (tree && post_op_attr_item) {
- proto_item_set_len(post_op_attr_item, offset - old_offset);
- }
+ proto_item_set_len(post_op_attr_item, offset - old_offset);
return offset;
}
@@ -4103,16 +4036,12 @@ dissect_nfs3_post_op_attr(tvbuff_t *tvb, int offset, packet_info *pinfo, proto_t
static int
dissect_wcc_attr(tvbuff_t *tvb, int offset, proto_tree *tree, const char *name)
{
- proto_item *wcc_attr_item = NULL;
- proto_tree *wcc_attr_tree = NULL;
+ proto_item *wcc_attr_item;
+ proto_tree *wcc_attr_tree;
int old_offset = offset;
- if (tree) {
- wcc_attr_item = proto_tree_add_text(tree, tvb, offset, -1,
- "%s", name);
- wcc_attr_tree = proto_item_add_subtree(wcc_attr_item,
- ett_nfs3_wcc_attr);
- }
+ wcc_attr_tree = proto_tree_add_subtree(tree, tvb, offset, -1,
+ ett_nfs3_wcc_attr, &wcc_attr_item, name);
offset = dissect_rpc_uint64(tvb, wcc_attr_tree, hf_nfs3_wcc_attr_size,
offset);
@@ -4121,9 +4050,7 @@ dissect_wcc_attr(tvbuff_t *tvb, int offset, proto_tree *tree, const char *name)
offset = dissect_nfstime3(tvb, offset, wcc_attr_tree, hf_nfs_ctime,
hf_nfs_ctime_sec, hf_nfs_ctime_nsec);
/* now we know, that wcc_attr_tree is shorter */
- if (wcc_attr_item) {
- proto_item_set_len(wcc_attr_item, offset - old_offset);
- }
+ proto_item_set_len(wcc_attr_item, offset - old_offset);
return offset;
}
@@ -4133,17 +4060,13 @@ dissect_wcc_attr(tvbuff_t *tvb, int offset, proto_tree *tree, const char *name)
static int
dissect_pre_op_attr(tvbuff_t *tvb, int offset, proto_tree *tree, const char *name)
{
- proto_item *pre_op_attr_item = NULL;
- proto_tree *pre_op_attr_tree = NULL;
+ proto_item *pre_op_attr_item;
+ proto_tree *pre_op_attr_tree;
int old_offset = offset;
guint32 attributes_follow;
- if (tree) {
- pre_op_attr_item = proto_tree_add_text(tree, tvb, offset, -1,
- "%s", name);
- pre_op_attr_tree = proto_item_add_subtree(pre_op_attr_item,
- ett_nfs3_pre_op_attr);
- }
+ pre_op_attr_tree = proto_tree_add_subtree(tree, tvb, offset, -1,
+ ett_nfs3_pre_op_attr, &pre_op_attr_item, name);
attributes_follow = tvb_get_ntohl(tvb, offset+0);
proto_tree_add_text(pre_op_attr_tree, tvb, offset, 4,
@@ -4161,9 +4084,7 @@ dissect_pre_op_attr(tvbuff_t *tvb, int offset, proto_tree *tree, const char *nam
}
/* now we know, that pre_op_attr_tree is shorter */
- if (pre_op_attr_item) {
- proto_item_set_len(pre_op_attr_item, offset - old_offset);
- }
+ proto_item_set_len(pre_op_attr_item, offset - old_offset);
return offset;
}
@@ -4173,24 +4094,18 @@ dissect_pre_op_attr(tvbuff_t *tvb, int offset, proto_tree *tree, const char *nam
static int
dissect_wcc_data(tvbuff_t *tvb, int offset, packet_info *pinfo, proto_tree *tree, const char *name)
{
- proto_item *wcc_data_item = NULL;
- proto_tree *wcc_data_tree = NULL;
+ proto_item *wcc_data_item;
+ proto_tree *wcc_data_tree;
int old_offset = offset;
- if (tree) {
- wcc_data_item = proto_tree_add_text(tree, tvb, offset, -1,
- "%s", name);
- wcc_data_tree = proto_item_add_subtree(wcc_data_item,
- ett_nfs3_wcc_data);
- }
+ wcc_data_tree = proto_tree_add_subtree(tree, tvb, offset, -1,
+ ett_nfs3_wcc_data, &wcc_data_item, name);
offset = dissect_pre_op_attr (tvb, offset, wcc_data_tree, "before");
offset = dissect_nfs3_post_op_attr(tvb, offset, pinfo, wcc_data_tree, "after" );
/* now we know, that wcc_data is shorter */
- if (wcc_data_item) {
- proto_item_set_len(wcc_data_item, offset - old_offset);
- }
+ proto_item_set_len(wcc_data_item, offset - old_offset);
return offset;
}
@@ -4201,17 +4116,13 @@ static int
dissect_nfs3_post_op_fh(tvbuff_t *tvb, int offset, packet_info *pinfo,
proto_tree *tree, const char *name, rpc_call_info_value *civ)
{
- proto_item *post_op_fh3_item = NULL;
- proto_tree *post_op_fh3_tree = NULL;
+ proto_item *post_op_fh3_item;
+ proto_tree *post_op_fh3_tree;
int old_offset = offset;
guint32 handle_follows;
- if (tree) {
- post_op_fh3_item = proto_tree_add_text(tree, tvb, offset, -1,
- "%s", name);
- post_op_fh3_tree = proto_item_add_subtree(post_op_fh3_item,
- ett_nfs3_post_op_fh);
- }
+ post_op_fh3_tree = proto_tree_add_subtree(tree, tvb, offset, -1,
+ ett_nfs3_post_op_fh, &post_op_fh3_item, name);
handle_follows = tvb_get_ntohl(tvb, offset+0);
proto_tree_add_text(post_op_fh3_tree, tvb, offset, 4,
@@ -4241,25 +4152,21 @@ dissect_nfs3_post_op_fh(tvbuff_t *tvb, int offset, packet_info *pinfo,
static int
dissect_set_mode3(tvbuff_t *tvb, int offset, proto_tree *tree, const char *name)
{
- proto_item *set_mode3_item = NULL;
- proto_tree *set_mode3_tree = NULL;
+ proto_item *set_mode3_item;
+ proto_tree *set_mode3_tree;
int old_offset = offset;
guint32 set_it;
const char *set_it_name;
set_it = tvb_get_ntohl(tvb, offset+0);
- if (tree) {
- set_it_name = val_to_str_const(set_it, value_follows, "Unknown");
+ set_it_name = val_to_str_const(set_it, value_follows, "Unknown");
- set_mode3_item = proto_tree_add_text(tree, tvb, offset, -1,
- "%s: %s", name, set_it_name);
- set_mode3_tree = proto_item_add_subtree(set_mode3_item,
- ett_nfs3_set_mode);
+ set_mode3_tree = proto_tree_add_subtree_format(tree, tvb, offset, -1,
+ ett_nfs3_set_mode, &set_mode3_item, "%s: %s", name, set_it_name);
- proto_tree_add_text(set_mode3_tree, tvb, offset, 4,
+ proto_tree_add_text(set_mode3_tree, tvb, offset, 4,
"set_it: %s (%u)", set_it_name, set_it);
- }
offset += 4;
@@ -4285,25 +4192,20 @@ dissect_set_mode3(tvbuff_t *tvb, int offset, proto_tree *tree, const char *name)
static int
dissect_set_uid3(tvbuff_t *tvb, int offset, proto_tree *tree, const char *name)
{
- proto_item *set_uid3_item = NULL;
- proto_tree *set_uid3_tree = NULL;
+ proto_item *set_uid3_item;
+ proto_tree *set_uid3_tree;
int old_offset = offset;
guint32 set_it;
const char *set_it_name;
set_it = tvb_get_ntohl(tvb, offset+0);
+ set_it_name = val_to_str_const(set_it, value_follows, "Unknown");
- if (tree) {
- set_it_name = val_to_str_const(set_it, value_follows, "Unknown");
-
- set_uid3_item = proto_tree_add_text(tree, tvb, offset, -1,
- "%s: %s", name, set_it_name);
- set_uid3_tree = proto_item_add_subtree(set_uid3_item,
- ett_nfs3_set_uid);
+ set_uid3_tree = proto_tree_add_subtree_format(tree, tvb, offset, -1,
+ ett_nfs3_set_uid, &set_uid3_item, "%s: %s", name, set_it_name);
- proto_tree_add_text(set_uid3_tree, tvb, offset, 4,
+ proto_tree_add_text(set_uid3_tree, tvb, offset, 4,
"set_it: %s (%u)", set_it_name, set_it);
- }
offset += 4;
switch (set_it) {
@@ -4317,9 +4219,7 @@ dissect_set_uid3(tvbuff_t *tvb, int offset, proto_tree *tree, const char *name)
}
/* now we know, that set_uid3 is shorter */
- if (set_uid3_item) {
- proto_item_set_len(set_uid3_item, offset - old_offset);
- }
+ proto_item_set_len(set_uid3_item, offset - old_offset);
return offset;
}
@@ -4329,23 +4229,20 @@ dissect_set_uid3(tvbuff_t *tvb, int offset, proto_tree *tree, const char *name)
static int
dissect_set_gid3(tvbuff_t *tvb, int offset, proto_tree *tree, const char *name)
{
- proto_item *set_gid3_item = NULL;
- proto_tree *set_gid3_tree = NULL;
+ proto_item *set_gid3_item;
+ proto_tree *set_gid3_tree;
int old_offset = offset;
guint32 set_it;
const char *set_it_name;
set_it = tvb_get_ntohl(tvb, offset+0);
- if (tree) {
- set_it_name = val_to_str_const(set_it, value_follows, "Unknown");
- set_gid3_item = proto_tree_add_text(tree, tvb, offset, -1,
- "%s: %s", name, set_it_name);
- set_gid3_tree = proto_item_add_subtree(set_gid3_item,
- ett_nfs3_set_gid);
- proto_tree_add_text(set_gid3_tree, tvb, offset, 4,
+ set_it_name = val_to_str_const(set_it, value_follows, "Unknown");
+ set_gid3_tree = proto_tree_add_subtree_format(tree, tvb, offset, -1,
+ ett_nfs3_set_gid, &set_gid3_item, "%s: %s", name, set_it_name);
+
+ proto_tree_add_text(set_gid3_tree, tvb, offset, 4,
"set_it: %s (%u)", set_it_name, set_it);
- }
offset += 4;
@@ -4360,9 +4257,7 @@ dissect_set_gid3(tvbuff_t *tvb, int offset, proto_tree *tree, const char *name)
}
/* now we know, that set_gid3 is shorter */
- if (set_gid3_item) {
- proto_item_set_len(set_gid3_item, offset - old_offset);
- }
+ proto_item_set_len(set_gid3_item, offset - old_offset);
return offset;
}
@@ -4372,24 +4267,20 @@ dissect_set_gid3(tvbuff_t *tvb, int offset, proto_tree *tree, const char *name)
static int
dissect_set_size3(tvbuff_t *tvb, int offset, proto_tree *tree, const char *name)
{
- proto_item *set_size3_item = NULL;
- proto_tree *set_size3_tree = NULL;
+ proto_item *set_size3_item;
+ proto_tree *set_size3_tree;
int old_offset = offset;
guint32 set_it;
const char *set_it_name;
set_it = tvb_get_ntohl(tvb, offset+0);
- if (tree) {
- set_it_name = val_to_str_const(set_it, value_follows, "Unknown");
+ set_it_name = val_to_str_const(set_it, value_follows, "Unknown");
- set_size3_item = proto_tree_add_text(tree, tvb, offset, -1,
- "%s: %s", name, set_it_name);
- set_size3_tree = proto_item_add_subtree(set_size3_item,
- ett_nfs3_set_size);
- proto_tree_add_text(set_size3_tree, tvb, offset, 4,
+ set_size3_tree = proto_tree_add_subtree_format(tree, tvb, offset, -1,
+ ett_nfs3_set_size, &set_size3_item, "%s: %s", name, set_it_name);
+ proto_tree_add_text(set_size3_tree, tvb, offset, 4,
"set_it: %s (%u)", set_it_name, set_it);
- }
offset += 4;
@@ -4404,9 +4295,7 @@ dissect_set_size3(tvbuff_t *tvb, int offset, proto_tree *tree, const char *name)
}
/* now we know, that set_size3 is shorter */
- if (set_size3_item) {
- proto_item_set_len(set_size3_item, offset - old_offset);
- }
+ proto_item_set_len(set_size3_item, offset - old_offset);
return offset;
}
@@ -4430,25 +4319,21 @@ static const value_string time_how[] =
static int
dissect_set_atime(tvbuff_t *tvb, int offset, proto_tree *tree, const char *name)
{
- proto_item *set_atime_item = NULL;
- proto_tree *set_atime_tree = NULL;
+ proto_item *set_atime_item;
+ proto_tree *set_atime_tree;
int old_offset = offset;
guint32 set_it;
const char *set_it_name;
set_it = tvb_get_ntohl(tvb, offset+0);
- if (tree) {
- set_it_name = val_to_str_const(set_it, time_how, "Unknown");
+ set_it_name = val_to_str_const(set_it, time_how, "Unknown");
- set_atime_item = proto_tree_add_text(tree, tvb, offset, -1,
- "%s: %s", name, set_it_name);
- set_atime_tree = proto_item_add_subtree(set_atime_item,
- ett_nfs3_set_atime);
+ set_atime_tree = proto_tree_add_subtree_format(tree, tvb, offset, -1,
+ ett_nfs3_set_atime, &set_atime_item, "%s: %s", name, set_it_name);
- proto_tree_add_text(set_atime_tree, tvb, offset, 4,
+ proto_tree_add_text(set_atime_tree, tvb, offset, 4,
"set_it: %s (%u)", set_it_name, set_it);
- }
offset += 4;
switch (set_it) {
@@ -4464,9 +4349,7 @@ dissect_set_atime(tvbuff_t *tvb, int offset, proto_tree *tree, const char *name)
}
/* now we know, that set_atime is shorter */
- if (set_atime_item) {
- proto_item_set_len(set_atime_item, offset - old_offset);
- }
+ proto_item_set_len(set_atime_item, offset - old_offset);
return offset;
}
@@ -4476,30 +4359,26 @@ dissect_set_atime(tvbuff_t *tvb, int offset, proto_tree *tree, const char *name)
static int
dissect_set_mtime(tvbuff_t *tvb, int offset, proto_tree *tree, const char *name)
{
- proto_item *set_mtime_item = NULL;
- proto_tree *set_mtime_tree = NULL;
+ proto_item *set_mtime_item;
+ proto_tree *set_mtime_tree;
int old_offset = offset;
guint32 set_it;
const char *set_it_name;
set_it = tvb_get_ntohl(tvb, offset+0);
- if (tree) {
- set_it_name = val_to_str_const(set_it, time_how, "Unknown");
+ set_it_name = val_to_str_const(set_it, time_how, "Unknown");
- set_mtime_item = proto_tree_add_text(tree, tvb, offset, -1,
- "%s: %s", name, set_it_name);
- set_mtime_tree = proto_item_add_subtree(set_mtime_item,
- ett_nfs3_set_mtime);
- proto_tree_add_text(set_mtime_tree, tvb, offset, 4,
+ set_mtime_tree = proto_tree_add_subtree_format(tree, tvb, offset, -1,
+ ett_nfs3_set_mtime, &set_mtime_item, "%s: %s", name, set_it_name);
+ proto_tree_add_text(set_mtime_tree, tvb, offset, 4,
"set_it: %s (%u)", set_it_name, set_it);
- }
offset += 4;
switch (set_it) {
case SET_TO_CLIENT_TIME:
- if (set_mtime_item) {
+ if (set_mtime_tree) {
offset = dissect_nfstime3(tvb, offset, set_mtime_tree,
hf_nfs_atime, hf_nfs_atime_sec, hf_nfs_atime_nsec);
}
@@ -4510,9 +4389,7 @@ dissect_set_mtime(tvbuff_t *tvb, int offset, proto_tree *tree, const char *name)
}
/* now we know, that set_mtime is shorter */
- if (set_mtime_item) {
- proto_item_set_len(set_mtime_item, offset - old_offset);
- }
+ proto_item_set_len(set_mtime_item, offset - old_offset);
return offset;
}
@@ -4522,15 +4399,12 @@ dissect_set_mtime(tvbuff_t *tvb, int offset, proto_tree *tree, const char *name)
static int
dissect_nfs3_sattr(tvbuff_t *tvb, int offset, proto_tree *tree, const char *name)
{
- proto_item *sattr3_item = NULL;
- proto_tree *sattr3_tree = NULL;
+ proto_item *sattr3_item;
+ proto_tree *sattr3_tree;
int old_offset = offset;
- if (tree) {
- sattr3_item = proto_tree_add_text(tree, tvb, offset, -1,
- "%s", name);
- sattr3_tree = proto_item_add_subtree(sattr3_item, ett_nfs3_sattr);
- }
+ sattr3_tree = proto_tree_add_subtree(tree, tvb, offset, -1,
+ ett_nfs3_sattr, &sattr3_item, name);
offset = dissect_set_mode3(tvb, offset, sattr3_tree, "mode");
offset = dissect_set_uid3 (tvb, offset, sattr3_tree, "uid");
@@ -4540,9 +4414,7 @@ dissect_nfs3_sattr(tvbuff_t *tvb, int offset, proto_tree *tree, const char *name
offset = dissect_set_mtime(tvb, offset, sattr3_tree, "mtime");
/* now we know, that sattr3 is shorter */
- if (sattr3_item) {
- proto_item_set_len(sattr3_item, offset - old_offset);
- }
+ proto_item_set_len(sattr3_item, offset - old_offset);
return offset;
}
@@ -4553,18 +4425,14 @@ static int
dissect_diropargs3(tvbuff_t *tvb, int offset, packet_info *pinfo, proto_tree *tree,
const char *label, guint32 *hash, const char **name, rpc_call_info_value *civ)
{
- proto_item *diropargs3_item = NULL;
- proto_tree *diropargs3_tree = NULL;
+ proto_item *diropargs3_item;
+ proto_tree *diropargs3_tree;
int old_offset = offset;
int parent_offset, parent_len;
int name_offset, name_len;
- if (tree) {
- diropargs3_item = proto_tree_add_text(tree, tvb, offset, -1,
- "%s", label);
- diropargs3_tree = proto_item_add_subtree(diropargs3_item,
- ett_nfs3_diropargs);
- }
+ diropargs3_tree = proto_tree_add_subtree(tree, tvb, offset, -1,
+ ett_nfs3_diropargs, &diropargs3_item, label);
parent_offset = offset+4;
parent_len = tvb_get_ntohl(tvb, offset);
@@ -4590,9 +4458,7 @@ dissect_diropargs3(tvbuff_t *tvb, int offset, packet_info *pinfo, proto_tree *tr
/* now we know, that diropargs3 is shorter */
- if (diropargs3_item) {
- proto_item_set_len(diropargs3_item, offset - old_offset);
- }
+ proto_item_set_len(diropargs3_item, offset - old_offset);
return offset;
}
@@ -4696,25 +4562,21 @@ dissect_nfs3_getattr_reply(tvbuff_t *tvb, int offset, packet_info *pinfo _U_,
static int
dissect_sattrguard3(tvbuff_t *tvb, int offset, proto_tree *tree, const char *name)
{
- proto_item *sattrguard3_item = NULL;
- proto_tree *sattrguard3_tree = NULL;
+ proto_item *sattrguard3_item;
+ proto_tree *sattrguard3_tree;
int old_offset = offset;
guint32 check;
const char *check_name;
check = tvb_get_ntohl(tvb, offset+0);
- if (tree) {
- check_name = val_to_str_const(check, value_follows, "Unknown");
+ check_name = val_to_str_const(check, value_follows, "Unknown");
- sattrguard3_item = proto_tree_add_text(tree, tvb, offset, -1,
- "%s: %s", name, check_name);
- sattrguard3_tree = proto_item_add_subtree(sattrguard3_item,
- ett_nfs3_sattrguard);
+ sattrguard3_tree = proto_tree_add_subtree_format(tree, tvb, offset, -1,
+ ett_nfs3_sattrguard, &sattrguard3_item, "%s: %s", name, check_name);
- proto_tree_add_text(sattrguard3_tree, tvb, offset, 4,
+ proto_tree_add_text(sattrguard3_tree, tvb, offset, 4,
"check: %s (%u)", check_name, check);
- }
offset += 4;
@@ -4730,9 +4592,7 @@ dissect_sattrguard3(tvbuff_t *tvb, int offset, proto_tree *tree, const char *nam
}
/* now we know, that sattrguard3 is shorter */
- if (sattrguard3_item) {
- proto_item_set_len(sattrguard3_item, offset - old_offset);
- }
+ proto_item_set_len(sattrguard3_item, offset - old_offset);
return offset;
}
@@ -6346,10 +6206,8 @@ static int
dissect_nfs4_lock_owner(tvbuff_t *tvb, int offset, proto_tree *tree)
{
proto_tree *newftree;
- proto_item *fitem;
- fitem = proto_tree_add_text(tree, tvb, offset, 4, "Owner");
- newftree = proto_item_add_subtree(fitem, ett_nfs4_lock_owner);
+ newftree = proto_tree_add_subtree(tree, tvb, offset, 4, ett_nfs4_lock_owner, NULL, "Owner");
offset = dissect_rpc_uint64(tvb, newftree, hf_nfs4_clientid, offset);
offset = dissect_nfsdata(tvb, offset, newftree, hf_nfs_data);
@@ -6416,10 +6274,8 @@ static int
dissect_nfs4_fsid(tvbuff_t *tvb, int offset, proto_tree *tree, const char *name)
{
proto_tree *newftree;
- proto_item *fitem;
- fitem = proto_tree_add_text(tree, tvb, offset, 0, "%s", name);
- newftree = proto_item_add_subtree(fitem, ett_nfs4_fsid);
+ newftree = proto_tree_add_subtree(tree, tvb, offset, 0, ett_nfs4_fsid, NULL, name);
offset = dissect_rpc_uint64(tvb, newftree, hf_nfs4_fsid_major, offset);
offset = dissect_rpc_uint64(tvb, newftree, hf_nfs4_fsid_minor, offset);
return offset;
@@ -6468,7 +6324,8 @@ dissect_nfs_aceflags4(tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_t
proto_item *aceflag_item;
proto_tree *aceflag_tree;
- aceflag_item = proto_tree_add_uint(ace_tree, hf_nfs4_aceflags, tvb, offset, 4, aceflags); proto_item_append_text(aceflag_item, " (");
+ aceflag_item = proto_tree_add_uint(ace_tree, hf_nfs4_aceflags, tvb, offset, 4, aceflags);
+ proto_item_append_text(aceflag_item, " (");
aceflag_tree = proto_item_add_subtree(aceflag_item, ett_nfs4_aceflag);
while (flag_bit && flag_bit <= aceflags) {
@@ -6723,11 +6580,8 @@ dissect_nfs4_fs_location(tvbuff_t *tvb, int offset, packet_info *pinfo _U_,
proto_tree *tree, void *data _U_)
{
proto_tree *newftree;
- proto_item *fitem;
-
- fitem = proto_tree_add_text(tree, tvb, offset, 0, "fs_location4");
- newftree = proto_item_add_subtree(fitem, ett_nfs4_fs_location);
+ newftree = proto_tree_add_subtree(tree, tvb, offset, 0, ett_nfs4_fs_location, NULL, "fs_location4");
offset = dissect_rpc_array(tvb, pinfo, newftree, offset, dissect_nfs4_server, hf_nfs4_server);
offset = dissect_nfs4_pathname(tvb, offset, newftree);
@@ -6741,10 +6595,8 @@ dissect_nfs4_fs_locations(tvbuff_t *tvb, packet_info *pinfo, int offset,
proto_tree *tree, const char *name)
{
proto_tree *newftree;
- proto_item *fitem;
- fitem = proto_tree_add_text(tree, tvb, offset, 0, "%s", name);
- newftree = proto_item_add_subtree(fitem, ett_nfs4_fs_locations);
+ newftree = proto_tree_add_subtree(tree, tvb, offset, 0, ett_nfs4_fs_locations, NULL, name);
offset = dissect_nfs4_pathname(tvb, offset, newftree);
@@ -6782,19 +6634,16 @@ static int
dissect_nfs4_fattr_fh_expire_type(tvbuff_t *tvb, int offset, proto_tree *tree)
{
guint32 expire_type;
- proto_tree *expire_type_tree = NULL;
+ proto_tree *expire_type_tree;
+ proto_item *expire_type_item;
expire_type = tvb_get_ntohl(tvb, offset + 0);
- if (tree)
- {
- proto_item *expire_type_item;
- expire_type_item = proto_tree_add_text(tree, tvb, offset, 4,
+ expire_type_item = proto_tree_add_text(tree, tvb, offset, 4,
"fattr4_fh_expire_type: 0x%08x", expire_type);
- expire_type_tree = proto_item_add_subtree(expire_type_item,
+ expire_type_tree = proto_item_add_subtree(expire_type_item,
ett_nfs4_fattr_fh_expire_type);
- }
if (expire_type_tree)
{
@@ -7707,15 +7556,16 @@ dissect_nfs4_cb_client4(tvbuff_t *tvb, int offset, proto_tree *tree)
{
proto_tree *cb_location;
proto_item *fitem;
- int cbprog;
+ int cbprog, old_offset;
cbprog = tvb_get_ntohl(tvb, offset);
reg_callback(cbprog);
offset = dissect_rpc_uint32(tvb, tree, hf_nfs4_cb_program, offset);
- fitem = proto_tree_add_text(tree, tvb, offset, 0, "cb_location");
+ old_offset = offset;
+ cb_location = proto_tree_add_subtree(tree, tvb, offset, 0, ett_nfs4_clientaddr, &fitem, "cb_location");
- cb_location = proto_item_add_subtree(fitem, ett_nfs4_clientaddr);
offset = dissect_nfs4_clientaddr(tvb, offset, cb_location);
+ proto_item_set_len(fitem, offset - old_offset);
return offset;
}
@@ -7880,13 +7730,11 @@ dissect_nfs4_dirlist(tvbuff_t *tvb, int offset, packet_info *pinfo,
guint32 val_follows;
guint32 name_len;
char *name;
- proto_item *ditem;
proto_tree *dirlist_tree;
proto_item *eitem;
proto_tree *entry_tree;
- ditem = proto_tree_add_text(tree, tvb, offset, 0, "Directory Listing");
- dirlist_tree = proto_item_add_subtree(ditem, ett_nfs4_dirlist);
+ dirlist_tree = proto_tree_add_subtree(tree, tvb, offset, 0, ett_nfs4_dirlist, NULL, "Directory Listing");
while (1)
{
@@ -7946,13 +7794,14 @@ dissect_nfs4_change_info(tvbuff_t *tvb, int offset,
{
proto_tree *newftree;
proto_tree *fitem;
+ int old_offset = offset;
- fitem = proto_tree_add_text(tree, tvb, offset, 0, "%s", name);
- newftree = proto_item_add_subtree(fitem, ett_nfs4_change_info);
+ newftree = proto_tree_add_subtree(tree, tvb, offset, 0, ett_nfs4_change_info, &fitem, name);
offset = dissect_rpc_bool( tvb, newftree, hf_nfs4_change_info_atomic, offset);
offset = dissect_rpc_uint64(tvb, newftree, hf_nfs4_changeid_before, offset);
offset = dissect_rpc_uint64(tvb, newftree, hf_nfs4_changeid_after, offset);
+ proto_item_set_len(fitem, offset - old_offset);
return offset;
}
@@ -8018,15 +7867,13 @@ static int
dissect_nfs4_stateid(tvbuff_t *tvb, int offset, proto_tree *tree, guint16 *hash)
{
proto_item *sh_item;
- proto_tree *newftree = NULL;
+ proto_tree *newftree;
+ proto_item *fitem;
guint16 sid_hash;
guint8 *sidh_array;
+ int old_offset = offset;
- if (tree) {
- proto_item *fitem;
- fitem = proto_tree_add_text(tree, tvb, offset, 4, "stateid");
- newftree = proto_item_add_subtree(fitem, ett_nfs4_stateid);
- }
+ newftree = proto_tree_add_subtree(tree, tvb, offset, 4, ett_nfs4_stateid, &fitem, "stateid");
sidh_array = tvb_get_string_enc(NULL, tvb, offset, 16, ENC_ASCII);
sid_hash = crc16_ccitt(sidh_array, 16);
@@ -8041,6 +7888,8 @@ dissect_nfs4_stateid(tvbuff_t *tvb, int offset, proto_tree *tree, guint16 *hash)
if (hash)
*hash = sid_hash;
+ proto_item_set_len(fitem, offset - old_offset);
+
return offset;
}
@@ -8075,8 +7924,7 @@ dissect_nfs4_state_protect_bitmap(tvbuff_t *tvb, int offset,
proto_tree *tree)
{
guint32 num_bitmaps;
- proto_item *fitem = NULL;
- proto_tree *newftree = NULL;
+ proto_tree *newftree;
guint32 *bitmap = NULL;
guint32 op;
guint32 i;
@@ -8090,12 +7938,10 @@ dissect_nfs4_state_protect_bitmap(tvbuff_t *tvb, int offset,
THROW(ReportedBoundsError);
}
tvb_ensure_bytes_exist(tvb, offset, 4 + num_bitmaps * 4);
- fitem = proto_tree_add_text(tree, tvb, offset, 4 + num_bitmaps * 4,
- "%s", "operation mask");
+ newftree = proto_tree_add_subtree(tree, tvb, offset, 4 + num_bitmaps * 4,
+ ett_nfs4_bitmap, NULL, "operation mask");
offset += 4;
- newftree = proto_item_add_subtree(fitem, ett_nfs4_bitmap);
-
if (num_bitmaps)
bitmap = (guint32 *)wmem_alloc(wmem_packet_scope(), num_bitmaps * sizeof(guint32));
@@ -8595,15 +8441,13 @@ dissect_rpc_serverowner4(tvbuff_t *tvb, int offset, proto_tree *tree)
static int
dissect_rpc_chanattrs4(tvbuff_t *tvb, int offset, proto_tree *tree, const char *name)
{
- proto_item *chan_attrs_item;
proto_tree *chan_attrs_tree;
guint i, count, rdma_ird_len;
rdma_ird_len = tvb_get_ntohl(tvb, offset + 24);
count = 28 + rdma_ird_len * 4;
- chan_attrs_item = proto_tree_add_text(tree, tvb, offset, count, name, count);
- chan_attrs_tree = proto_item_add_subtree(chan_attrs_item, ett_nfs4_chan_attrs);
+ chan_attrs_tree = proto_tree_add_subtree(tree, tvb, offset, count, ett_nfs4_chan_attrs, NULL, name);
offset = dissect_rpc_uint32(tvb, chan_attrs_tree, hf_nfs4_padsize, offset);
offset = dissect_rpc_uint32(tvb, chan_attrs_tree, hf_nfs4_maxreqsize, offset);
@@ -8622,24 +8466,20 @@ dissect_rpc_chanattrs4(tvbuff_t *tvb, int offset, proto_tree *tree, const char *
static int
dissect_rpc_nfs_impl_id4(tvbuff_t *tvb, int offset, proto_tree *tree, const char *name)
{
- proto_item *impl_id_item;
proto_tree *impl_id_tree;
guint i, count;
count = tvb_get_ntohl(tvb, offset);
- impl_id_item = proto_tree_add_text(tree, tvb, offset, 4, name, count);
- impl_id_tree = proto_item_add_subtree(impl_id_item, ett_nfs4_clientowner);
+ impl_id_tree = proto_tree_add_subtree(tree, tvb, offset, 4, ett_nfs4_clientowner, NULL, name);
offset += 4;
for (i = 0; i < count; i++) {
- proto_item *date_item;
proto_tree *date_tree;
offset = dissect_nfs_utf8string(tvb, offset, impl_id_tree, hf_nfs4_nii_domain, NULL);
offset = dissect_nfs_utf8string(tvb, offset, impl_id_tree, hf_nfs4_nii_name, NULL);
- date_item = proto_tree_add_text(impl_id_tree, tvb, offset, 12, "Build timestamp(nii_date)");
- date_tree = proto_item_add_subtree(date_item, ett_nfs4_clientowner);
+ date_tree = proto_tree_add_subtree(impl_id_tree, tvb, offset, 12, ett_nfs4_clientowner, NULL, "Build timestamp(nii_date)");
offset = dissect_nfs4_nfstime(tvb, offset, date_tree);
}
return offset;
@@ -8694,18 +8534,15 @@ dissect_nfs4_layout(tvbuff_t *tvb, int offset, packet_info *pinfo, proto_tree *t
guint fh_num;
guint lo_seg_count;
guint i, lo_seg;
- proto_item *fitem;
- proto_item *fh_fitem;
proto_tree *newtree;
proto_tree *fh_tree;
lo_seg_count = tvb_get_ntohl(tvb, offset);
- fitem = proto_tree_add_text(tree, tvb, offset, 4, "Layout Segment (count: %u)", lo_seg_count);
+ newtree = proto_tree_add_subtree_format(tree, tvb, offset, 4, ett_nfs4_layoutseg, NULL,
+ "Layout Segment (count: %u)", lo_seg_count);
offset += 4;
- newtree = proto_item_add_subtree(fitem, ett_nfs4_layoutseg);
-
for (lo_seg = 0; lo_seg < lo_seg_count; lo_seg++) {
offset = dissect_rpc_uint64(tvb, newtree, hf_nfs4_offset, offset);
offset = dissect_rpc_uint64(tvb, newtree, hf_nfs4_length, offset);
@@ -8732,10 +8569,10 @@ dissect_nfs4_layout(tvbuff_t *tvb, int offset, packet_info *pinfo, proto_tree *t
fh_num = tvb_get_ntohl(tvb, offset); /* Len of FH list */
- fh_fitem = proto_tree_add_text(newtree, tvb, offset, 4, "File Handles (count: %u)", fh_num);
+ fh_tree = proto_tree_add_subtree_format(newtree, tvb, offset, 4,
+ ett_nfs4_layoutseg_fh, NULL, "File Handles (count: %u)", fh_num);
offset += 4;
- fh_tree = proto_item_add_subtree(fh_fitem, ett_nfs4_layoutseg_fh);
for (i = 0; i < fh_num; i++)
offset = dissect_nfs4_fh(tvb, offset, pinfo, fh_tree, "lo_filehandle", NULL, civ);
}
@@ -8918,8 +8755,8 @@ dissect_nfs4_request_op(tvbuff_t *tvb, int offset, packet_info *pinfo, proto_tre
guint32 length;
guint64 lock_length;
guint64 file_offset;
- proto_item *fitem = NULL;
- proto_tree *ftree = NULL;
+ proto_item *fitem;
+ proto_tree *ftree;
proto_tree *newftree = NULL;
nfs4_operation_summary *op_summary;
@@ -8941,9 +8778,7 @@ dissect_nfs4_request_op(tvbuff_t *tvb, int offset, packet_info *pinfo, proto_tre
op_summary = wmem_alloc0_array(wmem_packet_scope(), nfs4_operation_summary, ops);
- if (fitem) {
- ftree = proto_item_add_subtree(fitem, ett_nfs4_request_op);
- }
+ ftree = proto_item_add_subtree(fitem, ett_nfs4_request_op);
if (ops)
proto_item_append_text(proto_tree_get_parent(tree), ", Ops(%d):", ops);
@@ -9267,15 +9102,11 @@ dissect_nfs4_request_op(tvbuff_t *tvb, int offset, packet_info *pinfo, proto_tre
proto_tree *client_tree = NULL;
proto_tree *callback_tree = NULL;
- fitem = proto_tree_add_text(newftree, tvb, offset, 0, "client");
-
- client_tree = proto_item_add_subtree(fitem, ett_nfs4_client_id);
+ client_tree = proto_tree_add_subtree(newftree, tvb, offset, 0, ett_nfs4_client_id, NULL, "client");
offset = dissect_nfs4_client_id(tvb, offset, client_tree);
- fitem = proto_tree_add_text(newftree, tvb, offset, 0, "callback");
- callback_tree = proto_item_add_subtree(fitem,
- ett_nfs4_cb_client);
+ callback_tree = proto_tree_add_subtree(newftree, tvb, offset, 0, ett_nfs4_cb_client, NULL, "callback");
offset = dissect_nfs4_cb_client4(tvb, offset, callback_tree);
@@ -9324,11 +9155,10 @@ dissect_nfs4_request_op(tvbuff_t *tvb, int offset, packet_info *pinfo, proto_tre
case NFS4_OP_EXCHANGE_ID:
{
- proto_tree *eia_clientowner_tree = NULL;
+ proto_tree *eia_clientowner_tree;
proto_tree *eia_flags_tree = NULL;
- fitem = proto_tree_add_text(newftree, tvb, offset, 0, "eia_clientowner");
- eia_clientowner_tree = proto_item_add_subtree(fitem, ett_nfs4_clientowner);
+ eia_clientowner_tree = proto_tree_add_subtree(newftree, tvb, offset, 0, ett_nfs4_clientowner, NULL, "eia_clientowner");
offset = dissect_rpc_uint64(tvb, eia_clientowner_tree, hf_nfs4_verifier, offset);
offset = dissect_nfsdata(tvb, offset, eia_clientowner_tree, hf_nfs_data);
@@ -9564,9 +9394,7 @@ dissect_nfs4_response_op(tvbuff_t *tvb, int offset, packet_info *pinfo, proto_tr
op_summary = wmem_alloc0_array(wmem_packet_scope(), nfs4_operation_summary, ops);
- if (fitem) {
- ftree = proto_item_add_subtree(fitem, ett_nfs4_response_op);
- }
+ ftree = proto_item_add_subtree(fitem, ett_nfs4_response_op);
proto_item_append_text(tree, ", Ops(%d):", ops);
@@ -9773,8 +9601,7 @@ dissect_nfs4_response_op(tvbuff_t *tvb, int offset, packet_info *pinfo, proto_tr
offset = dissect_nfs4_state_protect_r(tvb, offset, newftree);
- fitem = proto_tree_add_text(newftree, tvb, offset, 0, "eir_server_owner");
- eir_server_owner_tree = proto_item_add_subtree(fitem, ett_nfs4_server_owner);
+ eir_server_owner_tree = proto_tree_add_subtree(newftree, tvb, offset, 0, ett_nfs4_server_owner, NULL, "eir_server_owner");
offset = dissect_rpc_serverowner4(tvb, offset, eir_server_owner_tree);
offset = dissect_nfsdata(tvb, offset, newftree, hf_nfs4_serverscope4);
offset = dissect_rpc_nfs_impl_id4(tvb, offset, newftree, "eir_server_impl_id");
@@ -10282,26 +10109,20 @@ static int
dissect_nfs4_cb_referring_calls(tvbuff_t *tvb, int offset, proto_tree *tree)
{
guint num_reflists, num_refcalls, i, j;
- proto_item *rl_item, *rc_item;
proto_tree *rl_tree, *rc_tree;
num_reflists = tvb_get_ntohl(tvb, offset);
- rl_item = proto_tree_add_text(tree, tvb, offset, 4,
- "referring call lists (count: %u)", num_reflists);
+ rl_tree = proto_tree_add_subtree_format(tree, tvb, offset, 4,
+ ett_nfs4_cb_reflists, NULL, "referring call lists (count: %u)", num_reflists);
offset += 4;
- if (num_reflists == 0)
- return offset;
-
- rl_tree = proto_item_add_subtree(rl_item, ett_nfs4_cb_reflists);
for (i = 0; i < num_reflists; i++) {
offset = dissect_nfs4_sessionid(tvb, offset, rl_tree);
num_refcalls = tvb_get_ntohl(tvb, offset);
- rc_item = proto_tree_add_text(rl_tree, tvb, offset, 4,
- "referring calls (count: %u)", num_refcalls);
+ rc_tree = proto_tree_add_subtree_format(rl_tree, tvb, offset, 4,
+ ett_nfs4_cb_refcalls, NULL, "referring calls (count: %u)", num_refcalls);
offset += 4;
for (j = 0; j < num_refcalls; j++) {
- rc_tree = proto_item_add_subtree(rc_item, ett_nfs4_cb_refcalls);
offset = dissect_rpc_uint32(tvb, rc_tree, hf_nfs4_seqid, offset);
offset = dissect_rpc_uint32(tvb, rc_tree, hf_nfs4_slotid, offset);
}
@@ -10342,17 +10163,14 @@ dissect_nfs4_cb_request(tvbuff_t *tvb, int offset, packet_info *pinfo, proto_tre
guint32 ops, ops_counter;
guint opcode;
proto_item *fitem;
- proto_tree *ftree = NULL;
+ proto_tree *ftree;
proto_tree *newftree = NULL;
ops = tvb_get_ntohl(tvb, offset+0);
- fitem = proto_tree_add_text(tree, tvb, offset, 4, "Operations (count: %u)", ops);
+ ftree = proto_tree_add_subtree_format(tree, tvb, offset, 4, ett_nfs4_cb_request_op, NULL, "Operations (count: %u)", ops);
offset += 4;
- if (fitem)
- ftree = proto_item_add_subtree(fitem, ett_nfs4_cb_request_op);
-
for (ops_counter=0; ops_counter<ops; ops_counter++)
{
opcode = tvb_get_ntohl(tvb, offset);
@@ -10438,17 +10256,14 @@ dissect_nfs4_cb_resp_op(tvbuff_t *tvb, int offset, packet_info *pinfo, proto_tre
guint32 ops, ops_counter;
guint32 opcode;
proto_item *fitem;
- proto_tree *ftree = NULL;
+ proto_tree *ftree;
proto_tree *newftree = NULL;
guint32 status;
ops = tvb_get_ntohl(tvb, offset+0);
- fitem = proto_tree_add_text(tree, tvb, offset, 4, "Operations (count: %u)", ops);
+ ftree = proto_tree_add_subtree_format(tree, tvb, offset, 4, ett_nfs4_cb_resop, NULL, "Operations (count: %u)", ops);
offset += 4;
- if (fitem)
- ftree = proto_item_add_subtree(fitem, ett_nfs4_cb_resop);
-
for (ops_counter = 0; ops_counter < ops; ops_counter++)
{
opcode = tvb_get_ntohl(tvb, offset);
diff --git a/epan/dissectors/packet-nfsacl.c b/epan/dissectors/packet-nfsacl.c
index 140d660a5b..ba28de697d 100644
--- a/epan/dissectors/packet-nfsacl.c
+++ b/epan/dissectors/packet-nfsacl.c
@@ -164,20 +164,15 @@ dissect_nfsacl_secattr(tvbuff_t *tvb, int offset, packet_info *pinfo _U_,
{
guint32 aclcnt, dfaclcnt;
guint32 i;
- proto_item *entry_item = NULL;
- proto_tree *entry_tree = NULL;
+ proto_tree *entry_tree;
offset = dissect_nfsacl_mask(tvb, offset, tree);
offset = dissect_rpc_uint32(tvb, tree, hf_nfsacl_aclcnt, offset);
aclcnt = tvb_get_ntohl(tvb, offset);
- entry_item = proto_tree_add_text(tree, tvb, offset, 4,
- "Total ACL entries: %d", aclcnt);
-
- if (entry_item)
- entry_tree = proto_item_add_subtree(entry_item,
- ett_nfsacl_aclent_entries);
+ entry_tree = proto_tree_add_subtree_format(tree, tvb, offset, 4,
+ ett_nfsacl_aclent_entries, NULL, "Total ACL entries: %d", aclcnt);
offset += 4;
@@ -193,12 +188,8 @@ dissect_nfsacl_secattr(tvbuff_t *tvb, int offset, packet_info *pinfo _U_,
dfaclcnt = tvb_get_ntohl(tvb, offset);
- entry_item = proto_tree_add_text(tree, tvb, offset, 4,
- "Total default ACL entries: %d", dfaclcnt);
-
- if (entry_item)
- entry_tree = proto_item_add_subtree(entry_item,
- ett_nfsacl_aclent_entries);
+ entry_tree = proto_tree_add_subtree_format(tree, tvb, offset, 4,
+ ett_nfsacl_aclent_entries, NULL, "Total default ACL entries: %d", dfaclcnt);
offset += 4;
@@ -411,33 +402,26 @@ dissect_nfsacl3_getacl_reply(tvbuff_t *tvb, int offset, packet_info *pinfo _U_,
proto_tree *tree, void* data _U_)
{
guint32 status;
- proto_item *entry_item = NULL;
- proto_tree *entry_tree = NULL;
+ proto_item *entry_item;
+ proto_tree *entry_tree;
status = tvb_get_ntohl(tvb, offset + 0);
- if (tree)
- proto_tree_add_uint(tree, hf_nfs_status, tvb, offset + 0, 4,
+ proto_tree_add_uint(tree, hf_nfs_status, tvb, offset + 0, 4,
status);
offset += 4;
- if (tree)
- {
- entry_item = proto_tree_add_item(tree, hf_nfsacl_entry, tvb,
+ entry_item = proto_tree_add_item(tree, hf_nfsacl_entry, tvb,
offset + 0, -1, ENC_NA);
- if (entry_item)
- entry_tree = proto_item_add_subtree(entry_item, ett_nfsacl_entry);
- }
+ entry_tree = proto_item_add_subtree(entry_item, ett_nfsacl_entry);
- if (entry_tree)
- offset = dissect_nfs3_post_op_attr(tvb, offset, pinfo, entry_tree, "attr");
+ offset = dissect_nfs3_post_op_attr(tvb, offset, pinfo, entry_tree, "attr");
if (status != ACL3_OK)
return offset;
- if (entry_tree)
- offset = dissect_nfsacl_secattr(tvb, offset, pinfo, entry_tree);
+ offset = dissect_nfsacl_secattr(tvb, offset, pinfo, entry_tree);
return offset;
}
@@ -447,22 +431,16 @@ dissect_nfsacl3_setacl_call(tvbuff_t *tvb, int offset, packet_info *pinfo _U_,
proto_tree *tree, void* data)
{
- proto_item *acl_item = NULL;
- proto_tree *acl_tree = NULL;
+ proto_item *acl_item;
+ proto_tree *acl_tree;
offset = dissect_nfs3_fh(tvb, offset, pinfo, tree, "fhandle", NULL, (rpc_call_info_value*)data);
- if (tree)
- {
- acl_item = proto_tree_add_item(tree, hf_nfsacl_entry, tvb, offset + 0,
+ acl_item = proto_tree_add_item(tree, hf_nfsacl_entry, tvb, offset + 0,
-1, ENC_NA);
+ acl_tree = proto_item_add_subtree(acl_item, ett_nfsacl_entry);
- if (acl_item)
- acl_tree = proto_item_add_subtree(acl_item, ett_nfsacl_entry);
- }
-
- if (acl_tree)
- offset = dissect_nfsacl_secattr(tvb, offset, pinfo, acl_tree);
+ offset = dissect_nfsacl_secattr(tvb, offset, pinfo, acl_tree);
return offset;
}
diff --git a/epan/dissectors/packet-nhrp.c b/epan/dissectors/packet-nhrp.c
index d9bc16dadf..16222359f2 100644
--- a/epan/dissectors/packet-nhrp.c
+++ b/epan/dissectors/packet-nhrp.c
@@ -298,7 +298,6 @@ static void dissect_nhrp_hdr(tvbuff_t *tvb,
guint total_len = tvb_reported_length(tvb);
guint16 ipcsum, rx_chksum;
- proto_item *nhrp_tree_item;
proto_tree *nhrp_tree;
proto_item *shtl_tree_item;
proto_tree *shtl_tree;
@@ -306,8 +305,7 @@ static void dissect_nhrp_hdr(tvbuff_t *tvb,
proto_tree *sstl_tree;
proto_item *ti;
- nhrp_tree_item = proto_tree_add_text(tree, tvb, offset, 20, "NHRP Fixed Header");
- nhrp_tree = proto_item_add_subtree(nhrp_tree_item, ett_nhrp_hdr);
+ nhrp_tree = proto_tree_add_subtree(tree, tvb, offset, 20, ett_nhrp_hdr, NULL, "NHRP Fixed Header");
hdr->ar_pktsz = tvb_get_ntohs(tvb, 10);
if (total_len > hdr->ar_pktsz) {
@@ -472,8 +470,7 @@ static void dissect_cie_list(tvbuff_t *tvb,
guint cli_saddr_len = tvb_get_guint8(tvb, offset + 9);
guint cli_prot_len = tvb_get_guint8(tvb, offset + 10);
guint cie_len = 12 + cli_addr_len + cli_saddr_len + cli_prot_len;
- proto_item *cie_tree_item = proto_tree_add_text(tree, tvb, offset, cie_len, "Client Information Entry");
- proto_tree *cie_tree = proto_item_add_subtree(cie_tree_item, ett_nhrp_cie);
+ proto_tree *cie_tree = proto_tree_add_subtree(tree, tvb, offset, cie_len, ett_nhrp_cie, NULL, "Client Information Entry");
if (isReq) {
proto_tree_add_item(cie_tree, hf_nhrp_code, tvb, offset, 1, ENC_BIG_ENDIAN);
@@ -587,7 +584,6 @@ static void dissect_nhrp_mand(tvbuff_t *tvb,
gboolean isErr = FALSE;
gboolean isInd = FALSE;
- proto_item *nhrp_tree_item;
proto_tree *nhrp_tree;
tvb_ensure_bytes_exist(tvb, offset, mandLen);
@@ -611,8 +607,7 @@ static void dissect_nhrp_mand(tvbuff_t *tvb,
isInd = TRUE;
break;
}
- nhrp_tree_item = proto_tree_add_text(tree, tvb, offset, mandLen, "NHRP Mandatory Part");
- nhrp_tree = proto_item_add_subtree(nhrp_tree_item, ett_nhrp_mand);
+ nhrp_tree = proto_tree_add_subtree(tree, tvb, offset, mandLen, ett_nhrp_mand, NULL, "NHRP Mandatory Part");
*srcLen = tvb_get_guint8(tvb, offset);
proto_tree_add_item(nhrp_tree, hf_nhrp_src_proto_len, tvb, offset, 1, ENC_BIG_ENDIAN);
@@ -728,8 +723,7 @@ static void dissect_nhrp_mand(tvbuff_t *tvb,
if (isInd) {
gboolean save_in_error_pkt;
gint pkt_len = mandEnd - offset;
- proto_item *ind_tree_item = proto_tree_add_text(tree, tvb, offset, pkt_len, "Packet Causing Indication");
- proto_tree *ind_tree = proto_item_add_subtree(ind_tree_item, ett_nhrp_indication);
+ proto_tree *ind_tree = proto_tree_add_subtree(tree, tvb, offset, pkt_len, ett_nhrp_indication, NULL, "Packet Causing Indication");
gboolean dissected;
tvbuff_t *sub_tvb;
@@ -837,7 +831,6 @@ static void dissect_nhrp_ext(tvbuff_t *tvb,
while ((offset + 4) <= extEnd)
{
- proto_item *nhrp_tree_item;
proto_tree *nhrp_tree;
gint extTypeC = tvb_get_ntohs(tvb, offset);
gint extType = extTypeC & 0x3FFF;
@@ -846,15 +839,14 @@ static void dissect_nhrp_ext(tvbuff_t *tvb,
if ((extType == NHRP_EXT_NAT_ADDRESS) && (len == 8)) {
/* Assume it's not really a Cisco NAT extension, but a device
* capabilities extension instead (see RFC 2735). */
- nhrp_tree_item = proto_tree_add_text(tree, tvb, offset,
- len + 4, "Device Capabilities Extension");
+ nhrp_tree = proto_tree_add_subtree(tree, tvb, offset,
+ len + 4, ett_nhrp_ext, NULL, "Device Capabilities Extension");
}
else {
- nhrp_tree_item = proto_tree_add_text(tree, tvb, offset,
- len + 4, "%s",
+ nhrp_tree = proto_tree_add_subtree(tree, tvb, offset,
+ len + 4, ett_nhrp_ext, NULL,
val_to_str(extType, ext_type_vals, "Unknown (%u)"));
}
- nhrp_tree = proto_item_add_subtree(nhrp_tree_item, ett_nhrp_ext);
proto_tree_add_boolean(nhrp_tree, hf_nhrp_ext_C, tvb, offset, 2, extTypeC);
proto_tree_add_item(nhrp_tree, hf_nhrp_ext_type, tvb, offset, 2, ENC_BIG_ENDIAN);
offset += 2;
@@ -867,16 +859,14 @@ static void dissect_nhrp_ext(tvbuff_t *tvb,
if ((extType == NHRP_EXT_NAT_ADDRESS) && (len == 8)) {
/* Assume it's not really a Cisco NAT extension, but a device
* capabilities extension instead (see RFC 2735). */
- proto_item *devcap_item;
proto_tree *devcap_tree;
proto_item *cap_item;
proto_tree *cap_tree;
- devcap_item = proto_tree_add_text(nhrp_tree, tvb, offset, len,
- "Extension Data: Src is %sVPN-aware; Dst is %sVPN-aware",
+ devcap_tree = proto_tree_add_subtree_format(nhrp_tree, tvb, offset, len,
+ ett_nhrp_devcap_ext, NULL, "Extension Data: Src is %sVPN-aware; Dst is %sVPN-aware",
tvb_get_ntohl(tvb, offset) & 1 ? "" : "non-",
tvb_get_ntohl(tvb, offset + 4) & 1 ? "" : "non-");
- devcap_tree = proto_item_add_subtree(devcap_item, ett_nhrp_devcap_ext);
cap_item = proto_tree_add_item(devcap_tree, hf_nhrp_devcap_ext_srccap, tvb, offset, 4, ENC_BIG_ENDIAN);
cap_tree = proto_item_add_subtree(cap_item, ett_nhrp_devcap_ext_srccap);
proto_tree_add_item(cap_tree, hf_nhrp_devcap_ext_srccap_V, tvb, offset, 4, ENC_BIG_ENDIAN);
@@ -905,13 +895,11 @@ static void dissect_nhrp_ext(tvbuff_t *tvb,
expert_add_info_format(pinfo, ti, &ei_nhrp_ext_malformed, "Incomplete Authentication Extension");
}
else {
- proto_item *auth_item;
proto_tree *auth_tree;
- auth_item = proto_tree_add_text(nhrp_tree, tvb, offset, len,
- "Extension Data: SPI=%u: Data=%s", tvb_get_ntohs(tvb, offset + 2),
+ auth_tree = proto_tree_add_subtree_format(nhrp_tree, tvb, offset, len,
+ ett_nhrp_auth_ext, NULL, "Extension Data: SPI=%u: Data=%s", tvb_get_ntohs(tvb, offset + 2),
tvb_bytes_to_ep_str(tvb, offset + 4, len - 4));
- auth_tree = proto_item_add_subtree(auth_item, ett_nhrp_auth_ext);
proto_tree_add_item(auth_tree, hf_nhrp_auth_ext_reserved, tvb, offset, 2, ENC_BIG_ENDIAN);
proto_tree_add_item(auth_tree, hf_nhrp_auth_ext_spi, tvb, offset + 2, 2, ENC_BIG_ENDIAN);
if (srcLen == 4)
@@ -936,15 +924,13 @@ static void dissect_nhrp_ext(tvbuff_t *tvb,
expert_add_info_format(pinfo, ti, &ei_nhrp_ext_malformed, "Incomplete Vendor-Private Extension");
}
else {
- proto_item *vendor_item;
proto_tree *vendor_tree;
gchar manuf[3];
tvb_memcpy(tvb, manuf, offset, 3);
- vendor_item = proto_tree_add_text(nhrp_tree, tvb, offset, len,
- "Extension Data: Vendor ID=%s, Data=%s", get_manuf_name(manuf),
+ vendor_tree = proto_tree_add_subtree_format(nhrp_tree, tvb, offset, len,
+ ett_nhrp_vendor_ext, NULL, "Extension Data: Vendor ID=%s, Data=%s", get_manuf_name(manuf),
tvb_bytes_to_ep_str(tvb, offset + 3, len - 3));
- vendor_tree = proto_item_add_subtree(vendor_item, ett_nhrp_vendor_ext);
proto_tree_add_bytes_format_value(vendor_tree, hf_nhrp_vendor_ext_id, tvb,
offset, 3, manuf, "%s", get_manuf_name(manuf));
if (len > 3) {
diff --git a/epan/dissectors/packet-nlsp.c b/epan/dissectors/packet-nlsp.c
index 00585a1c72..bfe0b7b0ec 100644
--- a/epan/dissectors/packet-nlsp.c
+++ b/epan/dissectors/packet-nlsp.c
@@ -191,7 +191,6 @@ nlsp_dissect_clvs(tvbuff_t *tvb, proto_tree *tree, int offset,
guint8 code;
guint8 length;
int q;
- proto_item *ti;
proto_tree *clv_tree;
while ( len > 0 ) {
@@ -218,34 +217,16 @@ nlsp_dissect_clvs(tvbuff_t *tvb, proto_tree *tree, int offset,
q++;
}
if ( opts[q].dissect ) {
- if (tree) {
- /* adjust by 2 for code/len octets */
- ti = proto_tree_add_text(tree, tvb, offset - 2,
- length + 2, "%s (%u)",
+ /* adjust by 2 for code/len octets */
+ clv_tree = proto_tree_add_subtree_format(tree, tvb, offset - 2,
+ length + 2, *opts[q].tree_id, NULL, "%s (%u)",
opts[q].tree_text, length );
- clv_tree = proto_item_add_subtree(ti,
- *opts[q].tree_id );
- } else {
- clv_tree = NULL;
- }
opts[q].dissect(tvb, clv_tree, offset,
length);
} else {
- if (tree) {
-#if 0 /* XXX: ?? */
- ti = proto_tree_add_text(tree, tvb, offset - 2,
+ proto_tree_add_text(tree, tvb, offset - 2,
length + 2, "Unknown code %u (%u)",
code, length);
- clv_tree = proto_item_add_subtree(ti,
- unknown_tree_id );
- } else {
- clv_tree = NULL;
-#else
- proto_tree_add_text(tree, tvb, offset - 2,
- length + 2, "Unknown code %u (%u)",
- code, length);
-#endif
- }
}
offset += length;
len -= length;
@@ -1104,7 +1085,7 @@ static void
dissect_csnp_lsp_entries(tvbuff_t *tvb, proto_tree *tree, int offset,
int length)
{
- proto_tree *subtree,*ti;
+ proto_tree *subtree;
while (length > 0) {
if (length < 16) {
@@ -1113,15 +1094,13 @@ dissect_csnp_lsp_entries(tvbuff_t *tvb, proto_tree *tree, int offset,
return;
}
- ti = proto_tree_add_text(tree, tvb, offset, 16,
- "LSP-ID: %s, Sequence: 0x%08x, Lifetime: %5us, Checksum: 0x%04x",
+ subtree = proto_tree_add_subtree_format(tree, tvb, offset, 16,
+ ett_nlsp_csnp_lsp_entry, NULL, "LSP-ID: %s, Sequence: 0x%08x, Lifetime: %5us, Checksum: 0x%04x",
tvb_ether_to_str(tvb, offset+2), /* XXX - rest of system ID */
tvb_get_ntohl(tvb, offset+10),
tvb_get_ntohs(tvb, offset),
tvb_get_ntohs(tvb, offset+14));
- subtree = proto_item_add_subtree(ti, ett_nlsp_csnp_lsp_entry);
-
proto_tree_add_text(subtree, tvb, offset+2, 6,
"LSP ID source ID: %s",
tvb_ether_to_str(tvb, offset+2));
@@ -1153,7 +1132,7 @@ static void
dissect_psnp_lsp_entries(tvbuff_t *tvb, proto_tree *tree, int offset,
int length)
{
- proto_tree *subtree,*ti;
+ proto_tree *subtree;
while (length > 0) {
if (length < 16) {
@@ -1162,15 +1141,13 @@ dissect_psnp_lsp_entries(tvbuff_t *tvb, proto_tree *tree, int offset,
return;
}
- ti = proto_tree_add_text(tree, tvb, offset, 16,
- "LSP-ID: %s, Sequence: 0x%08x, Lifetime: %5us, Checksum: 0x%04x",
+ subtree = proto_tree_add_subtree_format(tree, tvb, offset, 16,
+ ett_nlsp_psnp_lsp_entry, NULL, "LSP-ID: %s, Sequence: 0x%08x, Lifetime: %5us, Checksum: 0x%04x",
tvb_ether_to_str(tvb, offset+2), /* XXX - rest of system ID */
tvb_get_ntohl(tvb, offset+10),
tvb_get_ntohs(tvb, offset),
tvb_get_ntohs(tvb, offset+14));
- subtree = proto_item_add_subtree(ti, ett_nlsp_psnp_lsp_entry);
-
proto_tree_add_text(subtree, tvb, offset+2, 6,
"LSP ID source ID: %s",
tvb_ether_to_str(tvb, offset+2));
diff --git a/epan/dissectors/packet-noe.c b/epan/dissectors/packet-noe.c
index ffd8b96e45..ad695f20e5 100644
--- a/epan/dissectors/packet-noe.c
+++ b/epan/dissectors/packet-noe.c
@@ -938,19 +938,17 @@ static void decode_tlv(proto_tree *tree,
guint offset,
guint length)
{
- proto_item *property_item;
proto_tree *property_tree;
guint8 property_type;
guint16 property_length;
/* guint64 property_index;*/
/* add text to the frame tree */
- property_item = proto_tree_add_text(tree,
+ property_tree = proto_tree_add_subtree(tree,
tvb,
offset,
- length,
+ length, ett_body, NULL,
"NOE Message Body");
- property_tree = proto_item_add_subtree(property_item, ett_body);
while(length > 0)
{
@@ -961,7 +959,7 @@ static void decode_tlv(proto_tree *tree,
if (property_type >= P_ARRAY)
{
- proto_tree_add_item(property_item, hf_noe_aindx, tvb, offset, 1, ENC_NA);
+ proto_tree_add_item(property_tree, hf_noe_aindx, tvb, offset, 1, ENC_NA);
offset += 1;
length -= 1;
}
@@ -1030,17 +1028,15 @@ static void decode_getproperty_tlv(proto_tree *tree,
guint offset,
guint length)
{
- proto_item *body_item;
proto_tree *body_tree;
guint8 body_type;
/* add text to the frame tree */
- body_item = proto_tree_add_text(tree,
+ body_tree = proto_tree_add_subtree(tree,
tvb,
offset,
- length,
+ length, ett_property, NULL,
"NOE Message Body");
- body_tree = proto_item_add_subtree(body_item, ett_property);
while(length > 0)
{
@@ -1052,7 +1048,7 @@ static void decode_getproperty_tlv(proto_tree *tree,
if (body_type >= P_ARRAY)
{
- proto_tree_add_item(body_item, hf_noe_aindx, tvb, offset, 1, ENC_NA);
+ proto_tree_add_item(body_tree, hf_noe_aindx, tvb, offset, 1, ENC_NA);
offset += 1;
length -= 1;
}
diff --git a/epan/dissectors/packet-nsip.c b/epan/dissectors/packet-nsip.c
index 928c0d4f5f..88377863c8 100644
--- a/epan/dissectors/packet-nsip.c
+++ b/epan/dissectors/packet-nsip.c
@@ -383,13 +383,12 @@ decode_ip_element(nsip_ip_element_info_t *element, build_info_t *bi, proto_tree
guint16 udp_port;
guint32 ip4_addr;
struct e_in6_addr ip6_addr;
- proto_item *tf = NULL;
- proto_tree *field_tree = NULL;
+ proto_item *tf;
+ proto_tree *field_tree;
+ field_tree = proto_tree_add_subtree(element_tree, bi->tvb, bi->offset,
+ element->total_length, ett_nsip_ip_element, &tf, "IP Element");
if (bi->nsip_tree) {
- tf = proto_tree_add_text(element_tree, bi->tvb, bi->offset,
- element->total_length, "IP Element");
- field_tree = proto_item_add_subtree(tf, ett_nsip_ip_element);
/* IP address */
switch (element->version) {
@@ -448,11 +447,10 @@ decode_ip_elements(nsip_ip_element_info_t *element, nsip_ie_t *ie, build_info_t
proto_item *tf;
proto_tree *field_tree;
- tf = proto_tree_add_text(bi->nsip_tree, bi->tvb, ie_start_offset,
- ie->total_length,
+ field_tree = proto_tree_add_subtree_format(bi->nsip_tree, bi->tvb, ie_start_offset,
+ ie->total_length, ett_nsip_ip_element_list, &tf,
"List of IP%u Elements (%u Elements)",
element->version, num_elements);
- field_tree = proto_item_add_subtree(tf, ett_nsip_ip_element_list);
for (i = 0; i < num_elements; i++) {
decode_ip_element(element, bi, field_tree);
@@ -505,17 +503,15 @@ decode_iei_num_ip6_endpoints(nsip_ie_t *ie, build_info_t *bi, int ie_start_offse
static void
decode_iei_reset_flag(nsip_ie_t *ie, build_info_t *bi, int ie_start_offset) {
guint8 flag;
- proto_item *tf;
proto_tree *field_tree;
flag = tvb_get_guint8(bi->tvb, bi->offset);
if (bi->nsip_tree) {
- tf = proto_tree_add_text(bi->nsip_tree, bi->tvb, ie_start_offset,
- ie->total_length,
+ field_tree = proto_tree_add_subtree_format(bi->nsip_tree, bi->tvb, ie_start_offset,
+ ie->total_length, ett_nsip_reset_flag, NULL,
"Reset Flag: %#02x", flag);
- field_tree = proto_item_add_subtree(tf, ett_nsip_reset_flag);
proto_tree_add_boolean(field_tree, hf_nsip_reset_flag, bi->tvb,
bi->offset, 1,
flag & NSIP_MASK_RESET_FLAG);
@@ -575,17 +571,15 @@ decode_iei_transaction_id(nsip_ie_t *ie, build_info_t *bi, int ie_start_offset)
static void
decode_iei_end_flag(nsip_ie_t *ie, build_info_t *bi, int ie_start_offset) {
guint8 flag;
- proto_item *tf;
proto_tree *field_tree;
if (bi->nsip_tree) {
flag = tvb_get_guint8(bi->tvb, bi->offset);
- tf = proto_tree_add_text(bi->nsip_tree, bi->tvb, ie_start_offset,
- ie->total_length,
+ field_tree = proto_tree_add_subtree_format(bi->nsip_tree, bi->tvb, ie_start_offset,
+ ie->total_length, ett_nsip_end_flag, NULL,
"End Flag: %#02x", flag);
- field_tree = proto_item_add_subtree(tf, ett_nsip_end_flag);
proto_tree_add_boolean(field_tree, hf_nsip_end_flag, bi->tvb,
bi->offset, 1,
flag & NSIP_MASK_END_FLAG);
@@ -602,17 +596,15 @@ decode_iei_end_flag(nsip_ie_t *ie, build_info_t *bi, int ie_start_offset) {
static void
decode_iei_control_bits(nsip_ie_t *ie, build_info_t *bi, int ie_start_offset) {
guint8 control_bits;
- proto_item *tf;
proto_tree *field_tree;
control_bits = tvb_get_guint8(bi->tvb, bi->offset);
if (bi->nsip_tree) {
- tf = proto_tree_add_text(bi->nsip_tree, bi->tvb, ie_start_offset,
- ie->total_length,
+ field_tree = proto_tree_add_subtree_format(bi->nsip_tree, bi->tvb, ie_start_offset,
+ ie->total_length, ett_nsip_control_bits, NULL,
"NS SDU Control bits: %#02x", control_bits);
- field_tree = proto_item_add_subtree(tf, ett_nsip_control_bits);
proto_tree_add_boolean(field_tree, hf_nsip_control_bits_r, bi->tvb,
bi->offset, 1,
control_bits & NSIP_MASK_CONTROL_BITS_R);
diff --git a/epan/dissectors/packet-nstrace.c b/epan/dissectors/packet-nstrace.c
index f8b92b8a88..ca0daa24b8 100644
--- a/epan/dissectors/packet-nstrace.c
+++ b/epan/dissectors/packet-nstrace.c
@@ -157,7 +157,6 @@ dissect_nstrace(tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree)
guint8 flagoffset, flagval;
guint8 src_vmname_len = 0, dst_vmname_len = 0;
guint8 variable_ns_len = 0;
- guint flagval32;
wmem_strbuf_append(flags_strbuf, "None");
@@ -179,9 +178,7 @@ dissect_nstrace(tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree)
case NSPR_HEADER_VERSION300:
case NSPR_HEADER_VERSION206:
flagoffset = pnstr->ns_activity_offset;
- flagval32 = tvb_get_letohl(tvb, flagoffset);
- flagitem = proto_tree_add_uint_format(ns_tree, hf_ns_activity, tvb, flagoffset, 4, flagval32,
- "Activity Flags: 0x%04x", flagval32);
+ flagitem = proto_tree_add_item(ns_tree, hf_ns_activity, tvb, flagoffset, 4, ENC_LITTLE_ENDIAN);
flagtree = proto_item_add_subtree(flagitem, ett_ns_activity_flags);
proto_tree_add_item(flagtree, hf_ns_activity_perf_collection, tvb, flagoffset, 4, ENC_LITTLE_ENDIAN);
proto_tree_add_item(flagtree, hf_ns_activity_pcb_zombie, tvb, flagoffset, 4, ENC_LITTLE_ENDIAN);
@@ -374,7 +371,7 @@ proto_register_ns(void)
},
{ &hf_ns_activity,
- { "NetScaler Activity", "nstrace.activity",
+ { "Activity Flags", "nstrace.activity",
FT_UINT32, BASE_HEX, NULL, 0x0,
NULL, HFILL}
},
diff --git a/epan/dissectors/packet-ntlmssp.c b/epan/dissectors/packet-ntlmssp.c
index 1e7d154e31..726ed3dde9 100644
--- a/epan/dissectors/packet-ntlmssp.c
+++ b/epan/dissectors/packet-ntlmssp.c
@@ -1295,10 +1295,9 @@ dissect_ntlmssp_target_info_list(tvbuff_t *tvb, packet_info *pinfo, proto_tree *
content_offset = len_offset + 2;
item_length = content_length + 4;
- target_info_tf = proto_tree_add_text(tree, tvb, item_offset, item_length, "Attribute: %s",
- val_to_str_ext(item_type, &ntlm_name_types_ext, "Unknown (%d)"));
+ target_info_tree = proto_tree_add_subtree_format(tree, tvb, item_offset, item_length, *tif_p->ett, &target_info_tf,
+ "Attribute: %s", val_to_str_ext(item_type, &ntlm_name_types_ext, "Unknown (%d)"));
- target_info_tree = proto_item_add_subtree (target_info_tf, *tif_p->ett);
proto_tree_add_item (target_info_tree, *tif_p->hf_item_type, tvb, type_offset, 2, ENC_LITTLE_ENDIAN);
proto_tree_add_item (target_info_tree, *tif_p->hf_item_length, tvb, len_offset, 2, ENC_LITTLE_ENDIAN);
@@ -2241,7 +2240,6 @@ decrypt_verifier(tvbuff_t *tvb, int offset, guint32 encrypted_block_length,
packet_info *pinfo, proto_tree *tree, gpointer key)
{
proto_tree *decr_tree;
- proto_item *tf;
conversation_t *conversation;
guint8* sign_key;
rc4_state_struct *rc4_state;
@@ -2368,11 +2366,11 @@ decrypt_verifier(tvbuff_t *tvb, int offset, guint32 encrypted_block_length,
"Decrypted NTLMSSP Verifier");
/* Show the decrypted payload in the tree */
- tf = proto_tree_add_text(tree, decr_tvb, 0, -1,
+ decr_tree = proto_tree_add_subtree_format(tree, decr_tvb, 0, -1,
+ ett_ntlmssp, NULL,
"Decrypted Verifier (%d byte%s)",
encrypted_block_length,
plurality(encrypted_block_length, "", "s"));
- decr_tree = proto_item_add_subtree (tf, ett_ntlmssp);
if (( conv_ntlmssp_info->flags & NTLMSSP_NEGOTIATE_EXTENDED_SECURITY)) {
proto_tree_add_item (decr_tree, hf_ntlmssp_verf_hmacmd5,