diff options
author | Hajimu UMEMOTO <ume@FreeBSD.org> | 2014-06-23 15:43:27 +0000 |
---|---|---|
committer | Hajimu UMEMOTO <ume@FreeBSD.org> | 2014-06-23 15:43:27 +0000 |
commit | 290789099be5c6416e9865f1ef16e8a7a3f088b5 (patch) | |
tree | b59c4d1bd38232f2c2cc0096a4cf1903446840e0 /lib | |
parent | 0782e8fa23f1e8caec14e7290f50a3553b3adf2a (diff) | |
download | src-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.c | 3 |
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); } |