diff -up wireshark-1.4.6/epan/dissectors/packet-nfs.c.orig wireshark-1.4.6/epan/dissectors/packet-nfs.c --- wireshark-1.4.6/epan/dissectors/packet-nfs.c.orig 2011-04-18 14:42:51.000000000 -0400 +++ wireshark-1.4.6/epan/dissectors/packet-nfs.c 2011-05-19 14:22:55.375762000 -0400 @@ -8793,12 +8793,13 @@ dissect_nfs_argop4(tvbuff_t *tvb, int of ftree = proto_item_add_subtree(fitem, ett_nfs_argop4); } + proto_item_append_text(tree, ", Ops(%d):", ops); + for (ops_counter=0; ops_countercinfo, COL_INFO)) { - col_append_fstr(pinfo->cinfo, COL_INFO, "%c%s", - ops_counter==0?' ':';', + col_append_fstr(pinfo->cinfo, COL_INFO, " %s", val_to_str(opcode, names_nfsv4_operation, "Unknown")); } @@ -8821,6 +8822,8 @@ dissect_nfs_argop4(tvbuff_t *tvb, int of } else { break; } + proto_item_append_text(tree, " %s", + val_to_str(opcode, names_nfsv4_operation, "Unknown")); switch(opcode) { @@ -9225,7 +9228,7 @@ dissect_nfs4_compound_call(tvbuff_t *tvb char *tag=NULL; offset = dissect_nfs_utf8string(tvb, offset, tree, hf_nfs_tag4, &tag); - if (check_col(pinfo->cinfo, COL_INFO)) { + if (check_col(pinfo->cinfo, COL_INFO) && strcmp(tag, "")) { col_append_fstr(pinfo->cinfo, COL_INFO," %s", tag); } @@ -9287,6 +9290,7 @@ dissect_nfs_resop4(tvbuff_t *tvb, int of if (fitem) { ftree = proto_item_add_subtree(fitem, ett_nfs_resop4); } + proto_item_append_text(tree, ", Ops(%d):", ops); for (ops_counter = 0; ops_counter < ops; ops_counter++) { @@ -9297,11 +9301,6 @@ dissect_nfs_resop4(tvbuff_t *tvb, int of (opcode != NFS4_OP_ILLEGAL)) break; - if (check_col(pinfo->cinfo, COL_INFO)) { - col_append_fstr(pinfo->cinfo, COL_INFO, "%c%s", - ops_counter==0?' ':';', - val_to_str(opcode, names_nfsv4_operation, "Unknown")); - } fitem = proto_tree_add_uint(ftree, hf_nfs_resop4, tvb, offset, 4, opcode); @@ -9319,6 +9318,22 @@ dissect_nfs_resop4(tvbuff_t *tvb, int of offset = dissect_nfs_nfsstat4(tvb, offset, newftree, &status); + if (status != NFS4_OK) { + if (check_col(pinfo->cinfo, COL_INFO)) { + col_append_fstr(pinfo->cinfo, COL_INFO, " %s(%d)", + val_to_str(opcode, names_nfsv4_operation, "Unknown"), + status); + } + proto_item_append_text(tree, " %s(%d)", + val_to_str(opcode, names_nfsv4_operation, "Unknown"), status); + } else { + if (check_col(pinfo->cinfo, COL_INFO)) { + col_append_fstr(pinfo->cinfo, COL_INFO, " %s", + val_to_str(opcode, names_nfsv4_operation, "Unknown")); + } + proto_item_append_text(tree, " %s", + val_to_str(opcode, names_nfsv4_operation, "Unknown")); + } /* * With the exception of NFS4_OP_LOCK, NFS4_OP_LOCKT, and * NFS4_OP_SETATTR, all other ops do *not* return data with the @@ -9569,7 +9584,7 @@ dissect_nfs4_compound_reply(tvbuff_t *tv offset = dissect_nfs_nfsstat4(tvb, offset, tree, &status); offset = dissect_nfs_utf8string(tvb, offset, tree, hf_nfs_tag4, &tag); - if (check_col(pinfo->cinfo, COL_INFO)) { + if (check_col(pinfo->cinfo, COL_INFO) && strcmp(tag, "")) { col_append_fstr(pinfo->cinfo, COL_INFO," %s", tag); } @@ -9663,14 +9678,14 @@ static const value_string nfsv3_proc_val static const vsff nfs4_proc[] = { { 0, "NULL", dissect_nfs3_null_call, dissect_nfs3_null_reply }, - { 1, "COMPOUND", + { 1, "COMP", dissect_nfs4_compound_call, dissect_nfs4_compound_reply }, { 0, NULL, NULL, NULL } }; static const value_string nfsv4_proc_vals[] = { { 0, "NULL" }, - { 1, "COMPOUND" }, + { 1, "COMP" }, { 0, NULL } }; @@ -9944,7 +9959,7 @@ dissect_nfs_cb_argop(tvbuff_t *tvb, int { opcode = tvb_get_ntohl(tvb, offset); if (check_col(pinfo->cinfo, COL_INFO)) - col_append_fstr(pinfo->cinfo, COL_INFO, "%c%s", ops_counter==0?' ':';', + col_append_fstr(pinfo->cinfo, COL_INFO, " %s", val_to_str(opcode, names_nfs_cb_operation, "Unknown")); fitem = proto_tree_add_uint(ftree, hf_nfs_cb_argop, tvb, offset, 4, opcode); @@ -10047,7 +10062,7 @@ dissect_nfs_cb_resop(tvbuff_t *tvb, int break; if (check_col(pinfo->cinfo, COL_INFO)) - col_append_fstr(pinfo->cinfo, COL_INFO, "%c%s", ops_counter==0?' ':';', + col_append_fstr(pinfo->cinfo, COL_INFO, " %s", val_to_str(opcode, names_nfs_cb_operation, "Unknown")); fitem = proto_tree_add_uint(ftree, hf_nfs_cb_resop, tvb, offset, 4, opcode);