Source-Changes-HG archive
[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index][Old Index]
[src/trunk]: src/usr.sbin/mountd Add support for multiple exports files. This...
details: https://anonhg.NetBSD.org/src/rev/f89b0a0daeff
branches: trunk
changeset: 952738:f89b0a0daeff
user: hannken <hannken%NetBSD.org@localhost>
date: Tue Feb 16 10:00:27 2021 +0000
description:
Add support for multiple exports files. This will be useful for example for
ZFS, where we have an automatically generated /etc/zfs/exports file, which
should not be edited directly.
diffstat:
usr.sbin/mountd/mountd.8 | 7 ++++---
usr.sbin/mountd/mountd.c | 45 ++++++++++++++++++++++++---------------------
2 files changed, 28 insertions(+), 24 deletions(-)
diffs (128 lines):
diff -r b3c56e1f2a42 -r f89b0a0daeff usr.sbin/mountd/mountd.8
--- a/usr.sbin/mountd/mountd.8 Tue Feb 16 09:58:35 2021 +0000
+++ b/usr.sbin/mountd/mountd.8 Tue Feb 16 10:00:27 2021 +0000
@@ -1,4 +1,4 @@
-.\" $NetBSD: mountd.8,v 1.38 2016/12/24 08:26:57 abhinav Exp $
+.\" $NetBSD: mountd.8,v 1.39 2021/02/16 10:00:27 hannken Exp $
.\"
.\" Copyright (c) 1989, 1991, 1993
.\" The Regents of the University of California. All rights reserved.
@@ -29,7 +29,7 @@
.\"
.\" @(#)mountd.8 8.4 (Berkeley) 4/28/95
.\"
-.Dd November 2, 2011
+.Dd February 16, 2021
.Dt MOUNTD 8
.Os
.Sh NAME
@@ -42,7 +42,7 @@
.Op Fl dN
.Op Fl P Ar policy
.Op Fl p Ar port
-.Op Ar exportsfile
+.Op Ar exportsfile ...
.Sh DESCRIPTION
.Nm
is the server for
@@ -101,6 +101,7 @@
.Ar exportsfile
argument specifies an alternative location
for the exports file.
+There can many exports files.
.El
.Pp
When
diff -r b3c56e1f2a42 -r f89b0a0daeff usr.sbin/mountd/mountd.c
--- a/usr.sbin/mountd/mountd.c Tue Feb 16 09:58:35 2021 +0000
+++ b/usr.sbin/mountd/mountd.c Tue Feb 16 10:00:27 2021 +0000
@@ -1,4 +1,4 @@
-/* $NetBSD: mountd.c,v 1.133 2021/02/16 09:58:35 hannken Exp $ */
+/* $NetBSD: mountd.c,v 1.134 2021/02/16 10:00:27 hannken Exp $ */
/*
* Copyright (c) 1989, 1993
@@ -42,7 +42,7 @@
#if 0
static char sccsid[] = "@(#)mountd.c 8.15 (Berkeley) 5/1/95";
#else
-__RCSID("$NetBSD: mountd.c,v 1.133 2021/02/16 09:58:35 hannken Exp $");
+__RCSID("$NetBSD: mountd.c,v 1.134 2021/02/16 10:00:27 hannken Exp $");
#endif
#endif /* not lint */
@@ -226,7 +226,8 @@
static struct exportlist *exphead;
static struct mountlist *mlhead;
static struct grouplist *grphead;
-static const char *exname;
+static char *const exnames_default[] = { __UNCONST(_PATH_EXPORTS), NULL };
+static char *const *exnames;
static struct uucred def_anon = {
1,
(uid_t) -2,
@@ -384,15 +385,15 @@
#ifdef IPSEC
" [-P policy]"
#endif
- " [-p port] [exportsfile]\n", getprogname());
+ " [-p port] [exportsfile ...]\n", getprogname());
exit(1);
};
argc -= optind;
argv += optind;
- if (argc == 1)
- exname = *argv;
+ if (argc > 0)
+ exnames = argv;
else
- exname = _PATH_EXPORTS;
+ exnames = exnames_default;
s = socket(AF_INET6, SOCK_DGRAM, IPPROTO_UDP);
if (s < 0)
@@ -408,7 +409,7 @@
sem_init(&exportsem, 0, 0);
pthread_create(&ptdummy, NULL, exportlist_thread, NULL);
- exname = _PATH_EXPORTS;
+ exnames = exnames_default;
have_v6 = 0;
(void)signal(SIGHUP, signal_get_exportlist);
#endif
@@ -1261,20 +1262,22 @@
* Read in the exports file and build the list, calling
* mount() as we go along to push the export rules into the kernel.
*/
- if ((exp_file = fopen(exname, "r")) == NULL) {
- /*
- * Don't exit here; we can still reload the config
- * after a SIGHUP.
- */
- if (mountd_debug)
- (void)fprintf(stderr, "Can't open %s: %s\n", exname,
- strerror(errno));
- return;
+ for (i = 0; exnames[i] != NULL; i++) {
+ if ((exp_file = fopen(exnames[i], "r")) == NULL) {
+ /*
+ * Don't exit here; we can still reload the config
+ * after a SIGHUP.
+ */
+ if (mountd_debug)
+ (void)fprintf(stderr, "Can't open %s: %s\n",
+ exnames[i], strerror(errno));
+ continue;
+ }
+
+ get_exportlist_one(exp_file);
+
+ (void)fclose(exp_file);
}
-
- get_exportlist_one(exp_file);
-
- (void)fclose(exp_file);
}
/*
Home |
Main Index |
Thread Index |
Old Index