]> git.deb.at Git - deb/packages.git/blobdiff - lib/Packages/DoIndex.pm
::Dispatcher/::DoIndex: Add Expires header
[deb/packages.git] / lib / Packages / DoIndex.pm
index 164e594884d5c35021aeb55741af60f410d1ab1d..5aba6b3b0dc69588320b50a6e0210db114cede79 100644 (file)
@@ -4,11 +4,11 @@ use strict;
 use warnings;
 
 use CGI qw( :cgi );
+use POSIX qw( strftime );
 use Exporter;
 
 use Deb::Versions;
 use Packages::Config qw( $TOPDIR );
-use Packages::I18N::Locale;
 use Packages::CGI;
 
 our @ISA = qw( Exporter );
@@ -40,6 +40,9 @@ sub send_file {
                              "@{$opts->{suite}}" ) );
     }
 
+    if ($opts->{format} eq 'txt.gz') {
+       $opts->{po_lang} = 'en';
+    }
     my $wwwdir = "$TOPDIR/www";
     my $path = "";
     $path .= "source/" if $opts->{source};
@@ -47,12 +50,7 @@ sub send_file {
     $path .= "$opts->{archive}[0]/" if @{$opts->{archive}} == 1;
     $path .= "$opts->{subsection}[0]/" if @{$opts->{subsection}};
     $path .= "$opts->{priority}[0]/" if @{$opts->{priority}};
-
-    #FIXME: ugly hack
-    if ($opts->{lang} ne 'en' and !-f "$wwwdir/$path$file.$opts->{lang}.$opts->{format}") {
-       $opts->{lang} = 'en';
-    }
-    $path .= "$file.$opts->{lang}.$opts->{format}";
+    $path .= "$file.$opts->{po_lang}.$opts->{format}";
 
     unless (@Packages::CGI::fatal_errors) {
        my $buffer;
@@ -63,7 +61,9 @@ sub send_file {
            $headers{'-content-encoding'} = $encoding{$opts->{format}} if exists $encoding{$opts->{format}};
            my ($size,$mtime) = (stat("$wwwdir/$path"))[7,9];
            $headers{'-content-length'} = $size;
-           $headers{'-last-modified'} = gmtime($mtime);
+           $headers{'-vary'} = 'negotiate,accept-language';
+           $headers{'-last-modified'} = strftime("%a, %d %b %Y %T %z", localtime($mtime));
+           $headers{'-expires'} = strftime("%a, %d %b %Y %T %z", localtime($mtime+(12*3600)));
            print header( %headers );
 
            binmode INDEX;