X-Git-Url: http://dxcluster.net/gitweb/gitweb.cgi?a=blobdiff_plain;f=perl%2FDXCIDR.pm;h=821152209a73c6e7cd7353f3bf2b25e8de905d1c;hb=5756741d9682667ae5b0442c4e6f609bd481b6eb;hp=fdade7fc8989bae6d17fad741ff636604c0d2938;hpb=f8de8b2dedec09d040a107af6bb82e31e4667c87;p=spider.git diff --git a/perl/DXCIDR.pm b/perl/DXCIDR.pm index fdade7fc..82115220 100644 --- a/perl/DXCIDR.pm +++ b/perl/DXCIDR.pm @@ -44,6 +44,7 @@ sub _read chomp; next if /^\s*\#/; next unless /[\.:]/; + next unless $_; push @out, $_; } $fh->close; @@ -82,20 +83,21 @@ sub _put sub append { + return 0 unless $active; + my $suffix = shift; my @in = @_; my @out; if ($suffix) { my $fn = _fn() . ".$suffix"; - my $r = rand; - my $fh = IO::File->new (">>$fn.$r"); - if ($fh) { + my $fh = IO::File->new; + if ($fh->open("$fn", "a+")) { + $fh->seek(0, 2); # belt and braces !! print $fh "$_\n" for @in; $fh->close; - move "$fn.$r", $fn; } else { - LogDbg('err', "DXCIDR::append error appending to $fn.$r $!"); + LogDbg('err', "DXCIDR::append error appending to $fn $!"); } } else { LogDbg('err', "DXCIDR::append require badip suffix"); @@ -105,6 +107,7 @@ sub append sub add { + return 0 unless $active; my $count = 0; for my $ip (@_) { @@ -128,6 +131,8 @@ sub add sub clean_prep { + return unless $active; + if ($ipv4 && $count4) { $ipv4->clean; $ipv4->prep_find; @@ -151,6 +156,7 @@ sub _sort sub list { + return () unless $active; my @out; push @out, $ipv4->list if $count4; push @out, $ipv6->list if $count6; @@ -200,6 +206,8 @@ sub _touch sub reload { + return 0 unless $active; + new(); my $count = 0; @@ -225,6 +233,8 @@ sub reload sub new { + return 0 unless $active; + $ipv4 = Net::CIDR::Lite->new; $ipv6 = Net::CIDR::Lite->new; $count4 = $count6 = 0;