aboutsummaryrefslogtreecommitdiff
path: root/usr.sbin
diff options
context:
space:
mode:
authorMike Karels <karels@FreeBSD.org>2021-10-27 03:48:23 +0000
committerMike Karels <karels@FreeBSD.org>2021-11-09 15:34:06 +0000
commit92aebdeaff57091c77398912accb4c758c6a0fcb (patch)
tree1d744507f21e598d09a7be9027fac7fdbc4e2a51 /usr.sbin
parent0bf7f99b2a1f50fa68e167269a633b4b5451fa35 (diff)
downloadsrc-92aebdeaff57091c77398912accb4c758c6a0fcb.tar.gz
src-92aebdeaff57091c77398912accb4c758c6a0fcb.zip
mountd: deprecate exports to a network without mask
The exports file format allows export to a network using an explicit mask or prefix length (CIDR). It also allows a network with just a dotted address, in which case the historical mask was used. Deprecate this usage, and warn when it is used. Document that this is deprecated. MFC after: 1 month Reviewed by: rmacklem, bcr, #manpages Differential Revision: https://reviews.freebsd.org/D32713
Diffstat (limited to 'usr.sbin')
-rw-r--r--usr.sbin/mountd/exports.57
-rw-r--r--usr.sbin/mountd/mountd.c5
2 files changed, 8 insertions, 4 deletions
diff --git a/usr.sbin/mountd/exports.5 b/usr.sbin/mountd/exports.5
index bba10ddc7be1..d5aa49a1f428 100644
--- a/usr.sbin/mountd/exports.5
+++ b/usr.sbin/mountd/exports.5
@@ -28,7 +28,7 @@
.\" @(#)exports.5 8.3 (Berkeley) 3/29/95
.\" $FreeBSD$
.\"
-.Dd November 20, 2020
+.Dd November 9, 2021
.Dt EXPORTS 5
.Os
.Sh NAME
@@ -338,9 +338,10 @@ to the
option, or by using a separate
.Fl mask
option.
-If the mask is not specified, it will default to the mask for that network
-class (A, B or C; see
+If the mask is not specified, it will default to the historical mask
+for that network class (A, B, or C; see
.Xr inet 4 ) .
+This usage is deprecated, and will elicit a warning log message.
See the
.Sx EXAMPLES
section below.
diff --git a/usr.sbin/mountd/mountd.c b/usr.sbin/mountd/mountd.c
index c66ac13b3016..4c42fce92723 100644
--- a/usr.sbin/mountd/mountd.c
+++ b/usr.sbin/mountd/mountd.c
@@ -3418,6 +3418,9 @@ get_net(char *cp, struct netmsk *net, int maskflg)
(opt_flags & OP_MASK) == 0) {
in_addr_t addr;
+ syslog(LOG_WARNING,
+ "WARNING: No mask specified for %s, "
+ "using out-of-date default", name);
addr = ((struct sockaddr_in *)sa)->sin_addr.s_addr;
if (IN_CLASSA(addr))
preflen = 8;
@@ -3425,7 +3428,7 @@ get_net(char *cp, struct netmsk *net, int maskflg)
preflen = 16;
else if (IN_CLASSC(addr))
preflen = 24;
- else if (IN_CLASSD(addr))
+ else if (IN_CLASSD(addr)) /* XXX Multicast??? */
preflen = 28;
else
preflen = 32; /* XXX */