Kaydet (Commit) 9ba1a14e authored tarafından Andre Fischer's avatar Andre Fischer

Use LWP::Simple instead of LWP::UserAgent.

üst 08275c12
...@@ -82,10 +82,18 @@ use strict; ...@@ -82,10 +82,18 @@ use strict;
use File::Spec; use File::Spec;
use File::Path; use File::Path;
use File::Basename; use File::Basename;
use LWP::UserAgent;
use Digest::MD5; use Digest::MD5;
use Digest::SHA; use Digest::SHA;
use URI; use URI;
my $simple = 1;
if ($simple)
{
use LWP::Simple;
}
else
{
use LWP::UserAgent;
}
my $Debug = 1; my $Debug = 1;
...@@ -529,38 +537,59 @@ sub DownloadFile ($$$) ...@@ -529,38 +537,59 @@ sub DownloadFile ($$$)
} }
# Download the extension. # Download the extension.
my $success = 0;
if ($simple)
{
my $content = LWP::Simple::get($URL);
$success = defined $content;
if ($success)
{
open $out, ">$temporary_filename";
binmode($out);
print $out $content;
close($out);
$digest->add($content);
}
else
{
print "download from $URL failed\n";
}
}
else
{
my $agent = LWP::UserAgent->new(); my $agent = LWP::UserAgent->new();
$agent->timeout(120); $agent->timeout(120);
$agent->env_proxy; $agent->env_proxy;
$agent->show_progress(1); $agent->show_progress(1);
my $last_was_redirect = 0; my $last_was_redirect = 0;
$agent->add_handler('response_redirect' $agent->add_handler('response_redirect'
=> sub{ => sub{
$last_was_redirect = 1; $last_was_redirect = 1;
return; return;
}); });
$agent->add_handler('response_data' $agent->add_handler('response_data'
=> sub{ => sub{
if ($last_was_redirect) if ($last_was_redirect)
{ {
$last_was_redirect = 0; $last_was_redirect = 0;
# Throw away the data we got so far. # Throw away the data we got so far.
$digest->reset(); $digest->reset();
close $out; close $out;
open $out, ">$temporary_filename"; open $out, ">$temporary_filename";
binmode($out); binmode($out);
} }
my($response,$agent,$h,$data)=@_; my($response,$agent,$h,$data)=@_;
print $out $data; print $out $data;
$digest->add($data); $digest->add($data);
}); });
my $response = $agent->get($URL); $success = $agent->get($URL)->is_success();
close $out; close $out;
}
# When download was successfull then check the checksum and rename the .part file # When download was successfull then check the checksum and rename the .part file
# into the actual extension name. # into the actual extension name.
if ($response->is_success()) if ($success)
{ {
my $file_checksum = $digest->hexdigest(); my $file_checksum = $digest->hexdigest();
if (defined $checksum) if (defined $checksum)
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment