]> git.pld-linux.org Git - packages/autofs.git/blame - autofs-5.0.4-dont-fail-on-ipv6-address-adding-host.patch
- import latest patchset.
[packages/autofs.git] / autofs-5.0.4-dont-fail-on-ipv6-address-adding-host.patch
CommitLineData
e5fd101c
PS
1autofs-5.0.4 - dont fail on ipv6 address adding host
2
3From: Ian Kent <raven@themaw.net>
4
5We don't have IPv6 support enabled in libtirpc yet. When we
6perform name (or address) lookup and we get a mixture of IPv4
7and IPv6 addresses the lack of IPv6 support can cause the
8parse_location() function to fail to add any valid hosts when
9in fact it should.
10---
11
12 CHANGELOG | 1 +
13 include/replicated.h | 1 +
14 modules/replicated.c | 9 ++++++++-
15 3 files changed, 10 insertions(+), 1 deletions(-)
16
17
18diff --git a/CHANGELOG b/CHANGELOG
19index 89aaa99..7e1012f 100644
20--- a/CHANGELOG
21+++ b/CHANGELOG
22@@ -46,6 +46,7 @@
23 - dont umount existing direct mount on master re-read.
24 - fix incorrect shutdown introduced by library relaod fixes.
25 - improve manual umount recovery.
26+- dont fail on ipv6 address when adding host.
27
28 4/11/2008 autofs-5.0.4
29 -----------------------
30diff --git a/include/replicated.h b/include/replicated.h
31index e0133ff..fd87c08 100644
32--- a/include/replicated.h
33+++ b/include/replicated.h
34@@ -21,6 +21,7 @@
35 #define PROXIMITY_SUBNET 0x0002
36 #define PROXIMITY_NET 0x0004
37 #define PROXIMITY_OTHER 0x0008
38+#define PROXIMITY_UNSUPPORTED 0x0010
39
40 #define NFS2_SUPPORTED 0x0010
41 #define NFS3_SUPPORTED 0x0020
42diff --git a/modules/replicated.c b/modules/replicated.c
43index 79845d0..a66de9f 100644
44--- a/modules/replicated.c
45+++ b/modules/replicated.c
46@@ -181,7 +181,7 @@ static unsigned int get_proximity(struct sockaddr *host_addr)
47
48 case AF_INET6:
49 #ifndef INET6
50- return PROXIMITY_ERROR;
51+ return PROXIMITY_UNSUPPORTED;
52 #else
53 addr6 = (struct sockaddr_in6 *) host_addr;
54 hst6_addr = (struct in6_addr *) &addr6->sin6_addr;
55@@ -1048,6 +1048,13 @@ static int add_new_host(struct host **list,
56 int addr_len;
57
58 prx = get_proximity(host_addr->ai_addr);
59+ /*
60+ * If we tried to add an IPv6 address and we don't have IPv6
61+ * support return success in the hope of getting an IPv4
62+ * address later.
63+ */
64+ if (prx == PROXIMITY_UNSUPPORTED)
65+ return 1;
66 if (prx == PROXIMITY_ERROR)
67 return 0;
68
This page took 0.041991 seconds and 4 git commands to generate.