The following commit has been merged in the master branch:
commit 2334681e0cbdd6d524be612a451b666ecc12c85d
Author: Frank Lichtenheld <[EMAIL PROTECTED]>
Date:   Wed Aug 6 01:24:14 2008 +0200

    Packages::Dispatcher: Refine the Last-Modified logic
    
    Allow some fudge around the cron job run to minimize the
    risk that people get to view outdated data.
    
    Also the test should be <= and not <

diff --git a/lib/Packages/Dispatcher.pm b/lib/Packages/Dispatcher.pm
index 986b12a..a90c47f 100755
--- a/lib/Packages/Dispatcher.pm
+++ b/lib/Packages/Dispatcher.pm
@@ -92,10 +92,15 @@ sub do_dispatch {
     my $homedir = dirname($ENV{SCRIPT_FILENAME}).'/../';
     &Packages::Config::init( $homedir );
     &Packages::DB::init();
+    my $last_modified = $Packages::DB::db_read_time;
+    my $now = time;
+    # allow some fudge, since the db mod time is not the end of
+    # the cron job
+    $last_modified = $now if $last_modified - $now < 3600; 
 
     if ($input->http('If-Modified-Since') and
        (my $modtime = str2time($input->http('If-Modified-Since'), 'UTC'))) {
-       if ($modtime < $Packages::DB::db_read_time) {
+       if ($modtime <= $last_modified) {
            print $input->header(-status => 304);
            exit;
        }
@@ -344,7 +349,7 @@ sub do_dispatch {
                             -type => get_mime($opts{format}),
                             -vary => 'negotiate,accept-language',
                             -last_modified => strftime("%a, %d %b %Y %T %z",
-                                                       
localtime($Packages::DB::db_read_time)),
+                                                       
localtime($last_modified)),
                             );
        #use Data::Dumper;
        #print '<pre>'.Dumper(\%ENV, \%page_content, 
get_all_messages()).'</pre>';

-- 
APT Archive Web-Frontend (Alioth repository)


-- 
To UNSUBSCRIBE, email to [EMAIL PROTECTED]
with a subject of "unsubscribe". Trouble? Contact [EMAIL PROTECTED]

Reply via email to