From c1fa05429ac4fb5e09dcb5f8a17636ca1066e4f9 Mon Sep 17 00:00:00 2001 From: Daniel Friesel Date: Thu, 30 Jan 2020 17:44:01 +0100 Subject: Remove session / "save defaults" support due to caching issues nginx cache keys depend on session data, so misbehaving clients (ignoring the refresh dely and continuously requesting a new departure board) with renewed session data could not be cached, impacting DBF performance --- lib/DBInfoscreen.pm | 1 - lib/DBInfoscreen/Controller/Stationboard.pm | 23 +---------------------- templates/layouts/app.html.ep | 8 -------- templates/layouts/legacy.html.ep | 8 -------- 4 files changed, 1 insertion(+), 39 deletions(-) diff --git a/lib/DBInfoscreen.pm b/lib/DBInfoscreen.pm index 9285a82..6be6e2c 100644 --- a/lib/DBInfoscreen.pm +++ b/lib/DBInfoscreen.pm @@ -300,7 +300,6 @@ sub startup { $r->get('/map/:tripid/:lineno')->to('map#route'); $self->defaults( layout => 'app' ); - $self->sessions->default_expiration( 3600 * 24 * 28 ); $r->get('/')->to('stationboard#handle_request'); $r->get('/multi/*station')->to('stationboard#handle_request'); diff --git a/lib/DBInfoscreen/Controller/Stationboard.pm b/lib/DBInfoscreen/Controller/Stationboard.pm index 9eb24f3..e40fda3 100644 --- a/lib/DBInfoscreen/Controller/Stationboard.pm +++ b/lib/DBInfoscreen/Controller/Stationboard.pm @@ -512,8 +512,7 @@ sub handle_request { my $apiver = $self->param('version') // 0; my $callback = $self->param('callback'); my $with_related = !$self->param('no_related'); - my $save_defaults = $self->param('save_defaults') // 0; - my $limit = $self->param('limit') // 0; + my $limit = $self->param('limit') // 0; my @train_types = split( /,/, $self->param('train_types') // q{} ); my %opt = ( cache_hafas => $self->app->cache_hafas, @@ -526,18 +525,6 @@ sub handle_request { ? $Travel::Status::DE::IRIS::VERSION : $Travel::Status::DE::HAFAS::VERSION; - if ($save_defaults) { - $self->session( has_data => 1 ); - $self->session( mode => $template ); - $self->session( hidelowdelay => $hide_low_delay ); - $self->session( hide_opts => $hide_opts ); - $self->session( show_realtime => $show_realtime ); - $self->session( admode => $admode ); - $self->session( dark => $dark_layout ); - $self->session( detailed => $show_details ); - $self->session( no_related => !$with_related ); - } - $self->stash( departures => [] ); $self->stash( title => 'DBF' ); $self->stash( version => $dbf_version ); @@ -574,14 +561,6 @@ sub handle_request { } if ( not $station ) { - if ( $self->session('has_data') ) { - for my $param ( - qw(mode hidelowdelay hide_opts show_realtime admode no_related dark detailed) - ) - { - $self->param( $param => $self->session($param) ); - } - } $self->render( 'landingpage', show_intro => 1 ); return; } diff --git a/templates/layouts/app.html.ep b/templates/layouts/app.html.ep index 543928f..f492e1c 100644 --- a/templates/layouts/app.html.ep +++ b/templates/layouts/app.html.ep @@ -185,14 +185,6 @@ Bitte eine Station aus der Liste auswählen -
-
- %= check_box 'save_defaults' => 1, id => 'id_save_defaults' - -
-
%= submit_button 'Anzeigen'
diff --git a/templates/layouts/legacy.html.ep b/templates/layouts/legacy.html.ep index 98eb6c3..92943d4 100644 --- a/templates/layouts/legacy.html.ep +++ b/templates/layouts/legacy.html.ep @@ -175,14 +175,6 @@ Bitte eine Station aus der Liste auswählen -
-
- %= check_box 'save_defaults' => 1, id => 'id_save_defaults' - -
-
%= submit_button 'Anzeigen'
-- cgit v1.2.3