summaryrefslogtreecommitdiffstats
path: root/urpm
diff options
context:
space:
mode:
Diffstat (limited to 'urpm')
-rw-r--r--urpm/download.pm24
1 files changed, 9 insertions, 15 deletions
diff --git a/urpm/download.pm b/urpm/download.pm
index 77ef36b1..6737db36 100644
--- a/urpm/download.pm
+++ b/urpm/download.pm
@@ -736,15 +736,11 @@ sub sync_logger {
sub requested_ftp_http_downloader {
- my ($urpm, $media_name) = @_;
+ my ($urpm, $medium) = @_;
$urpm->{options}{downloader} || #- cmd-line switch
- $media_name && do {
- #- per-media config
- require urpm::media; #- help perl_checker
- my $m = urpm::media::name2medium($urpm, $media_name);
- $m && $m->{downloader};
- } || $urpm->{global_config}{downloader};
+ $medium && $medium->{downloader} ||
+ $urpm->{global_config}{downloader};
}
sub parse_url_with_login {
@@ -770,7 +766,6 @@ sub sync {
my %all_options = (
dir => "$urpm->{cachedir}/partial",
proxy => get_proxy_($urpm, $medium),
- $medium ? (media => $medium->{name}) : (),
$urpm->{debug} ? (debug => $urpm->{debug}) : (),
%options,
);
@@ -782,7 +777,7 @@ sub sync {
$urpm->{debug} and $urpm->{debug}(N("retrieving %s", $files_text));
eval {
- _sync_webfetch_raw($urpm, $files, \%all_options);
+ _sync_webfetch_raw($urpm, $medium, $files, \%all_options);
$urpm->{log}(N("retrieved %s", $files_text));
1;
};
@@ -805,7 +800,7 @@ sub get_content {
#- syncing algorithms.
sub _sync_webfetch_raw {
- my ($urpm, $files, $options) = @_;
+ my ($urpm, $medium, $files, $options) = @_;
my %files;
#- currently ftp and http protocols are managed by curl or wget,
@@ -827,7 +822,7 @@ sub _sync_webfetch_raw {
#- first downloader of @available is the default one
my $preferred = $available[0];
- if (my $requested_downloader = requested_ftp_http_downloader($urpm, $options->{media})) {
+ if (my $requested_downloader = requested_ftp_http_downloader($urpm, $medium)) {
if (grep { $_ eq $requested_downloader } @available) {
#- use user default downloader if provided and available
$preferred = $requested_downloader;
@@ -841,7 +836,7 @@ sub _sync_webfetch_raw {
# FIXME: This is rather crude and should probably be done some better place.
if ($options->{metalink}) {
- _create_metalink_($urpm, \@l, $options);
+ _create_metalink_($urpm, $medium, \@l, $options);
}
while (@l) {
my $half_MAX_ARG = 131072 / 2;
@@ -866,11 +861,10 @@ sub _sync_webfetch_raw {
}
sub _create_metalink_ {
- my ($urpm, $files, $options) = @_;
+ my ($urpm, $medium, $files, $options) = @_;
# Don't create a metalink when downloading mirror list
- $options->{media} or return;
+ $medium or return;
- my ($medium) = grep { $_->{name} eq $options->{media} } @{$urpm->{media} || []};
my $mirrors = $urpm->{mirrors_cache}{$medium->{mirrorlist}};
my $metalinkfile = "$urpm->{cachedir}/$options->{media}.metalink";