- Improved the NFS4.1 patcket dissectors

Signed-off-by: Steve Dickson <steved@redhat.com>
This commit is contained in:
Steve Dickson 2011-05-19 14:56:19 -04:00
parent efe6224c35
commit 35ded6ace8
3 changed files with 129 additions and 66 deletions

View File

@ -1,64 +0,0 @@
diff -up wireshark-1.0.2/epan/dissectors/packet-nfs.c.orig wireshark-1.0.2/epan/dissectors/packet-nfs.c
--- wireshark-1.0.2/epan/dissectors/packet-nfs.c.orig 2008-07-10 13:39:23.000000000 -0400
+++ wireshark-1.0.2/epan/dissectors/packet-nfs.c 2008-07-25 07:59:45.000000000 -0400
@@ -7962,6 +7962,8 @@ 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);
@@ -7991,6 +7993,15 @@ dissect_nfs_argop4(tvbuff_t *tvb, int of
break;
}
+ if (opcode != NFS4_OP_PUTFH) {
+ if (check_col(pinfo->cinfo, COL_INFO)) {
+ col_append_fstr(pinfo->cinfo, COL_INFO, " %s",
+ names_nfsv4_operation[opcode - 3].strptr);
+ }
+ }
+ proto_item_append_text(tree, " %s",
+ names_nfsv4_operation[opcode - 3].strptr);
+
switch(opcode)
{
case NFS4_OP_ACCESS:
@@ -8420,6 +8431,8 @@ dissect_nfs_resop4(tvbuff_t *tvb, int of
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++)
{
opcode = tvb_get_ntohl(tvb, offset);
@@ -8451,6 +8464,17 @@ dissect_nfs_resop4(tvbuff_t *tvb, int of
offset = dissect_nfs_nfsstat4(tvb, offset, newftree, &status);
+ if (check_col(pinfo->cinfo, COL_INFO)) {
+ if (status != NFS4_OK) {
+ col_append_fstr(pinfo->cinfo, COL_INFO, " %s(%d)",
+ names_nfsv4_operation[opcode - 3].strptr, status);
+ } else if (opcode != NFS4_OP_PUTFH) {
+ col_append_fstr(pinfo->cinfo, COL_INFO, " %s",
+ names_nfsv4_operation[opcode - 3].strptr);
+ }
+ }
+ proto_item_append_text(tree, " %s(%d)",
+ names_nfsv4_operation[opcode - 3].strptr, status);
/*
* With the exception of NFS4_OP_LOCK, NFS4_OP_LOCKT, and
* NFS4_OP_SETATTR, all other ops do *not* return data with the
@@ -8770,7 +8794,7 @@ 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 }
};

View File

@ -0,0 +1,124 @@
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);

View File

@ -11,7 +11,7 @@
Summary: Network traffic analyzer
Name: wireshark
Version: 1.4.6
Release: 2%{?dist}
Release: 3%{?dist}
License: GPL+
Group: Applications/Internet
Source0: http://wireshark.org/download/src/%{name}-%{version}.tar.bz2
@ -25,7 +25,7 @@ Source7: wiresharkdoc-32x32.png
Source8: wiresharkdoc-48x48.png
Source9: wiresharkdoc-256x256.png
Patch1: wireshark-nfsv4-opts.patch
Patch1: wireshark-nfsv41-cleanup.patch
Patch2: wireshark-1.2.4-enable_lua.patch
Patch3: wireshark-libtool-pie.patch
Patch4: wireshark-1.4.0-doc-path.patch
@ -322,6 +322,9 @@ gtk-update-icon-cache %{_datadir}/icons/hicolor &>/dev/null || :
%{_sbindir}/idl2wrs
%changelog
* Thu May 19 2011 Steve Dickson <steved@redhat.com> - 1.4.6-3
- Improved the NFS4.1 patcket dissectors
* Sat May 07 2011 Christopher Aillon <caillon@redhat.com> - 1.4.6-2
- Update icon cache scriptlet