{ $qpsmtpd = $DB->get('qpsmtpd'); return unless $qpsmtpd; my $rbl = $qpsmtpd->prop('RBLList'); return unless $rbl; my @rbl = (); # Migrate to use , as separator instead of : if ($rbl !~ m/,/){ my @zones = split /[:]/, $rbl; my $fqdn_re = qr/([a-zA-Z0-9][a-zA-Z0-9\-]{1,61}\.)*[a-zA-Z0-9][a-zA-Z0-9\-]{1,61}\.[a-zA-Z]{2,}/; if (scalar @zones == 2 && $zones[1] !~ m/^$fqdn_re$/){ # When we have only two entries, check if the second one looks like a valid hostname # so if you only have something like dnsbl.foo.net:Sorry you are blacklisted # it won't be migrated to dnsbl.foo.net,Sorry you are blacklisted @rbl = ($rbl); } else{ @rbl = @zones; } } else{ @rbl = split /[,]/, $rbl; } my %obsolete = map { $_ => 1} qw( combined.njabl.org list.dsbl.org multihop.dsbl.org dnsbl.ahbl.org ); @rbl = grep { ! $obsolete{$_} } @rbl; $qpsmtpd->set_prop('RBLList', join ',', @rbl); }