From 30886fa74b69d7094112dfef334b5ec6750ed8de Mon Sep 17 00:00:00 2001 From: Pascal Rigaux Date: Tue, 2 Sep 2008 13:22:07 +0000 Subject: only use the 8 best mirrors, then we let aria2 choose --- urpm/download.pm | 10 +++++++++- 1 file changed, 9 insertions(+), 1 deletion(-) diff --git a/urpm/download.pm b/urpm/download.pm index 82d707f4..05cdf77a 100644 --- a/urpm/download.pm +++ b/urpm/download.pm @@ -877,6 +877,11 @@ sub _sync_webfetch_raw { %files and die N("unable to handle protocol: %s", join ', ', keys %files); } +sub _take_n_elem { + my ($n, @l) = @_; + @l < $n ? @l : @l[0 .. $n-1]; +} + sub _create_metalink_ { my ($urpm, $medium, $files, $options) = @_; # Don't create a metalink when downloading mirror list @@ -894,13 +899,16 @@ sub _create_metalink_ { qq(), ); + # only use the 8 best mirrors, then we let aria2 choose + my @mirrors = _take_n_elem(8, @{$mirrors->{list}}); + foreach my $append (@$files) { $append =~ s/$mirrors->{chosen}//; push @metalink, qq(\t); push @metalink, qq(\t\t); my $i = 0; - foreach my $mirror (@{$mirrors->{list}}) { + foreach my $mirror (@mirrors) { $i++; my $type = $mirror->{url}; $type =~ s!://.*!!; -- cgit v1.2.1