aboutsummaryrefslogtreecommitdiffstats
path: root/packet-nfs.c
diff options
context:
space:
mode:
authorGuy Harris <guy@alum.mit.edu>2001-02-21 23:53:25 +0000
committerGuy Harris <guy@alum.mit.edu>2001-02-21 23:53:25 +0000
commitfdcd7c35b0a12983b44d57c48e10d467c4625345 (patch)
tree71e7287ea50d2e4290f0e10ad2f0fc26b76123e8 /packet-nfs.c
parent68763b3e278db0b67253d491f4af7d61da5be2b3 (diff)
NFSv4 updates from Mike Frisch to fix some cosmetic issues when
displaying XDR arrays. svn path=/trunk/; revision=3065
Diffstat (limited to 'packet-nfs.c')
-rw-r--r--packet-nfs.c48
1 files changed, 42 insertions, 6 deletions
diff --git a/packet-nfs.c b/packet-nfs.c
index 75c3db40b4..8203fee0c5 100644
--- a/packet-nfs.c
+++ b/packet-nfs.c
@@ -3,7 +3,7 @@
* Copyright 1999, Uwe Girlich <Uwe.Girlich@philosys.de>
* Copyright 2000, Mike Frisch <frisch@hummingbird.com> (NFSv4 decoding)
*
- * $Id: packet-nfs.c,v 1.46 2001/02/13 18:28:29 guy Exp $
+ * $Id: packet-nfs.c,v 1.47 2001/02/21 23:53:25 guy Exp $
*
* Ethereal - Network traffic analyzer
* By Gerald Combs <gerald@zing.org>
@@ -108,6 +108,7 @@ static int hf_nfs_pathconf_no_trunc = -1;
static int hf_nfs_pathconf_chown_restricted = -1;
static int hf_nfs_pathconf_case_insensitive = -1;
static int hf_nfs_pathconf_case_preserving = -1;
+static int hf_nfs_data_follows = -1;
/* NFSv4 */
static int hf_nfs_argop4 = -1;
@@ -151,6 +152,8 @@ static int hf_nfs_who = -1;
static int hf_nfs_server = -1;
static int hf_nfs_fattr4_owner = -1;
static int hf_nfs_fattr4_owner_group = -1;
+static int hf_nfs_stable_how4 = -1;
+static int hf_nfs_dirlist4_eof = -1;
static gint ett_nfs = -1;
static gint ett_nfs_fh_fsid = -1;
@@ -3805,7 +3808,7 @@ dissect_nfs_nfsace4(const u_char *pd, int offset, frame_data *fd,
if (newftree == NULL) return offset;
nextentry = EXTRACT_UINT(pd, offset);
- offset = dissect_rpc_uint32(pd, offset, fd, newftree, "data follows?");
+ offset = dissect_rpc_bool(pd, offset, fd, newftree, hf_nfs_data_follows);
while (nextentry)
{
@@ -3869,7 +3872,7 @@ dissect_nfs_fs_locations4(const u_char *pd, int offset, frame_data *fd,
offset = dissect_nfs_pathname4(pd, offset, fd, newftree, "fs_root");
nextentry = EXTRACT_UINT(pd, offset);
- offset = dissect_rpc_uint32(pd, offset, fd, newftree, "data follows?");
+ offset = dissect_rpc_bool(pd, offset, fd, newftree, hf_nfs_data_follows);
while (nextentry)
{
@@ -4610,11 +4613,29 @@ dissect_nfs_cb_client4(const u_char *pd, int offset, frame_data *fd,
return offset;
}
+static const value_string names_stable_how4[] = {
+#define UNSTABLE4 0
+ { UNSTABLE4, "UNSTABLE4" },
+#define DATA_SYNC4 1
+ { DATA_SYNC4, "DATA_SYNC4" },
+#define FILE_SYNC4 2
+ { FILE_SYNC4, "FILE_SYNC4" },
+ { 0, NULL }
+};
+
int
dissect_nfs_stable_how4(const u_char *pd, int offset, frame_data *fd,
proto_tree *tree, char *name)
{
- return dissect_rpc_uint32(pd, offset, fd, tree, "stable_how4");
+ guint stable_how4;
+
+ stable_how4 = EXTRACT_UINT(pd, offset);
+ proto_tree_add_uint_format(tree, hf_nfs_stable_how4, NullTVB,
+ offset+0, 4, stable_how4, "%s: %s (%u)", name,
+ val_to_str(stable_how4, names_stable_how4, "%u"), stable_how4);
+ offset += 4;
+
+ return offset;
}
int
@@ -4718,8 +4739,9 @@ dissect_nfs_dirlist4(const u_char *pd, int offset, frame_data *fd,
if (newftree==NULL) return offset;
nextentry = EXTRACT_UINT(pd, offset);
- offset = dissect_rpc_uint32(pd, offset, fd, newftree, "data follows?");
+ offset = dissect_rpc_bool(pd, offset, fd, newftree, hf_nfs_data_follows);
+
while (nextentry)
{
offset = dissect_nfs_cookie4(pd, offset, fd, newftree, "cookie");
@@ -4729,7 +4751,9 @@ dissect_nfs_dirlist4(const u_char *pd, int offset, frame_data *fd,
offset += 4;
}
- return dissect_rpc_uint32(pd, offset, fd, newftree, "eof");
+ offset = dissect_rpc_bool(pd, offset, fd, newftree, hf_nfs_dirlist4_eof);
+
+ return offset;
}
int
@@ -5875,6 +5899,18 @@ proto_register_nfs(void)
{ &hf_nfs_fattr4_owner_group, {
"fattr4_owner_group", "nfs.fattr4_owner_group", FT_STRING, BASE_DEC,
NULL, 0, "nfs.fattr4_owner_group" }},
+
+ { &hf_nfs_stable_how4, {
+ "stable_how4", "nfs.stable_how4", FT_UINT32, BASE_DEC,
+ VALS(names_stable_how4), 0, "nfs.stable_how4" }},
+
+ { &hf_nfs_dirlist4_eof, {
+ "eof", "nfs.dirlist4.eof", FT_BOOLEAN,
+ BASE_NONE, &yesno, 0, "nfs.dirlist4.eof" }},
+
+ { &hf_nfs_data_follows, {
+ "data_follows", "nfs.data_follows", FT_BOOLEAN,
+ BASE_NONE, &yesno, 0, "nfs.data_follows" }},
};
static gint *ett[] = {