]> git.deb.at Git - deb/packages.git/blobdiff - lib/Packages/Dispatcher.pm
fix off-by-one after switching on the brain again
[deb/packages.git] / lib / Packages / Dispatcher.pm
index e8f0679434c67c55cb41a4f4494f03c09f2e6763..c247be94d3a4fb1685d42b21849b82a038cdf2e6 100755 (executable)
@@ -64,12 +64,12 @@ sub do_dispatch {
     delete $ENV{'LC_ALL'};
     delete $ENV{'LC_MESSAGES'};
 
-    my %SUITES_ALIAS = ( oldstable => 'sarge',
-                        stable => 'etch',
-                        testing => 'lenny',
+    my %SUITES_ALIAS = ( oldstable => 'etch',
+                        stable => 'lenny',
+                        testing => 'squeeze',
                         unstable => 'sid',
-                        '3.1' => 'sarge',
-                        '4.0' => 'etch' );
+                        '4.0' => 'etch',
+                        '5.0' => 'lenny' );
 
     # Read in all the variables set by the form
     my $input;
@@ -94,13 +94,16 @@ sub do_dispatch {
     &Packages::DB::init();
     my $last_modified = $Packages::DB::db_read_time;
     my $now = time;
+    my $expires = $last_modified + (12*3600);
+    $expires = $now + 3600 if $expires < $now;
     # allow some fudge, since the db mod time is not the end of
     # the cron job
-    $last_modified = $now if $last_modified - $now < 3600; 
+    $last_modified = $now if $now - $last_modified < 3600;
 
     if ($input->http('If-Modified-Since') and
-       (my $modtime = str2time($input->http('If-Modified-Since'), 'UTC'))) {
-       if ($modtime <= $last_modified) {
+       (my $client_timestamp = str2time($input->http('If-Modified-Since'), 'UTC'))) {
+       if ($client_timestamp >= $last_modified) {
+           # we are not modified since asked -> return "304 Not Modified"
            print $input->header(-status => 304);
            exit;
        }
@@ -175,7 +178,11 @@ sub do_dispatch {
        } 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';
+           if ($components[0] eq 'index') {
+               $what_to_do = 'homepage';
+           } else {
+               $what_to_do = 'search';
+           }
        } else {
 
            for ($components[-1]) {
@@ -351,7 +358,7 @@ sub do_dispatch {
                             -last_modified => strftime("%a, %d %b %Y %T %z",
                                                        localtime($last_modified)),
                             -expires => strftime("%a, %d %b %Y %T %z",
-                                                 localtime($last_modified + (12*3600))),
+                                                 localtime($expires)),
                             );
        #use Data::Dumper;
        #print '<pre>'.Dumper(\%ENV, \%page_content, get_all_messages()).'</pre>';