You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
38 lines
1.2 KiB
38 lines
1.2 KiB
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);
|
|
|