summaryrefslogtreecommitdiffstats
path: root/contrib/tcpdump/print-nfs.c
diff options
context:
space:
mode:
authorfenner <fenner@FreeBSD.org>2003-03-02 08:22:26 +0000
committerfenner <fenner@FreeBSD.org>2003-03-02 08:22:26 +0000
commit5f76ebca43302f98858e83a6212d9c610e939bad (patch)
treec244ceda18deb5fc8e576971e1e83b7b631f5219 /contrib/tcpdump/print-nfs.c
parent24ede2d805a7ffac09999aafe7d4f285e45a6edd (diff)
downloadFreeBSD-src-5f76ebca43302f98858e83a6212d9c610e939bad.zip
FreeBSD-src-5f76ebca43302f98858e83a6212d9c610e939bad.tar.gz
Import tcpdump 3.7.2 (fudging for multi-DLT support) from
http://www.tcpdump.org/release/tcpdump-3.7.2.tar.gz
Diffstat (limited to 'contrib/tcpdump/print-nfs.c')
-rw-r--r--contrib/tcpdump/print-nfs.c44
1 files changed, 28 insertions, 16 deletions
diff --git a/contrib/tcpdump/print-nfs.c b/contrib/tcpdump/print-nfs.c
index 5c2cc6d..48dc9e3 100644
--- a/contrib/tcpdump/print-nfs.c
+++ b/contrib/tcpdump/print-nfs.c
@@ -21,7 +21,7 @@
#ifndef lint
static const char rcsid[] =
- "@(#) $Header: /tcpdump/master/tcpdump/print-nfs.c,v 1.89 2001/07/08 08:01:43 itojun Exp $ (LBL)";
+ "@(#) $Header: /tcpdump/master/tcpdump/print-nfs.c,v 1.89.4.2 2002/06/01 23:51:14 guy Exp $ (LBL)";
#endif
#ifdef HAVE_CONFIG_H
@@ -32,9 +32,6 @@ static const char rcsid[] =
#include <sys/time.h>
#include <sys/socket.h>
-struct mbuf;
-struct rtentry;
-
#include <netinet/in.h>
#include <rpc/rpc.h>
@@ -716,10 +713,16 @@ nfsreq_print(register const u_char *bp, u_int length,
case NFSPROC_FSINFO:
printf(" fsinfo");
+ if ((dp = parsereq(rp, length)) != NULL &&
+ parsefh(dp, v3) != NULL)
+ return;
break;
case NFSPROC_PATHCONF:
printf(" pathconf");
+ if ((dp = parsereq(rp, length)) != NULL &&
+ parsefh(dp, v3) != NULL)
+ return;
break;
case NFSPROC_COMMIT:
@@ -1027,7 +1030,6 @@ parsestatus(const u_int32_t *dp, int *er)
printf(" ERROR: %s",
tok2str(status2str, "unk %d", errnum));
nfserr = 1;
- return (NULL);
}
return (dp + 1);
trunc:
@@ -1109,8 +1111,10 @@ parseattrstat(const u_int32_t *dp, int verbose, int v3)
int er;
dp = parsestatus(dp, &er);
- if (dp == NULL || er)
+ if (dp == NULL)
return (0);
+ if (er)
+ return (1);
return (parsefattr(dp, verbose, v3) != NULL);
}
@@ -1120,8 +1124,10 @@ parsediropres(const u_int32_t *dp)
{
int er;
- if (!(dp = parsestatus(dp, &er)) || er)
+ if (!(dp = parsestatus(dp, &er)))
return (0);
+ if (er)
+ return (1);
dp = parsefh(dp, 0);
if (dp == NULL)
@@ -1136,8 +1142,10 @@ parselinkres(const u_int32_t *dp, int v3)
int er;
dp = parsestatus(dp, &er);
- if (dp == NULL || er)
+ if (dp == NULL)
return(0);
+ if (er)
+ return(1);
if (v3 && !(dp = parse_post_op_attr(dp, vflag)))
return (0);
putchar(' ');
@@ -1151,8 +1159,10 @@ parsestatfs(const u_int32_t *dp, int v3)
int er;
dp = parsestatus(dp, &er);
- if (dp == NULL || (!v3 && er))
+ if (dp == NULL)
return (0);
+ if (!v3 && er)
+ return (1);
if (qflag)
return(1);
@@ -1164,7 +1174,7 @@ parsestatfs(const u_int32_t *dp, int v3)
return (0);
}
- TCHECK2(dp, (v3 ? NFSX_V3STATFS : NFSX_V2STATFS));
+ TCHECK2(*dp, (v3 ? NFSX_V3STATFS : NFSX_V2STATFS));
sfsp = (const struct nfs_statfs *)dp;
@@ -1205,8 +1215,10 @@ parserddires(const u_int32_t *dp)
int er;
dp = parsestatus(dp, &er);
- if (dp == NULL || er)
+ if (dp == NULL)
return (0);
+ if (er)
+ return (1);
if (qflag)
return (1);
@@ -1242,7 +1254,7 @@ parse_pre_op_attr(const u_int32_t *dp, int verbose)
if (!ntohl(dp[0]))
return (dp + 1);
dp++;
- TCHECK2(dp, 24);
+ TCHECK2(*dp, 24);
if (verbose > 1) {
return parse_wcc_attr(dp);
} else {
@@ -1379,9 +1391,9 @@ parsefsinfo(const u_int32_t *dp)
(u_int32_t) ntohl(sfp->fs_timedelta.nfsv3_sec),
(u_int32_t) ntohl(sfp->fs_timedelta.nfsv3_nsec));
}
- return (0);
-trunc:
return (1);
+trunc:
+ return (0);
}
static int
@@ -1409,9 +1421,9 @@ parsepathconf(const u_int32_t *dp)
ntohl(spp->pc_chownrestricted) ? "chownres" : "",
ntohl(spp->pc_caseinsensitive) ? "igncase" : "",
ntohl(spp->pc_casepreserving) ? "keepcase" : "");
- return (0);
-trunc:
return (1);
+trunc:
+ return (0);
}
static void
OpenPOWER on IntegriCloud