X-Git-Url: https://git.deb.at/?a=blobdiff_plain;f=lib%2FPackages%2FDoIndex.pm;h=40f79fd67ac28784ff33da2349a752b35678e3d5;hb=6a99f4714326a371636fae11a2613160a32d8c8f;hp=32b5f7c9d8ef6c5b47f2acf77aac105813ad5eee;hpb=5d677ca23ddd73735630296f9d3e46d276b3c40c;p=deb%2Fpackages.git diff --git a/lib/Packages/DoIndex.pm b/lib/Packages/DoIndex.pm index 32b5f7c..40f79fd 100644 --- a/lib/Packages/DoIndex.pm +++ b/lib/Packages/DoIndex.pm @@ -4,6 +4,7 @@ use strict; use warnings; use CGI qw( :cgi ); +use POSIX qw( strftime ); use Exporter; use Deb::Versions; @@ -11,7 +12,12 @@ use Packages::Config qw( $TOPDIR ); use Packages::CGI; our @ISA = qw( Exporter ); -our @EXPORT = qw( do_index do_allpackages ); +our @EXPORT = qw( do_homepage do_index do_allpackages ); + +sub do_homepage { + $_[1]->{suite} = []; + return send_file( 'index', @_ ); +} sub do_index { return send_file( 'index', @_ ); @@ -45,8 +51,8 @@ sub send_file { my $wwwdir = "$TOPDIR/www"; my $path = ""; $path .= "source/" if $opts->{source}; - $path .= "$opts->{suite}[0]/"; -# $path .= "$opts->{archive}[0]/" if @{$opts->{archive}} == 1; + $path .= "$opts->{suite}[0]/" if @{$opts->{suite}}; + $path .= "$opts->{archive}[0]/" if @{$opts->{archive}} == 1; $path .= "$opts->{subsection}[0]/" if @{$opts->{subsection}}; $path .= "$opts->{priority}[0]/" if @{$opts->{priority}}; $path .= "$file.$opts->{po_lang}.$opts->{format}"; @@ -60,7 +66,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+(365*24*3600))); print header( %headers ); binmode INDEX;