aboutsummaryrefslogtreecommitdiff
path: root/lib
diff options
context:
space:
mode:
authorHajimu UMEMOTO <ume@FreeBSD.org>2014-06-23 15:43:27 +0000
committerHajimu UMEMOTO <ume@FreeBSD.org>2014-06-23 15:43:27 +0000
commit290789099be5c6416e9865f1ef16e8a7a3f088b5 (patch)
treeb59c4d1bd38232f2c2cc0096a4cf1903446840e0 /lib
parent0782e8fa23f1e8caec14e7290f50a3553b3adf2a (diff)
downloadsrc-290789099be5c6416e9865f1ef16e8a7a3f088b5.tar.gz
src-290789099be5c6416e9865f1ef16e8a7a3f088b5.zip
Exclude IPv4 address from doing longest match.
It prevented DNS based load balancing. MFC after: 1 week
Notes
Notes: svn path=/head/; revision=267800
Diffstat (limited to 'lib')
-rw-r--r--lib/libc/net/getaddrinfo.c3
1 files changed, 2 insertions, 1 deletions
diff --git a/lib/libc/net/getaddrinfo.c b/lib/libc/net/getaddrinfo.c
index 22b41033d4c5..77568a5e11f8 100644
--- a/lib/libc/net/getaddrinfo.c
+++ b/lib/libc/net/getaddrinfo.c
@@ -1009,7 +1009,8 @@ comp_dst(const void *arg1, const void *arg2)
* We compare the match length in a same AF only.
*/
if (dst1->aio_ai->ai_addr->sa_family ==
- dst2->aio_ai->ai_addr->sa_family) {
+ dst2->aio_ai->ai_addr->sa_family &&
+ dst1->aio_ai->ai_addr->sa_family != AF_INET) {
if (dst1->aio_matchlen > dst2->aio_matchlen) {
return(-1);
}