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 [email protected]
with a subject of "unsubscribe". Trouble? Contact [email protected]