summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorSteve Dickson <steved@redhat.com>2009-10-17 09:26:18 -0400
committerSteve Dickson <steved@redhat.com>2009-10-22 15:34:48 -0400
commita8b90e8f64a7d53b20c0980f2a6d9a8d5945bcc4 (patch)
tree0b002b3b21146ef5c335b2249114953fdffcbcca
parent2f61f62ac777cc03e30513f6fd3699f9e2f04e27 (diff)
downloadnfs-utils-a8b90e8f64a7d53b20c0980f2a6d9a8d5945bcc4.tar.gz
nfs-utils-a8b90e8f64a7d53b20c0980f2a6d9a8d5945bcc4.tar.xz
nfs-utils-a8b90e8f64a7d53b20c0980f2a6d9a8d5945bcc4.zip
Use the default protocol and version values, when they
are set in the configuration file, to start the negation with the server Signed-off-by: Steve Dickson <steved@redhat.com>
-rw-r--r--utils/mount/network.c16
-rw-r--r--utils/mount/stropts.c9
2 files changed, 22 insertions, 3 deletions
diff --git a/utils/mount/network.c b/utils/mount/network.c
index 1a05351..e651167 100644
--- a/utils/mount/network.c
+++ b/utils/mount/network.c
@@ -50,6 +50,7 @@
#include "nfsrpc.h"
#include "parse_opt.h"
#include "network.h"
+#include "conffile.h"
#define PMAP_TIMEOUT (10)
#define CONNECT_TIMEOUT (20)
@@ -609,10 +610,19 @@ static int nfs_probe_nfsport(const struct sockaddr *sap, const socklen_t salen,
if (pmap->pm_vers && pmap->pm_prot && pmap->pm_port)
return 1;
- if (nfs_mount_data_version >= 4)
+ if (nfs_mount_data_version >= 4) {
+ const unsigned int *probe_proto = probe_tcp_first;
+
+ /*
+ * If the default proto has been set and
+ * its not TCP, start with UDP
+ */
+ if (config_default_proto && config_default_proto != IPPROTO_TCP)
+ probe_proto = probe_udp_first;
+
return nfs_probe_port(sap, salen, pmap,
- probe_nfs3_first, probe_tcp_first);
- else
+ probe_nfs3_first, probe_proto);
+ } else
return nfs_probe_port(sap, salen, pmap,
probe_nfs2_only, probe_udp_only);
}
diff --git a/utils/mount/stropts.c b/utils/mount/stropts.c
index 069bdc1..ceefdb0 100644
--- a/utils/mount/stropts.c
+++ b/utils/mount/stropts.c
@@ -45,6 +45,7 @@
#include "parse_opt.h"
#include "version.h"
#include "parse_dev.h"
+#include "conffile.h"
#ifndef NFS_PROGRAM
#define NFS_PROGRAM (100003)
@@ -283,6 +284,14 @@ static int nfs_validate_options(struct nfsmount_info *mi)
if (option && strcmp(option, "rdma") == 0)
mi->version = 3;
}
+ /*
+ * Use the default value set in the config file when
+ * the version has not been explicitly set.
+ */
+ if (mi->version == 0 && config_default_vers) {
+ if (config_default_vers < 4)
+ mi->version = config_default_vers;
+ }
if (!nfs_append_sloppy_option(mi->options))
return 0;