Hello, The first patch (from Steinar H. Gunderson) adds two similar bugs, not just one. The eval {} thing is also used in PrefetchUrl(), same as in FetchUrl() (patched by Lorenzo Clemente).
Attached the full patch for "both" bugs, for version 1.1-2.1. The squid-prefetch package should be updated, this is an old and quite critical bug. -- Daniel Dumitrache
--- /tmp/RnWVWA3144/squid-prefetch-1.1-2/squid-prefetch 2008-02-08 13:12:00.000000000 +0200 +++ /tmp/nanRZL3156/squid-prefetch-1.1-2/squid-prefetch 2008-09-01 23:30:59.000000000 +0300 @@ -144,10 +144,11 @@ local $SIG{ALRM} = sub { die "Error: Timeout fetching $url\n" }; alarm(3); + my ($code,$mesg,%hdrs, $http); eval { - my $http = Net::HTTP->new(PeerHost => $ProxyHost, PeerPort => $ProxyPort, Host => $host, SendTE => 0, KeepAlive => 0); + $http = Net::HTTP->new(PeerHost => $ProxyHost, PeerPort => $ProxyPort, Host => $host, SendTE => 0, KeepAlive => 0); $http->write_request("GET" => "http://$host$path", "Accept" => "text/html", "Cache-Control" => "only-if-cached", "User-Agent" => "Squid-Prefetch"); - my ($code,$mesg,%hdrs) = $http->read_response_headers(); + ($code,$mesg,%hdrs) = $http->read_response_headers(); print "\nfetch: $url: $code ($mesg)\n"; print " $k -> $v\n" while (($k,$v) = each %hdrs); }; @@ -222,10 +223,11 @@ local $SIG{ALRM} = sub { die "Error: Timeout fetching $url\n" }; alarm(3); + my ($code,$mesg,%hdrs, $http); eval { - my $http = Net::HTTP->new(PeerHost => $ProxyHost, PeerPort => $ProxyPort, Host => $host, SendTE => 1, KeepAlive => 0); + $http = Net::HTTP->new(PeerHost => $ProxyHost, PeerPort => $ProxyPort, Host => $host, SendTE => 1, KeepAlive => 0); $http->write_request("GET" => "http://$host$path", "Accept" => "text/*", "User-Agent" => "Squid-Prefetch"); - my ($code,$mesg,%hdrs) = $http->read_response_headers(); + ($code,$mesg,%hdrs) = $http->read_response_headers(); print "\nprefetch: $url: $code ($mesg)\n"; # print " $k -> $v\n" while (($k,$v) = each %hdrs); };