diff options
author | peter <peter@FreeBSD.org> | 1998-05-31 19:16:08 +0000 |
---|---|---|
committer | peter <peter@FreeBSD.org> | 1998-05-31 19:16:08 +0000 |
commit | 21746bb862b94bffb63a32df5aa5c582b55ac378 (patch) | |
tree | 99d29e13c3b70190b5986369941b8567505af06a /sys/nfs/nfs_subs.c | |
parent | 79668180999b092f5e63dcfcae049b8b08ef7588 (diff) | |
download | FreeBSD-src-21746bb862b94bffb63a32df5aa5c582b55ac378.zip FreeBSD-src-21746bb862b94bffb63a32df5aa5c582b55ac378.tar.gz |
Prototype support for selectively allowing non-reserved ports on a per
export basis. Needs userland support yet.
Obtained from: NetBSD
Diffstat (limited to 'sys/nfs/nfs_subs.c')
-rw-r--r-- | sys/nfs/nfs_subs.c | 15 |
1 files changed, 14 insertions, 1 deletions
diff --git a/sys/nfs/nfs_subs.c b/sys/nfs/nfs_subs.c index b3aeb0a..630698e 100644 --- a/sys/nfs/nfs_subs.c +++ b/sys/nfs/nfs_subs.c @@ -34,7 +34,7 @@ * SUCH DAMAGE. * * @(#)nfs_subs.c 8.8 (Berkeley) 5/22/95 - * $Id: nfs_subs.c,v 1.58 1998/05/31 18:09:18 peter Exp $ + * $Id: nfs_subs.c,v 1.59 1998/05/31 18:11:03 peter Exp $ */ /* @@ -1874,6 +1874,9 @@ nfsrv_fhtovp(fhp, lockflag, vpp, cred, slp, nam, rdonlyp, kerbflag, pubflag) register int i; struct ucred *credanon; int error, exflags; +#ifdef MNT_EXNORESPORT /* XXX needs mountd and /etc/exports help yet */ + struct sockaddr_int *saddr; +#endif *vpp = (struct vnode *)0; @@ -1889,6 +1892,16 @@ nfsrv_fhtovp(fhp, lockflag, vpp, cred, slp, nam, rdonlyp, kerbflag, pubflag) error = VFS_FHTOVP(mp, &fhp->fh_fid, nam, vpp, &exflags, &credanon); if (error) return (error); +#ifdef MNT_EXNORESPORT + if (!(exflags & (MNT_EXNORESPORT|MNT_EXPUBLIC))) { + saddr = (struct sockaddr_in *)nam; + if (saddr->sin_family == AF_INET && + ntohs(saddr->sin_port) >= IPPORT_RESERVED) { + vput(*vpp); + return (NFSERR_AUTHERR | AUTH_TOOWEAK); + } + } +#endif /* * Check/setup credentials. */ |