Net::DNS 1.03 breaks compatibility with SpamAssassin: DNS lookups no longer work, and warnings like the following pop up:
On 2015-11-13 19:22, Quanah Gibson-Mount wrote:
Well, IO::Socket::IP support is new in Net::DNS 1.03, but it is only used if IO::Socket::INET6 is not present. I would assume you can use it as long as you have IO::Socket::INET6 installed, but I haven't tested that assumption.
They changed the object class that their bgsend() returns, and bgread() expects such object in its argument. SpamAssassin provides it's own bgsend (for multiple historical reasons, mainly to do with deficiencies or bugs in older versions of Net::DNS) and gives an object of class IO::Socket to bgread(), which is fine according to what the 1.02 documentation specifies: $ man Net::DNS::Resolver : bgread Reads the answer from a background query (see "bgsend"). The argument is an "IO::Socket" object returned by "bgsend". This is no longer so in 1.03, as the Net::DNS bgsend() now provides an IO::Select object and bgread expects a IO::Select object, no longer happy with an IO::Socket object that SpamAssassin provides. The new 1.03 docs say: bgread Reads the answer from a background query (see "bgsend"). The argument is an "IO::Socket" object returned by "bgsend". To me, this is an incompatible documented change - not something one would expect in an 1.02 -> 1.03 update. Mark