X-Git-Url: https://git.deb.at/?p=deb%2Fpackages.git;a=blobdiff_plain;f=lib%2FPackages%2FDoIndex.pm;h=416f3db56db8fc3ec8b1c81180554f69a5e3b0e1;hp=8f96fdf8b20ef6f79a4353480bfca06c3ebc3f9d;hb=376bc6654631bc29e9532c4f99348b75bed23753;hpb=49052885778c856da9b93a5f2f9e8877a827c3c5 diff --git a/lib/Packages/DoIndex.pm b/lib/Packages/DoIndex.pm index 8f96fdf..416f3db 100644 --- a/lib/Packages/DoIndex.pm +++ b/lib/Packages/DoIndex.pm @@ -34,7 +34,7 @@ sub send_file { fatal_error( sprintf( _g( "more than one suite specified for show_static (%s)" ), "@{$opts->{suite}}" ) ); } if (@{$opts->{subsection}} > 1) { - fatal_error( sprintf( _g( "more than one suite specified for show_static (%s)" ), "@{$opts->{suite}}" ) ); + fatal_error( sprintf( _g( "more than one subsection specified for show_static (%s)" ), "@{$opts->{suite}}" ) ); } my $wwwdir = "$TOPDIR/www"; @@ -44,8 +44,11 @@ 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}}; - # we don't have translated index pages for subsections yet - $opts->{lang} = 'en' if @{$opts->{subsection}} or $file eq 'allpackages'; + + #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}"; unless (@Packages::CGI::fatal_errors) { @@ -55,6 +58,9 @@ sub send_file { $headers{'-charset'} = get_charset( $opts->{lang} ); $headers{'-type'} = get_mime( $opts->{format}, 'text/plain' ); $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); print header( %headers ); binmode INDEX;