From: Arne Fitzenreiter Date: Mon, 25 Aug 2008 19:33:12 +0000 (+0200) Subject: Add a increasing delay after a pingtest failure X-Git-Url: http://git.ipfire.org/?p=people%2Fteissler%2Fipfire-2.x.git;a=commitdiff_plain;h=e4e4b3f975a3b267a68fe2649af76e3d609c866c Add a increasing delay after a pingtest failure --- diff --git a/config/rootfiles/updater/filelists/core18 b/config/rootfiles/updater/filelists/core18 index 8408c3cf0..6b9302fdc 100644 --- a/config/rootfiles/updater/filelists/core18 +++ b/config/rootfiles/updater/filelists/core18 @@ -1,4 +1,5 @@ opt/pakfire/db/core/mine +opt/pakfire/lib/functions.pl etc/mkinitcpio.conf etc/init.d/mISDN etc/modprobe.d/blacklist diff --git a/src/pakfire/lib/functions.pl b/src/pakfire/lib/functions.pl index 650976281..491c4b076 100644 --- a/src/pakfire/lib/functions.pl +++ b/src/pakfire/lib/functions.pl @@ -311,6 +311,7 @@ sub selectmirror { # This will never give up. my $found = 0; my $servers = 0; + my $pingdelay = 1; while ($found == 0) { $server = int(rand($scount) + 1); $servers = 0; @@ -327,6 +328,13 @@ sub selectmirror { $found = 1; return ($proto, $host, $path); } + if ($found == 0) { + sleep($pingdelay); + $pingdelay=$pingdelay*2; + if ($pingdelay>1200) { + $pingdelay=1200; + } + } } } }