&a_href_cc: Stabilize 'headers_in' hits at the expense of CPU burden.
authorshort <>
Sun, 18 Sep 2005 17:40:39 +0000 (17:40 +0000)
committershort <>
Sun, 18 Sep 2005 17:40:39 +0000 (17:40 +0000)
Web.pm

diff --git a/Web.pm b/Web.pm
index 93a4bb5..6b76695 100644 (file)
--- a/Web.pm
+++ b/Web.pm
@@ -670,12 +670,14 @@ sub a_href_cc($$;%)
 {
 my($url,$contents,%args)=@_;
 
+       # A bit ineffective but we must process all the possibilities to get stable 'headers_in' hits!
+       my %map=map(($_=>a_href($url->{$_},$contents,%args)),keys(%$url));
        my $cc;
        $cc||=Geo::IP->new()->country_code_by_addr(remote_ip()) if $have_Geo_IP;
        $cc||="";
-       $url=$url->{$cc};
-       return $contents if !$url;
-       return a_href $url,$contents,%args;
+       my $r=$map{$cc};
+       return $r if $r;
+       return $contents;
 }
 
 sub make ($)