Hi. I've never used this module before, but that error you're getting is the stringified form of EINPROGRESS. I looked at line 344 of YMSG.pm and found this:
my $server = IO::Socket::INET->new(
PeerAddr => $self->{hostname},
PeerPort => $self->get_port,
Proto => 'tcp',
Timeout => 30,
) or die $!;
The IO::Socket modules store error messages in $@, unfortunately. Try changing $! to $@ on that last line to find out why your script is really failing.
Keep in mind that it's perfectly normal for an operation (such as connect()) to return EINPROGRESS under non-blocking IO. If you supply a 'Timeout' value to IO::Socket::INET->new()--as the code above does--IO::Socket sets the socket to non-blocking mode, calls connect(), and connect() returns immediately, setting $! to EINPROGRESS. It then polls the socket continuously, waiting for it to become writable. If this doesn't happen within the allotted time specified by 'Timeout', it returns undef, setting $@ to "connect: timeout", which is probably the error you're dealing with. |