Welcome to mirror list, hosted at ThFree Co, Russian Federation.

github.com/freebsd/freebsd-src.git - Unnamed repository; edit this file 'description' to name the repository.
summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorRick Macklem <rmacklem@FreeBSD.org>2022-11-13 23:16:06 +0300
committerRick Macklem <rmacklem@FreeBSD.org>2022-11-13 23:16:06 +0300
commit032b04626b671ec16deacd479569998b96c96142 (patch)
tree71817c8569730d33d7b1cd93b99ca92205e82ff3
parentd941ffdc4f98543aa965c3a4636b6cb5c98cf6aa (diff)
rpcb_clnt.c: Do not force use of UDPHEADmain
Without this patch, the code in the rpcbind client forces the use of UDP. A comment notes that some rpcbind servers only support UDP. This makes NFSv3 mounts to Azure servers impossible, since they require use of TCP for rpcbind. Since the comment is very old (imported from NetBSD in 2001) and I do not believe any UDP only rpcbind servers will still exist, this patch comments out the code that forces use of UDP, so that NFSv3 mounts to Azure servers can work. For an NFSv3 mount, the "udp" mount option will still make mount_nfs use UDP for rpcbind so that can be used as a workaround for any old NFSv3 server that only supports rpcbind over UDP (if any such server still exists). I asked if doing this change is appropriate on freebsd-fs@ and I only got one reply (off list) that supported doing the change. PR: 267301 MFC after: 1 month
-rw-r--r--lib/libc/rpc/rpcb_clnt.c14
1 files changed, 12 insertions, 2 deletions
diff --git a/lib/libc/rpc/rpcb_clnt.c b/lib/libc/rpc/rpcb_clnt.c
index f39d99bfeee3..b44fd1c5e77b 100644
--- a/lib/libc/rpc/rpcb_clnt.c
+++ b/lib/libc/rpc/rpcb_clnt.c
@@ -742,6 +742,16 @@ __rpcb_findaddr_timed(rpcprog_t program, rpcvers_t version,
struct pmap pmapparms;
/*
+ * The comment below is now very old, having
+ * been committed to FreeBSD during an import
+ * from NetBSD in 2001. I do not believe there
+ * will still be any rpcbind servers that do
+ * UDP only and, since Azure requires use of
+ * TCP for NFSv3 mounts, comment this out
+ * so that NFSv3 mounts on Azure can work.
+ */
+#ifdef notnow
+ /*
* Try UDP only - there are some portmappers out
* there that use UDP only.
*/
@@ -754,9 +764,9 @@ __rpcb_findaddr_timed(rpcprog_t program, rpcvers_t version,
}
client = getclnthandle(host, newnconf, &parms.r_addr);
freenetconfigent(newnconf);
- } else {
+ } else
+#endif
client = getclnthandle(host, nconf, &parms.r_addr);
- }
if (client == NULL)
return (NULL);