]> git.deb.at Git - deb/packages.git/blobdiff - lib/Packages/Dispatcher.pm
Packages::I18N::*: Add some missing definitions for Khmer
[deb/packages.git] / lib / Packages / Dispatcher.pm
index c2500116f10593f69406af17c084c921def23660..d8b750c18d784604f2d37d461b16e50c543ede97 100755 (executable)
@@ -92,10 +92,17 @@ 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;
+    my $expires = $last_modified + (12*3600);
+    $expires = $now + 3600 if $expires < $now;
+    # allow some fudge, since the db mod time is not the end of
+    # the cron job
+    $last_modified = $now if $now - $last_modified < 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;
        }
@@ -342,8 +349,11 @@ sub do_dispatch {
     unless (@Packages::CGI::fatal_errors) {
        print $input->header(-charset => $charset,
                             -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)),
+                            -expires => strftime("%a, %d %b %Y %T %z",
+                                                 localtime($expires)),
                             );
        #use Data::Dumper;
        #print '<pre>'.Dumper(\%ENV, \%page_content, get_all_messages()).'</pre>';