I noticed jrockway has fixed this in C::P::Session. Thanks! Any idea when this might get pushed to CPAN?
BTW -- I had created a test case some time back. I'll attach it just in case you want to add to the C::P::S::State::Cookie package. On Thu, Aug 02, 2007 at 12:17:12PM -0700, Bill Moseley wrote: > I'm still having plenty of session trouble. Maybe it's just related > to the dev server. > > I'm implementing a "remember me", but once a cookie is written (rather > is returned in the request) a new cookie is never sent. > > Is there a way to force a cookie? > > No, Session::DynamicExpiry doesn't help. > > Also, and this is weird, when a cookie is supplied by the browser > besides the Session plugins not sending a cookie, the cookie still > gets setup but *after* the headers have already been sent. > > In Engine::HTTP I added the warn line below: > > if ( my $headers = delete $self->{_header_buf} ) { > DEBUG && warn "write: Wrote headers and first chunk (" . > length($headers . $buffer) . " bytes)\n"; > $ret = $self->NEXT::write( $c, $headers . $buffer ); > > warn $headers, time, "\n"; sleep 2; # WARN DEBUG > } > > Then in a test application I have: > > sub calculate_session_cookie_expires { > my $c = shift; > > warn "in calculate_session_cookie_expires ", time, "\n"; sleep 1; > > return time + 10; > } > > Then I see that calculate_session_cookie_expires is called after the > headers have already been written: > > HTTP/1.0 200 OK > Connection: close > Date: Thu, 02 Aug 2007 19:09:53 GMT > Content-Length: 15 > Status: 200 > > 1186081793 > in calculate_session_cookie_expires 1186081795 > > > > > Here's an entire test application: > > package Foo; > use strict; > use warnings; > use Catalyst::Runtime; > use Catalyst ( > 'Session', > 'Session::State::Cookie', > 'Session::Store::FastMmap', > 'Cache::FastMmap', > # 'Session::DynamicExpiry', > ); > __PACKAGE__->config( name => 'Foo' ); > __PACKAGE__->setup; > > > sub default : Private { > my ( $self, $c ) = @_; > $c->res->body( 'setting session' ); > $c->session->{bar} = time; # Trigger session write > } > > > > sub calculate_session_cookie_expires { > my $c = shift; > > warn "in calculate_session_cookie_expires ", time, "\n"; sleep 1; > > return time + 10; > } > > 1; -- Bill Moseley [EMAIL PROTECTED]
update_cookie.t
Description: Troff document
_______________________________________________ List: Catalyst@lists.scsys.co.uk Listinfo: http://lists.scsys.co.uk/cgi-bin/mailman/listinfo/catalyst Searchable archive: http://www.mail-archive.com/[EMAIL PROTECTED]/ Dev site: http://dev.catalyst.perl.org/