Beefy Boxes and Bandwidth Generously Provided by pair Networks
P is for Practical

Re^2: IPV6 Errors with IO::Socket

by jZed (Prior)
on Feb 02, 2017 at 17:10 UTC ( #1180862=note: print w/replies, xml ) Need Help??

in reply to Re: IPV6 Errors with IO::Socket
in thread IPV6 Errors with IO::Socket

Thanks, my problem is that I DO have INET6 and it is misbehaving. I need to either find out how to fix it or disable use of IO::Socket::INET6 so that IO::Socket always uses IPV4.

Replies are listed 'Best First'.
Re^3: IPV6 Errors with IO::Socket
by Corion (Pope) on Feb 02, 2017 at 18:01 UTC

    Grepping both IO::Socket 1.31 and IO::Socket 1.36 for "INET6" yields no results for me.

    Can you show us a short program that reproduces your problem and shows that IO::Socket loads IO:;:Socket::INET6?

    #!perl -w use strict; use Data::Dumper; use IO::Socket; # whatever you need to do to make the error message/warning show up in + print Dumper \%INC;

    Of course, you can always try to rename IO/Socket/ ;)

      OK, thanks old friend, your question prompted me to look at what calls what and here's the deal: XML::Feed calls LWP::UserAgent which, in the case of https searches, calls IO::Socket::SSL which calls IO::Socket::INET6 unless it's told not to or it can't find IO::Socket::INET6 in which case it uses IO::Socket:INET which is what I apparently want. So I need to figure out how I can tell it that from up before I call XML::Feed. So I tried removing IO::Socket::INET6 from @INC in a BEGIN block, but I still get the errors ... will report back as I find out more.

        Looking at the documentation of IO::Socket::SSL, it says

        Alternatively you can enforce IPv4 globally by loading IO::Socket::SSL with the option 'inet4', in which case it will use the IPv4 only class IO::Socket::INET as the super class.

        So, maybe the following works:

        #!perl -w use strict; use IO::Socket::SSL 'inet4'; use XML::Feed;

        (I only knew to look there from having seen a presentation by noxxi on this topic)

Re^3: IPV6 Errors with IO::Socket
by Phenomanan (Monk) on Feb 02, 2017 at 19:49 UTC

    Just based on some research, I think you might be able to get around this issue by using "IO::Socket::INET" instead of "IO::Socket::INET6". Haven't tested this though, but might be worth a try.


      Yes, right, I need to force use of IO::Socket::INET. But I need to do that many levels above that software if I don't want to muck with other people's modules or other peoples' @INC. See my response to Corion above.
Re^3: IPV6 Errors with IO::Socket
by thezip (Vicar) on Feb 02, 2017 at 17:30 UTC

    Welcome back, Jeff!

    *My* tenacity goes to eleven...

Log In?

What's my password?
Create A New User
Node Status?
node history
Node Type: note [id://1180862]
and the web crawler heard nothing...

How do I use this? | Other CB clients
Other Users?
Others musing on the Monastery: (5)
As of 2020-08-06 10:19 GMT
Find Nodes?
    Voting Booth?
    Which rocket would you take to Mars?

    Results (39 votes). Check out past polls.