Subject: | Bad arg length for Socket6::unpack_sockaddr_in6, length is 16, should be 28 at /usr/local/lib/perl5/site_perl/5.8.9/mach/Socket6.pm line 283 |
Date: | Wed, 04 Feb 2009 11:39:35 +0100 |
To: | bug-RPC-XML [...] rt.cpan.org |
From: | Jimmy Bergman <jimmy [...] loopia.se> |
Hi
I got the following error (after adding some debug-code to catch the
exception and confess to Socket6.pm) right after connecting to an
RPC::XML::Server instance using Net::Server.
DEBUG: caught exception in sockaddr_in6: Bad arg length for
Socket6::unpack_sockaddr_in6, length is 16, should be 28 at
/usr/local/lib/perl5/site_perl/5.8.9/mach/Socket6.pm line 283.
at /usr/local/lib/perl5/site_perl/5.8.9/mach/Socket6.pm line 286
Socket6::sockaddr_in6('\x{10}\x{2}\x{fe}6\x{c2}\x{9}^\x{ad}\x{0}\x{0}\x{0}\x{0}\x{0}\x{0}\x{0}\x{0}')
called at /usr/local/lib/perl5/site_perl/5.8.9/IO/Socket/INET6.pm line 406
IO::Socket::INET6::peeraddr('HTTP::Daemon::ClientConn=GLOB(0x8a42550)')
called at /usr/local/lib/perl5/site_perl/5.8.9/RPC/XML/Server.pm
(autosplit into
/usr/local/lib/perl5/site_perl/5.8.9/auto/RPC/XML/Server/process_request.al)
line 1396
RPC::XML::Server::process_request('RPC::XML::Server=HASH(0x8698958)')
called at /usr/local/lib/perl5/site_perl/5.8.9/Net/Server.pm line 141
Net::Server::run_client_connection('RPC::XML::Server=HASH(0x8698958)')
called at /usr/local/lib/perl5/site_perl/5.8.9/Net/Server.pm line 584
Net::Server::loop('RPC::XML::Server=HASH(0x8698958)') called at
/usr/local/lib/perl5/site_perl/5.8.9/Net/Server.pm line 116
Net::Server::run('RPC::XML::Server=HASH(0x8698958)',
'syslog_facility', 'user', 'log_file', 'Sys::Syslog', 'port', 9000,
'host', 194.9.94.173, ...) called at
/usr/local/lib/perl5/site_perl/5.8.9/Net/Server/MultiType.pm line 108
Net::Server::MultiType::run('RPC::XML::Server=HASH(0x8698958)',
'syslog_facility', 'user', 'log_file', 'Sys::Syslog', 'port', 9000,
'host', 194.9.94.173, ...) called at
/usr/local/lib/perl5/site_perl/5.8.9/RPC/XML/Server.pm (autosplit into
The offending line in RPC::XML::Server is:
$peeraddr = $conn->peeraddr;
and when running the server under perl -d the expression $conn->peeraddr
and friends looked good until the row
unshift @HTTP::Daemon::ClientConn::ISA, 'IO::Socket::SSL';
in the IO_SOCKET_SSL_HACK_NEEDED section after which they all threw
errors like the one above.
When i added
$RPC::XML::Server::IO_SOCKET_SSL_HACK_NEEDED = 0;
to my code before executing server_loop everything worked fine.
Versions of the modules installed:
RPC::XML 0.64
Net::Server 0.97
IO::Socket::SSL 1.19
IO::Socket::INET6 2.56
Socket6 0.23
Regards,
Jimmy
Message body not shown because it is not plain text.