]> git.ipfire.org Git - people/pmueller/ipfire-2.x.git/blobdiff - src/pakfire/lib/functions.pl
Fixed Pakfire updating coredb when using webif without beeing able to
[people/pmueller/ipfire-2.x.git] / src / pakfire / lib / functions.pl
index 2bce1922c14e9c450503993310c9d1f622835474..650976281f348f2a3ec5c56a2a835258d475fdfd 100644 (file)
@@ -93,8 +93,8 @@ sub message {
 sub logger {
        my $log = shift;
        if ($log) {
-               system("echo \"`date`: $log\" >> /var/log/pakfire.log");
-               #system("logger -t pakfire \"$log\"");
+               #system("echo \"`date`: $log\" >> /var/log/pakfire.log");
+               system("logger -t pakfire \"$log\"");
        }
 }
 
@@ -118,7 +118,7 @@ sub pinghost {
        
        $p = Net::Ping->new();
   if ($p->ping($host)) {
-       logger("PING INFO: $host is alive");
+        logger("PING INFO: $host is alive");
        return 1;
   } else {
                logger("PING INFO: $host is unreachable");
@@ -211,6 +211,9 @@ sub fetchfile {
                                                move("$Conf::tmpdir/$bfile","$Conf::cachedir/$bfile");
                                        } else {
                                                message("DOWNLOAD ERROR: The downloaded file ($file) wasn't verified by IPFire.org. Sorry - Exiting...");
+                                               my $ntp = `ntpdate -q -t 10 pool.ntp.org 2>/dev/null | tail -1`;
+                                               if ( $ntp !~ /time\ server(.*)offset(.*)/ ){message("TIME ERROR: Unable to get the nettime, this may lead to the verification error.");}
+                                               else { $ntp =~ /time\ server(.*)offset(.*)/; message("TIME INFO: Time Server$1has$2 offset to localtime.");}
                                                exit 1;
                                        }
                                        logger("DOWNLOAD FINISHED: $file");
@@ -378,7 +381,7 @@ sub dblist {
        close(FILE);
 
        if ("$filter" eq "upgrade") {
-               getcoredb("noforce");
+               if ("$forweb" ne "forweb") {getcoredb("noforce");}
                eval(`grep "core_" $Conf::dbdir/lists/core-list.db`);
                if ("$core_release" > "$Conf::core_mine") {
                        if ("$forweb" eq "forweb") {
@@ -544,7 +547,12 @@ sub cleanup {
 sub getmetafile {
        my $pak = shift;
        
-       unless ( -e "$Conf::dbdir/meta/meta-$pak") {
+       unless ( -e "$Conf::dbdir/meta/meta-$pak" ) {
+               fetchfile("meta/meta-$pak", "");
+               move("$Conf::cachedir/meta-$pak", "$Conf::dbdir/meta/meta-$pak");
+       }
+       
+       if ( -z "$Conf::dbdir/meta/meta-$pak" ) {
                fetchfile("meta/meta-$pak", "");
                move("$Conf::cachedir/meta-$pak", "$Conf::dbdir/meta/meta-$pak");
        }