X-Git-Url: https://git.deb.at/?a=blobdiff_plain;f=cgi-bin%2Fdispatcher.pl;h=3dca95cfdbaa5d4843cfd5a6fe2333671594de45;hb=47c93cb066364b11f0b216589ddc68671435b060;hp=f6578087c4e5a1a529710ba76e4b6d19caf21681;hpb=34e7ce69a0076dd1cb795766eb3fa12d60e54878;p=deb%2Fpackages.git diff --git a/cgi-bin/dispatcher.pl b/cgi-bin/dispatcher.pl index f657808..3dca95c 100755 --- a/cgi-bin/dispatcher.pl +++ b/cgi-bin/dispatcher.pl @@ -16,11 +16,10 @@ 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 - @SUITES @SECTIONS @ARCHIVES @ARCHITECTURES ); +use Packages::Config qw( $DBDIR $ROOT @SUITES @SECTIONS @ARCHIVES @ARCHITECTURES ); use Packages::CGI; use Packages::DB; use Packages::Search qw( :all ); @@ -59,19 +58,22 @@ $Packages::CGI::debug = $debug; my $what_to_do = 'show'; my $source = 0; if (my $path = $input->path_info() || $input->param('PATH_INFO')) { - my @components = grep { $_ } map { lc $_ } split /\/+/, $path; + my @components = grep { $_ } map { lc $_ } split /\//, $path; - debug( "components[0]=$components[0]", 2 ); - if ($components[0] eq 'search') { - shift @components; - $what_to_do = 'search'; - } - if ($components[0] eq 'source') { + debug( "components[0]=$components[0]", 2 ) if @components>0; + if (@components > 0 and $components[0] eq 'source') { shift @components; $input->param( 'source', 1 ); } - if (@components == 0) { - # we just hope we get the information through our parameters... + if (@components > 0 and $components[0] eq 'search') { + shift @components; + $what_to_do = 'search'; + # Done + fatal_error( "search doesn't take any more path elements" ) + if @components > 0; + } elsif (@components == 0) { + fatal_error( "We're supposed to display the homepage here, instead of + getting dispatch.pl" ); } elsif (@components == 1) { $what_to_do = 'search'; } else {