]> git.ipfire.org Git - thirdparty/bugzilla.git/commitdiff
2nd attempt to fix bug 414726: Bugzilla::Update never updates bugzilla-update.xml...
authorlpsolit%gmail.com <>
Sat, 3 May 2008 00:17:01 +0000 (00:17 +0000)
committerlpsolit%gmail.com <>
Sat, 3 May 2008 00:17:01 +0000 (00:17 +0000)
Bugzilla/Update.pm

index e9da91afb37c3671915e221f02be5d61c7bcaea6..d3f780570e1ead3390ece8070924094955fdffc4 100644 (file)
@@ -40,20 +40,9 @@ sub get_notifications {
     if (!-e $local_file || (time() - (stat($local_file))[9] > TIME_INTERVAL)) {
         # Are we sure we didn't try to refresh this file already
         # but we failed because we cannot modify its timestamp?
-        my $can_alter = 1;
-        if (-e $local_file) {
-            # Try to alter its last modification time. We first save the
-            # access and modification times of the file to restore them
-            # right after our test.
-            my $atime = (stat($local_file))[8];
-            my $mtime = (stat($local_file))[9];
-            $can_alter = utime(undef, undef, $local_file);
-            # Restore the access and modification times to their
-            # original values, else LWP::UserAgent will never see the
-            # updated file on the server as newer than our local one.
-            utime($atime, $mtime, $local_file);
-        }
+        my $can_alter = (-e $local_file) ? utime(undef, undef, $local_file) : 1;
         if ($can_alter) {
+            unlink $local_file; # Make sure the old copy is away.
             my $error = _synchronize_data();
             # If an error is returned, leave now.
             return $error if $error;
@@ -156,8 +145,6 @@ sub _synchronize_data {
     else {
         $ua->env_proxy;
     }
-    # Download the file from the server if its modification time is newer
-    # than the local one.
     $ua->mirror(REMOTE_FILE, $local_file);
 
     # $ua->mirror() forces the modification time of the local XML file