1 | use HTTP::Date; |
1 | use HTTP::Date; |
2 | |
2 | |
3 | use Coro::Event; |
3 | use Coro::EV; |
4 | |
4 | |
5 | sub conn::err_block_country { |
5 | sub conn::err_block_country { |
6 | my $self = shift; |
6 | my $self = shift; |
7 | my $whois = shift; |
7 | my $whois = shift; |
8 | |
8 | |
… | |
… | |
104 | |
104 | |
105 | my $limit = $block->[3]; |
105 | my $limit = $block->[3]; |
106 | $block->[3] = $::NOW + 10; |
106 | $block->[3] = $::NOW + 10; |
107 | |
107 | |
108 | if ($limit > $::NOW) { |
108 | if ($limit > $::NOW) { |
109 | Coro::Event::do_timer(after => $limit - $::NOW); |
109 | Coro::EV::timer_once $limit - $::NOW; |
110 | |
110 | |
111 | if ($block->[2] > 20) { |
111 | if ($block->[2] > 20) { |
112 | $block->[3] = $::NOW + $::DYNABLOCK + 360; |
112 | $block->[3] = $::NOW + $::DYNABLOCK + 360; |
113 | $status = 401; |
113 | $status = 401; |
114 | $hdr->{Warning} = "Please do NOT retry, your IP has been blocked due to excessive hammering. Press Cancel instead."; |
114 | $hdr->{Warning} = "Please do NOT retry, your IP has been blocked due to excessive hammering. Press Cancel instead."; |