]> git.ipfire.org Git - people/pmueller/ipfire-2.x.git/blobdiff - src/pakfire/lib/functions.pl
Added option to disable ping check for mirrors.
[people/pmueller/ipfire-2.x.git] / src / pakfire / lib / functions.pl
index 650976281f348f2a3ec5c56a2a835258d475fdfd..d2ad7e34a479ebc53850648a78e7437a316288cf 100644 (file)
@@ -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;
@@ -323,9 +324,20 @@ sub selectmirror {
                                $proto = $templine[0];
                                $host = $templine[1];
                                $path = $templine[2];
-                               if (pinghost("$host")) {
+                               if ($pakfiresettings{'HEALTHCHECK'} eq "off") {
+                                       logger("PING INFO: Healthcheck is disabled");
                                        $found = 1;
                                        return ($proto, $host, $path);
+                               elsif (pinghost("$host")) {
+                                       $found = 1;
+                                       return ($proto, $host, $path);
+                               }
+                               if ($found == 0) {
+                                       sleep($pingdelay);
+                                       $pingdelay=$pingdelay*2;
+                                       if ($pingdelay>1200) {
+                                               $pingdelay=1200;
+                                       }
                                }
                        }
                }
@@ -396,13 +408,14 @@ sub dblist {
                        }
                }
        
-               opendir(DIR,"$Conf::dbdir/meta");
+               opendir(DIR,"$Conf::dbdir/installed");
                my @files = readdir(DIR);
                closedir(DIR);
                foreach $file (@files) {
                        next if ( $file eq "." );
                        next if ( $file eq ".." );
-                       open(FILE, "<$Conf::dbdir/meta/$file");
+                       next if ( $file =~ /^old/ );
+                       open(FILE, "<$Conf::dbdir/installed/$file");
                        @meta = <FILE>;
                        close(FILE);
                        foreach $line (@meta) {