diff options
author | Uwe Girlich <Uwe.Girlich@philosys.de> | 1999-11-29 11:52:40 +0000 |
---|---|---|
committer | Uwe Girlich <Uwe.Girlich@philosys.de> | 1999-11-29 11:52:40 +0000 |
commit | ca3bcfd40412945249e8cdf357294e546ad0da9d (patch) | |
tree | 26b95a658f7abddeb6c77a11bc0e544fb940da82 /packet-mount.c | |
parent | 39be2f99bed4553cd4ed40e78a0ae4fdf6f1704b (diff) | |
download | wireshark-ca3bcfd40412945249e8cdf357294e546ad0da9d.tar.gz wireshark-ca3bcfd40412945249e8cdf357294e546ad0da9d.tar.bz2 wireshark-ca3bcfd40412945249e8cdf357294e546ad0da9d.zip |
Some more RPC functions dissected.
svn path=/trunk/; revision=1153
Diffstat (limited to 'packet-mount.c')
-rw-r--r-- | packet-mount.c | 45 |
1 files changed, 42 insertions, 3 deletions
diff --git a/packet-mount.c b/packet-mount.c index 93a1db70bd..4cc4e4e9d2 100644 --- a/packet-mount.c +++ b/packet-mount.c @@ -1,7 +1,7 @@ /* packet-mount.c * Routines for mount dissection * - * $Id: packet-mount.c,v 1.7 1999/11/20 06:17:00 guy Exp $ + * $Id: packet-mount.c,v 1.8 1999/11/29 11:52:40 girlich Exp $ * * Ethereal - Network traffic analyzer * By Gerald Combs <gerald@unicom.net> @@ -66,6 +66,33 @@ static int hf_mount_flavor = -1; static gint ett_mount = -1; static gint ett_mount_pathconf_mask = -1; + +/* RFC 1094, Page 24 */ +static int +dissect_fhstatus(const u_char *pd, int offset, frame_data *fd, proto_tree *tree) +{ + guint32 status; + + if (!BYTES_ARE_IN_FRAME(offset,4)) return offset; + status = EXTRACT_UINT(pd, offset+0); + if (tree) { + proto_tree_add_item(tree, hf_mount_status, offset, 4, status); + } + offset += 4; + + switch (status) { + case 0: + offset = dissect_fhandle(pd,offset,fd,tree,"fhandle"); + break; + default: + /* void */ + break; + } + + return offset; +} + + static int dissect_mount_dirpath_call(const u_char *pd, int offset, frame_data *fd, proto_tree *tree) @@ -78,6 +105,18 @@ dissect_mount_dirpath_call(const u_char *pd, int offset, frame_data *fd, return offset; } + +/* RFC 1094, Page 25,26 */ +static int +dissect_mount_mnt_reply(const u_char *pd, int offset, frame_data *fd, + proto_tree *tree) +{ + offset = dissect_fhstatus(pd, offset, fd, tree); + + return offset; +} + + #define OFFS_MASK 32 /* offset of the "pc_mask" field */ #define PC_ERROR_ALL 0x0001 @@ -273,7 +312,7 @@ dissect_mount_pathconf_reply(const u_char *pd, int offset, frame_data *fd, static const vsff mount1_proc[] = { { 0, "NULL", NULL, NULL }, { MOUNTPROC_MNT, "MNT", - dissect_mount_dirpath_call, NULL }, + dissect_mount_dirpath_call, dissect_mount_mnt_reply }, { MOUNTPROC_DUMP, "DUMP", NULL, NULL }, { MOUNTPROC_UMNT, "UMNT", @@ -295,7 +334,7 @@ static const vsff mount1_proc[] = { static const vsff mount2_proc[] = { { 0, "NULL", NULL, NULL }, { MOUNTPROC_MNT, "MNT", - dissect_mount_dirpath_call, NULL }, + dissect_mount_dirpath_call, dissect_mount_mnt_reply }, { MOUNTPROC_DUMP, "DUMP", NULL, NULL }, { MOUNTPROC_UMNT, "UMNT", |