File /usr/share/perl5/Net/Server.pm, line 1487:

  if ($#{ $prop->{cidr_allow} } != -1) {
    require Net::CIDR;
    return 1 if Net::CIDR::cidrlookup($prop->{peeraddr}, @{ $prop->{cidr_allow} 
});
  }

Assume config contains this:
cidr_allow 192.168.163.0/24

At this point I can see that 
$prop->{cidr_allow} is ['192.168.163.0/24']
meanwhile
$prop->{peeraddr} is '::ffff:192.168.163.47'

This is an IPv4-Mapped IPv6 Address

Poor Net::CIDR::cidrlookup() thinks that ::ffff:192.168.163.47 is
an IPv6 address and complains:

        Invalid netblock: 
192.168.163.255-0.0.0.0.0.0.0.0.0.0.255.255.193.6.222.47 at 
/usr/share/perl5/Net/Server.pm line 831

A workaround may be cutting '::ffff:' prefix from front of IPv4 addresses
before giving them to cidrlookup().

Giving IPv4-Mapped IPv6 Address in the config file might be an other
solution but
cidr_allow ::ffff:192.168.163.0/120
does not work yet, because process_conf() cuts off the first colon if found
thinking user wrote like this:
cidr_allow: blahblahblah
So if I write this:
cidr_allow: ::ffff:192.168.163.0/120
it works finally.

But how ugly is it. :-(

Gabor

-- 
No smoke, no drugs, no vindoze.



-- 
To UNSUBSCRIBE, email to debian-bugs-dist-requ...@lists.debian.org
with a subject of "unsubscribe". Trouble? Contact listmas...@lists.debian.org

Reply via email to