summaryrefslogtreecommitdiffstats
path: root/sys/nfsserver/nfs_srvsubs.c
diff options
context:
space:
mode:
authorpeter <peter@FreeBSD.org>1998-05-31 19:16:08 +0000
committerpeter <peter@FreeBSD.org>1998-05-31 19:16:08 +0000
commit21746bb862b94bffb63a32df5aa5c582b55ac378 (patch)
tree99d29e13c3b70190b5986369941b8567505af06a /sys/nfsserver/nfs_srvsubs.c
parent79668180999b092f5e63dcfcae049b8b08ef7588 (diff)
downloadFreeBSD-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/nfsserver/nfs_srvsubs.c')
-rw-r--r--sys/nfsserver/nfs_srvsubs.c15
1 files changed, 14 insertions, 1 deletions
diff --git a/sys/nfsserver/nfs_srvsubs.c b/sys/nfsserver/nfs_srvsubs.c
index b3aeb0a..630698e 100644
--- a/sys/nfsserver/nfs_srvsubs.c
+++ b/sys/nfsserver/nfs_srvsubs.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.
*/
OpenPOWER on IntegriCloud