X-Git-Url: http://git.shadowcat.co.uk/gitweb/gitweb.cgi?a=blobdiff_plain;f=lib%2FPlack%2FMiddleware%2FSession.pm;h=6a8fac372e70554ade221a433f2348f720992215;hb=caf3bd90cdf0aebba03039729f0ad60c0d06c6e8;hp=6179ca48a9428bfbf44fb9ff28ea1f15fdf34494;hpb=4a0cb5a0600289cfa5ffb0dbf005b154dfe681f0;p=catagits%2FWeb-Session.git diff --git a/lib/Plack/Middleware/Session.pm b/lib/Plack/Middleware/Session.pm index 6179ca4..6a8fac3 100644 --- a/lib/Plack/Middleware/Session.pm +++ b/lib/Plack/Middleware/Session.pm @@ -41,18 +41,23 @@ sub inflate_backend { Plack::Util::load_class(@class)->new(); } +sub fetch_or_create_session { + my($self, $req) = @_; + $self->session_class->fetch_or_create($req, $self); +} + sub call { my $self = shift; my $env = shift; - my $session = $self->session_class->fetch_or_create( Plack::Request->new($env), $self ); + my $session = $self->fetch_or_create_session(Plack::Request->new($env)); $env->{'psgix.session'} = $env->{'plack.session'} = $session; my $res = $self->app->($env); $self->response_cb($res, sub { my $res = Plack::Response->new(@{$_[0]}); - $env->{'psgix.session'}->finalize( $res ); + $env->{'psgix.session'}->finalize($res); $res = $res->finalize; $_[0]->[0] = $res->[0]; $_[0]->[1] = $res->[1];