Hi, Paul. Thank you for your work on this useful module. I look forward to seeing IPv6 support in Perl 5.20.
Several tests compensate for the IPv4 loopback address containing something other than 127.0.0.1, as happens in a FreeBSD jail.
However, none of the IPv6 tests compensate for the IPv6 loopback containing something other than ::1.
Consequently, I see the following test failures in a FreeBSD jail with IPv6 enabled:
t/04local-client-v6.t (Wstat: 1280 Tests: 23 Failed: 5)
Failed tests: 8, 10-11, 20, 22
Non-zero exit status: 5
t/05local-server-v6.t (Wstat: 1280 Tests: 29 Failed: 5)
Failed tests: 4, 14-15, 19, 29
Non-zero exit status: 5
These tests all fail as follows:
# got: '2a021658000100000000000001230001'
# expected: '00000000000000000000000000000001'
Where the "got" value represents the jail's IPv6 address of 2a02:1658:1::123:1.
Please let me know if you need any more information or if you have a patch you would like me to try.
Regards,
Tom Hukins

Meh. This is all pretty horrible.
The 'v4 cases work by having IO::Socket::INET as an "independent witness" to verify what a bind to 127.0.0.1 actually comes back as. There's nothing else suitable here to rely on other than IO::Socket::IP itself.
* I could copy the logic and run it again but at that point it would
basically be testing IO::Socket::IP against itself.
* I could recreate a basic test using low-level socket(), bind() and
getsockaddr() calls correctly
* I could delete the comparising test entirely
I'm not sure really which one is best... they all seem awkward
--
Paul Evans