X-Git-Url: https://git.deb.at/w?a=blobdiff_plain;f=cgi-bin%2Fdispatcher.pl;h=f03c55970aee3ebc5cd4d6e3702d30a3dc026fad;hb=d9c10aaf0bb03bfb75404f9041967b9f91012bdb;hp=0de4f1cb0bd177df4911a6da228ad8a3ba07c9d8;hpb=1d735d4df7e110481faa67897ba4c35936998fc0;p=deb%2Fpackages.git diff --git a/cgi-bin/dispatcher.pl b/cgi-bin/dispatcher.pl index 0de4f1c..f03c559 100755 --- a/cgi-bin/dispatcher.pl +++ b/cgi-bin/dispatcher.pl @@ -16,7 +16,7 @@ use POSIX; use URI::Escape; use HTML::Entities; use DB_File; -use Benchmark; +use Benchmark ':hireswallclock'; use Deb::Versions; use Packages::Config qw( $DBDIR $ROOT $SEARCH_CGI $SEARCH_PAGE @@ -28,6 +28,7 @@ use Packages::HTML (); use Packages::Sections; use Packages::DoSearch; +use Packages::DoSearchContents; use Packages::DoShow; use Packages::DoDownload; use Packages::DoFilelist; @@ -57,7 +58,7 @@ $Packages::CGI::debug = $debug; my $what_to_do = 'show'; my $source = 0; -if (my $path = $input->path_info()) { +if (my $path = $input->path_info() || $input->param('PATH_INFO')) { my @components = grep { $_ } map { lc $_ } split /\/+/, $path; debug( "components[0]=$components[0]", 2 ); @@ -151,7 +152,7 @@ my %params_def = ( keywords => { default => undef, match => '^([\w-]+)$', array => ',', var => \@archives, replace => { all => \@ARCHIVES, - default => [qw(us security non-US)]} }, + default => [qw(us security non-US)]} }, exact => { default => 0, match => '^(\w+)$', }, source => { default => 0, match => '^(\d+)$', }, searchon => { default => 'names', match => '^(\w+)$', }, @@ -162,7 +163,7 @@ my %params_def = ( keywords => { default => undef, subsection => { default => 'default', match => '^([\w-]+)$', array => ',', var => \@subsections, replace => { default => [] } }, - arch => { default => 'any', match => '^(\w+)$', + arch => { default => 'any', match => '^([\w-]+)$', array => ',', var => \@archs, replace => { any => \@ARCHITECTURES } }, ); @@ -182,6 +183,9 @@ if ((($opts{searchon} eq 'names') && $opts{source}) || } else { $opts{searchon_form} = $opts{searchon}; } +if ($opts{searchon} eq 'contents' or $opts{searchon} eq 'filenames') { + $what_to_do = 'search_contents'; +} my $pet1 = new Benchmark; my $petd = timediff($pet1, $pet0);