wireshark/wireshark-nfsv41-cleanup.patch
Steve Dickson 35ded6ace8 - Improved the NFS4.1 patcket dissectors
Signed-off-by: Steve Dickson <steved@redhat.com>
2011-05-19 14:56:19 -04:00

125 lines
4.4 KiB
Diff

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_counter<ops; ops_counter++)
{
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_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, "<EMPTY>")) {
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, "<EMPTY>")) {
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);