summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--perl-install/crypto.pm16
-rw-r--r--perl-install/install_steps_interactive.pm5
2 files changed, 12 insertions, 9 deletions
diff --git a/perl-install/crypto.pm b/perl-install/crypto.pm
index a8fa6f9ec..d5326737b 100644
--- a/perl-install/crypto.pm
+++ b/perl-install/crypto.pm
@@ -3,7 +3,7 @@ package crypto; # $Id$
use diagnostics;
use strict;
-use vars qw($o %url2land %land2tzs %static_mirrors %mirrors);
+use vars qw(%url2land %land2tzs %static_mirrors %mirrors);
use MDK::Common::System;
use common;
@@ -45,7 +45,9 @@ use ftp;
%mirrors = ();
sub mirror2text { $mirrors{$_[0]} && $mirrors{$_[0]}[0] . '|' . $_[0] }
-sub mirrors() {
+sub mirrors {
+ my ($o_distro_type) = @_;
+
unless (keys %mirrors) {
#- contact the following URL to retrieve list of mirror.
#- http://www.linux-mandrake.com/mirrorsfull.list
@@ -54,9 +56,9 @@ sub mirrors() {
local $SIG{ALRM} = sub { die "timeout" };
alarm 60;
- my $type = $o->{distro_type} || 'updates';
+ my $distro_type = $o_distro_type || 'updates';
foreach (<$f>) {
- my ($arch, $url, $dir) = m|$type([^:]*):ftp://([^/]*)(/\S*)| or next;
+ my ($arch, $url, $dir) = m|$distro_type([^:]*):ftp://([^/]*)(/\S*)| or next;
MDK::Common::System::compat_arch($arch) or
log::l("ignoring updates from $url because of incompatible arch: $arch"), next;
my $land = N("United States");
@@ -76,12 +78,12 @@ sub mirrors() {
}
sub bestMirror {
- my ($string) = @_;
+ my ($string, $o_distro_type) = @_;
my %mirror2value;
- foreach my $url (mirrors()) {
+ foreach my $url (mirrors($o_distro_type)) {
my $value = 0;
- my $cvalue = mirrors();
+ my $cvalue = mirrors($o_distro_type);
$mirror2value{$url} ||= 1 + $cvalue;
foreach (@{$land2tzs{$mirrors{$url}[0]} || []}) {
diff --git a/perl-install/install_steps_interactive.pm b/perl-install/install_steps_interactive.pm
index 0922af7ab..02f032b8f 100644
--- a/perl-install/install_steps_interactive.pm
+++ b/perl-install/install_steps_interactive.pm
@@ -780,9 +780,10 @@ Do you want to install the updates ?")),
eval {
my @mirrors = do {
my $_w = $o->wait_message('', N("Contacting Mandrake Linux web site to get the list of available mirrors..."));
- crypto::mirrors() };
+ crypto::mirrors($o->{distro_type});
+ };
#- if no mirror have been found, use current time zone and propose among available.
- $u->{mirror} ||= crypto::bestMirror($o->{timezone}{timezone});
+ $u->{mirror} ||= crypto::bestMirror($o->{timezone}{timezone}, $o->{distro_type});
$o->ask_from_({ messages => N("Choose a mirror from which to get the packages"),
cancel => N("Cancel"),
}, [ { separator => '|',