X-Git-Url: http://dxcluster.net/gitweb/gitweb.cgi?a=blobdiff_plain;f=cmd%2Fset%2Fbadip.pl;h=1ed8225adb050de98ac87e7d388860c8785125e6;hb=7e7131f3574cd4a3a4183251b35c9d91e43a6a39;hp=962fc641435cc65178169fa864ab11ea12ea5ee5;hpb=cc49b8f8c2ec3a975c7ace3f5bd8679580288406;p=spider.git diff --git a/cmd/set/badip.pl b/cmd/set/badip.pl index 962fc641..1ed8225a 100644 --- a/cmd/set/badip.pl +++ b/cmd/set/badip.pl @@ -9,16 +9,31 @@ my ($self, $line) = @_; return (1, $self->msg('e5')) if $self->remotecmd; # are we permitted? return (1, $self->msg('e5')) if $self->priv < 6; +return (1, q{Please install Net::CIDR::Lite or libnet-cidr-lite-perl to use this command}) unless $DXCIDR::active; + my @out; my @added; my @in = split /\s+/, $line; -return (1, "set/badip: need IP, IP-IP or IP/24") unless @in; -for (@in) { - eval{ DXCIDR::add($_); }; - return (1, "set/badip: $_ $@") if $@; - push @added, $_; +my $suffix = 'local'; +if ($in[0] =~ /^[_\d\w]+$/) { + $suffix = shift @in; +} +return (1, "set/badip: need [suffix (def: local])] IP, IP-IP or IP/24") unless @in; +for my $ip (@in) { + my $r; + eval{ $r = DXCIDR::find($ip); }; + return (1, "set/badip: $ip $@") if $@; + if ($r) { + push @out, "set/badip: $ip exists, not added"; + next; + } + DXCIDR::add($suffix, $ip); + push @added, $ip; } my $count = @added; my $list = join ' ', @in; -push @out, "set/badip: added $count entries: $list"; +DXCIDR::clean_prep(); +#$DB::single = 1; +DXCIDR::append($suffix, @added); +push @out, "set/badip: added $count entries to badip.$suffix : $list" if $count; return (1, @out);