From 35ded6ace815e1185956c980064d49e094ed4de2 Mon Sep 17 00:00:00 2001 From: Steve Dickson Date: Thu, 19 May 2011 14:56:19 -0400 Subject: [PATCH] - Improved the NFS4.1 patcket dissectors Signed-off-by: Steve Dickson --- wireshark-nfsv4-opts.patch | 64 ----------------- wireshark-nfsv41-cleanup.patch | 124 +++++++++++++++++++++++++++++++++ wireshark.spec | 7 +- 3 files changed, 129 insertions(+), 66 deletions(-) delete mode 100644 wireshark-nfsv4-opts.patch create mode 100644 wireshark-nfsv41-cleanup.patch diff --git a/wireshark-nfsv4-opts.patch b/wireshark-nfsv4-opts.patch deleted file mode 100644 index 78c9f63..0000000 --- a/wireshark-nfsv4-opts.patch +++ /dev/null @@ -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_countercinfo, 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 } - }; diff --git a/wireshark-nfsv41-cleanup.patch b/wireshark-nfsv41-cleanup.patch new file mode 100644 index 0000000..5887b1e --- /dev/null +++ b/wireshark-nfsv41-cleanup.patch @@ -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_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); diff --git a/wireshark.spec b/wireshark.spec index a38636c..0805773 100644 --- a/wireshark.spec +++ b/wireshark.spec @@ -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 - 1.4.6-3 +- Improved the NFS4.1 patcket dissectors + * Sat May 07 2011 Christopher Aillon - 1.4.6-2 - Update icon cache scriptlet