b53763569127f2505be6d73f3afcb3ac27ca8a13
[spider.git] / cmd / set / badip.pl
1 #
2 # set list of bad dx nodes
3 #
4 # Copyright (c) 2021 - Dirk Koopman G1TLH
5 #
6 #
7 #
8 my ($self, $line) = @_;
9 return (1, $self->msg('e5')) if $self->remotecmd;
10 # are we permitted?
11 return (1, $self->msg('e5')) if $self->priv < 6;
12 my @out;
13 my @added;
14 my @in = split /\s+/, $line;
15 return (1, "set/badip: need IP, IP-IP or IP/24") unless @in;
16 for my $ip (@in) {
17         my $r;
18         eval{ $r = DXCIDR::find($ip); };
19         return (1, "set/badip: $ip $@") if $@;
20         if ($r) {
21                 push @out, "set/badip: $ip exists, not added";
22                 next;
23         }
24         DXCIDR::add($ip);
25         push @added, $ip;
26 }
27 my $count = @added;
28 my $list = join ' ', @in;
29 DXCIDR::clean_prep();
30 DXCIDR::save();
31 push @out, "set/badip: added $count entries: $list" if $count;
32 return (1, @out);