Huge rewrite of the code: $session->get, ->set etc. do not read from
[catagits/Web-Session.git] / lib / Plack / Middleware / Session.pm
index d3f44a5..6179ca4 100644 (file)
@@ -45,11 +45,9 @@ sub call {
     my $self = shift;
     my $env  = shift;
 
-    $env->{'psgix.session'} = $env->{'plack.session'} = $self->session_class->new(
-        state   => $self->state,
-        store   => $self->store,
-        request => Plack::Request->new( $env )
-    );
+    my $session = $self->session_class->fetch_or_create( Plack::Request->new($env), $self );
+
+    $env->{'psgix.session'} = $env->{'plack.session'} = $session;
 
     my $res = $self->app->($env);
     $self->response_cb($res, sub {