39 lines
1.2 KiB
Diff
39 lines
1.2 KiB
Diff
autofs-5.0.7 - check for protocol option
|
|
|
|
From: Ian Kent <raven@themaw.net>
|
|
|
|
When a specific protocol is requested in the mount options only
|
|
that protocol should be probed for.
|
|
---
|
|
modules/mount_nfs.c | 10 ++++++++++
|
|
1 file changed, 10 insertions(+)
|
|
|
|
diff --git a/modules/mount_nfs.c b/modules/mount_nfs.c
|
|
index 9de8a73..3d2ccea 100644
|
|
--- a/modules/mount_nfs.c
|
|
+++ b/modules/mount_nfs.c
|
|
@@ -156,6 +156,12 @@ int mount_mount(struct autofs_point *ap, const char *root, const char *name, int
|
|
if (port < 0)
|
|
port = 0;
|
|
port_opt = cp;
|
|
+ } else if (strncmp("proto=udp", cp, o_len) == 0 ||
|
|
+ strncmp("udp", cp, o_len) == 0) {
|
|
+ vers &= ~TCP_SUPPORTED;
|
|
+ } else if (strncmp("proto=tcp", cp, o_len) == 0 ||
|
|
+ strncmp("tcp", cp, o_len) == 0) {
|
|
+ vers &= ~UDP_SUPPORTED;
|
|
}
|
|
/* Check for options that also make sense
|
|
with bind mounts */
|
|
@@ -167,6 +173,10 @@ int mount_mount(struct autofs_point *ap, const char *root, const char *name, int
|
|
}
|
|
}
|
|
|
|
+ /* In case both tcp and udp options were given */
|
|
+ if ((vers & NFS_PROTO_MASK) == 0)
|
|
+ vers |= NFS_PROTO_MASK;
|
|
+
|
|
debug(ap->logopt, MODPREFIX
|
|
"nfs options=\"%s\", nobind=%d, nosymlink=%d, ro=%d",
|
|
nfsoptions, nobind, nosymlink, ro);
|