BUG/MEDIUM: str2ip: make getaddrinfo() consider local address selection policy
When first parameter to getaddrinfo() is not NULL (it is always not NULL in str2ip()), on Linux AI_PASSIVE value for ai_flags is ignored. On FreeBSD, when AI_PASSIVE is specified and hostname parameter is not NULL, getaddrinfo() ignores local address selection policy, always returning AAAA record. Pass zero ai_flags to behave correctly on FreeBSD, this change should be no-op for Linux. This fix should be backported to 1.5 as well, after some observation period.
This commit is contained in:
parent
43885c728e
commit
eab7f3996f
@ -665,7 +665,7 @@ struct sockaddr_storage *str2ip2(const char *str, struct sockaddr_storage *sa, i
|
||||
memset(&hints, 0, sizeof(hints));
|
||||
hints.ai_family = sa->ss_family ? sa->ss_family : AF_UNSPEC;
|
||||
hints.ai_socktype = SOCK_DGRAM;
|
||||
hints.ai_flags = AI_PASSIVE;
|
||||
hints.ai_flags = 0;
|
||||
hints.ai_protocol = 0;
|
||||
|
||||
if (getaddrinfo(str, NULL, &hints, &result) == 0) {
|
||||
|
Loading…
x
Reference in New Issue
Block a user