X-Git-Url: https://git.deb.at/?a=blobdiff_plain;f=lib%2FPackages%2FDoIndex.pm;h=064a18ad2aa4b386c336dccc3d01af144ca25a0e;hb=fa9e1fd3cdaacb0cf72e559fde02ae83812bff0b;hp=b204d3d12c4d322def0cd483e2f6dee82c26a6c9;hpb=6b32484cb228479df13814cf1ba0f6667ff7148d;p=deb%2Fpackages.git diff --git a/lib/Packages/DoIndex.pm b/lib/Packages/DoIndex.pm index b204d3d..064a18a 100644 --- a/lib/Packages/DoIndex.pm +++ b/lib/Packages/DoIndex.pm @@ -21,6 +21,15 @@ sub do_allpackages { return send_file( 'allpackages', @_ ); } +# no real need for more flexibility here, I think... +my %mime_types = ( + txt => 'text/plain', + 'txt.gz' => 'text/plain', + html => 'text/html', + ); +my %encoding = ( + 'txt.gz' => 'x-gzip', + ); sub send_file { my ($file, $params, $opts, $html_header) = @_; @@ -39,14 +48,17 @@ sub send_file { $path .= "$opts->{archive}[0]/" if @{$opts->{archive}} == 1; $path .= "$opts->{subsection}[0]/" if @{$opts->{subsection}}; # we don't have translated index pages for subsections yet - $opts->{lang} = 'en' if @{$opts->{subsection}}; + $opts->{lang} = 'en' if @{$opts->{subsection}} or $file eq 'allpackages'; $path .= "$file.$opts->{lang}.$opts->{format}"; unless (@Packages::CGI::fatal_errors) { my $buffer; if (open( INDEX, '<', "$wwwdir/$path" )) { - my $charset = get_charset( $opts->{lang} ); - print header( -charset => $charset ); + my %headers; + $headers{'-charset'} = get_charset( $opts->{lang} ); + $headers{'-type'} = $mime_types{$opts->{format}} || 'text/plain'; + $headers{'-content-encoding'} = $encoding{$opts->{format}} if exists $encoding{$opts->{format}}; + print header( %headers ); binmode INDEX; while (read INDEX, $buffer, 4096) { @@ -71,7 +83,7 @@ sub send_file { suite => 'all', section => 'all', exact => 1, - debug => $Packages::Search::debug, + debug => $Packages::CGI::debug, }, ); }