http://bugzilla.spamassassin.org/show_bug.cgi?id=4619
------- Additional Comments From [EMAIL PROTECTED] 2005-10-16 16:19 ------- John, we don't use AF_UNSPEC because it fails on some platforms as per bug 4412 comment 24, and the comments in DnsResolver.pm line 167. Looking at the code in Net::DNS::Resolver::Base.pm, it appears to me that another way to avoid that bug is to specify LocalAddr as being "::" for ipv6 or "0.0.0.0" for ipv4 and then we can allow Domain to default to AF_UNSPEC. The failure happens on some platforms when the LocalAddr and PeerAdddr are of different families and Domain is AF_UNSPEC. The resulting code would not be that different. Right now we check PeerAddr to see if we need to be ipv6 or if it is an ipv4 address. We would still have to do that. The only difference is instead of setting $family and passing in Domain=>$family we would pass in a LocalAddr value of "::" or "0.0.0.0". That may or may not have fixed Elan's problem because that was the result of a old buggy version of IO::Socket::INET6. We would still want the creation of a dummy socket to check for the case of IO::Socket::INET6 being broken. Perhaps we should create two dummy sockets, one with ipv6 and one with ipv4 addresses just to be sure, as that would let us gracefully handle a hosed version like Elan had. The advantage of doing it that way is there would no longer be any reason to refer to AF_INET6 and we could eliminate the tests to avoid referring to the macro when it isn't defined. ------- You are receiving this mail because: ------- You are the assignee for the bug, or are watching the assignee.
