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);