Sign Up
Log In
Log In
or
Sign Up
Places
All Projects
Status Monitor
Collapse sidebar
openSUSE:Leap:42.3
nfs-utils
0006-mount-use-a-public-address-for-IPv6-callba...
Overview
Repositories
Revisions
Requests
Users
Attributes
Meta
File 0006-mount-use-a-public-address-for-IPv6-callback.patch of Package nfs-utils
From 9bc03af5faef9ff5035d95c986f8a62b67c456f1 Mon Sep 17 00:00:00 2001 From: NeilBrown <neilb@suse.com> Date: Wed, 13 Jul 2016 15:49:57 +1000 Subject: [PATCH] mount: use a public address for IPv6 callback. If IPv6 address privacy is active, the "clientaddr" given to the server will likely be a temporary address which will eventually expire, thus breaking callback. So ask for a public address to ensure continued service. Signed-off-by: NeilBrown <neilb@suse.com> --- utils/mount/network.c | 5 +++++ 1 file changed, 5 insertions(+) --- a/utils/mount/network.c +++ b/utils/mount/network.c @@ -38,6 +38,7 @@ #include <sys/socket.h> #include <sys/wait.h> #include <sys/stat.h> +#include <linux/in6.h> #include <netinet/in.h> #include <rpc/rpc.h> #include <rpc/pmap_prot.h> @@ -1108,6 +1109,7 @@ static int nfs_ca_sockname(const struct .sin6_addr = IN6ADDR_ANY_INIT, }; int sock, result = 0; + int val; sock = socket(sap->sa_family, SOCK_DGRAM, IPPROTO_UDP); if (sock < 0) @@ -1119,6 +1121,9 @@ static int nfs_ca_sockname(const struct goto out; break; case AF_INET6: + /* Make sure the call-back address is public */ + val = IPV6_PREFER_SRC_PUBLIC; + setsockopt(sock, SOL_IPV6, IPV6_ADDR_PREFERENCES, &val, sizeof(val)); if (bind(sock, SAFE_SOCKADDR(&sin6), sizeof(sin6)) < 0) goto out; break;
Locations
Projects
Search
Status Monitor
Help
OpenBuildService.org
Documentation
API Documentation
Code of Conduct
Contact
Support
@OBShq
Terms
openSUSE Build Service is sponsored by
The Open Build Service is an
openSUSE project
.
Sign Up
Log In
Places
Places
All Projects
Status Monitor