Bug#742393: libnet-server-coro-perl: uses Coro::Socket which is IPv4-only

Niko Tyni ntyni at debian.org
Sun Mar 23 08:07:55 UTC 2014


Package: libnet-server-coro-perl
Version: 1.3-1
Tags: ipv6
Forwarded: https://rt.cpan.org/Ticket/Display.html?id=54948

Quoting the Coro::Socket documentation:

   This module was written to imitate the IO::Socket::INET API, and
   derive from it. Since IO::Socket::INET does not support IPv6, this
   module does neither.

   Therefore it is not recommended to use Coro::Socket in new
   code. Instead, use AnyEvent::Socket and Coro::Handle [...]

lib/Net/Server/Proto/Coro.pm has

  use base qw/Coro::Socket/;

and breaks if the underlying socket object is an IPv6 one.

  % perl -MCoro -e 'use base qw/Net::Server::Coro/; __PACKAGE__->new->run; sub process_request { warn }' 
  2014/03/23-09:56:36 main (type Net::Server) starting! pid(15189)              
  Resolved [*]:20203 to [::]:20203, IPv6
  Not including resolved host [0.0.0.0] IPv4 because it will be handled by [::] IPv6
  Binding to TCP port 20203 on host :: with IPv6
[now connecting a TCP client in another window hangs, server outputs]
  Bad arg length for Socket::unpack_sockaddr_in, length is 28, should be 16 at /usr/lib/perl5/Socket.pm line 830.
  
-- 
Niko Tyni   ntyni at debian.org



More information about the pkg-perl-maintainers mailing list