… | |
… | |
56 | |
56 | |
57 | read_blockuri; |
57 | read_blockuri; |
58 | read_blockref; |
58 | read_blockref; |
59 | |
59 | |
60 | use Tie::Cache; |
60 | use Tie::Cache; |
61 | tie %whois_cache, Tie::Cache::, $::MAX_CONNECTS * 1.5; |
61 | tie %whois_cache, Tie::Cache::, 32; |
62 | |
62 | |
63 | sub access_check { |
63 | sub access_check { |
64 | my $self = shift; |
64 | my $self = shift; |
65 | |
65 | |
66 | my $ref = $self->{h}{referer}; |
66 | my $ref = $self->{h}{referer}; |
… | |
… | |
68 | my %disallow; |
68 | my %disallow; |
69 | |
69 | |
70 | $self->err_block_referer |
70 | $self->err_block_referer |
71 | if $self->{h}{referer} =~ $blockref; |
71 | if $self->{h}{referer} =~ $blockref; |
72 | |
72 | |
73 | my $whois = $whois_cache{$self->{remote_addr}} |
73 | my $ra = $self->{remote_addr}; |
74 | ||= ::ip_request($self->{remote_addr}); |
74 | my $whois = $whois_cache{$ra} ||= netgeo::ip_request($ra); |
75 | |
75 | |
76 | my $country = "XX"; |
76 | my $country = "XX"; |
77 | |
77 | |
78 | if ($whois =~ /^\*cy: (\S+)/m) { |
78 | if ($whois =~ /^\*cy: (\S+)/m) { |
79 | $country = uc $1; |
79 | $country = uc $1; |