- if ($config{source_check} and name_to_ip_noc($param->{address}) ne $param->{ip} and !($param->{ip} ~~ $config{trusted})) {
- warn("bad address [$param->{address}] ne [$param->{ip}]") if $config{debug};
- return;
+ if ($config{source_check}) {
+ (my $err, local @_) = getaddrinfo($param->{address});
+ my $addrs = [ map{(getnameinfo($_->{addr}, NI_NUMERICHOST, NIx_NOSERV))[1]} @_];
+ if (!($param->{ip} ~~ $addrs) and !($param->{ip} ~~ $config{trusted})) {
+ printlog("bad address (", @$addrs, ")[$param->{address}] ne [$param->{ip}] [$err]") if $config{debug};
+ return;
+ }