+01Feb23=======================================================================
+1. Harden DXCIDR (badip stuff) against format errors in downloaded badip files
+ downloaded using wget from the crontab. If these problems persist PLEASE
+ TELL me and send me examples of the errors that end up in the badip files.
30Jan23=======================================================================
1. Add ip addresses to outgoing PC93 messages
2. Get rid of (some of?) the uninitialised warnings
return (1, "set/badip: need [suffix (def: local])] IP, IP-IP or IP/24") unless @in;
for my $ip (@in) {
my $r;
+ unless (is_ipaddr($ip)) {
+ push @out, "set/badip: '$ip' is not an ip address, ignored";
+ next;
+ }
eval{ $r = DXCIDR::find($ip); };
return (1, "set/badip: $ip $@") if $@;
if ($r) {
my $list = join ' ', @in;
DXCIDR::clean_prep();
#$DB::single = 1;
-DXCIDR::append($suffix, @added);
-push @out, "set/badip: added $count entries to badip.$suffix : $list" if $count;
+if ($count) {
+ DXCIDR::append($suffix, @added);
+ push @out, "set/badip: added $count entries to badip.$suffix : '$list'";
+} else {
+ push @out, "set/badip: No valid IPs, not updating badip.$suffix with '$list'";
+}
return (1, @out);
$fn .= ".$suffix" if $suffix;
my $fh = IO::File->new($fn);
my @out;
+ my $ecount;
+ my $line;
+
if ($fh) {
while (<$fh>) {
chomp;
+ ++$line;
next if /^\s*\#/;
next unless /[\.:]/;
next unless $_;
+ unless (is_ipaddr($_)) {
+ ++$ecount;
+ LogDbg('err', qq(DXCIDR: $fn line $line: '$_' not an ip address));
+ if ($ecount > 10) {
+ LogDbg('err', qq(DXCIDR: More than 10 errors in $fn at/after line $line: '$_' - INVALID INPUT FILE));
+ return ();
+ }
+ }
push @out, $_;
}
$fh->close;
{
my $suffix = shift;
my @in = _read($suffix);
+ return 0 unless @in;
return scalar add(@in);
}
for my $ip (@_) {
# protect against stupid or malicious
+ next unless is_ipaddr($ip);
next if $ip =~ /^127\./;
next if $ip =~ /^::1$/;
if ($ip =~ /\./) {