Apologies if this arrives twice - I realised I hadn't confirmed my subscription when I first sent it... Hi all, Just signed up, we're just starting to use Dancer - so far it's all being awesome. However :) I hit a bit of a weird thing today - it's probably me misreading something. If I do this: set_cookie 'blah'=> "blah", expires => (time + 3600); as per the docs here: http://search.cpan.org/~sukria/Dancer-1.3003/lib/Dancer.pm#set_cookie the next time you visit it does a comparison in Dancer::Cookies::has_changed to see if it's been updated. The value it's checking against in this case is: ['blah'], which is then compared to "blah" and obviously aren't equal it then drops a replacement with 'blah', but missing the expiry - causing the cookie to expire immediately. either of these patches will work: +++ Cookies.pm 2011-02-09 17:30:11.000000000 +0000 @@ -40,6 +40,7 @@ sub has_changed { my ($self, $cookie) = @_; my ($name, $value) = ($cookie->{name}, $cookie->{value}); + $value=$value->[0] if ref $value eq "ARRAY"; or +++ Cookies.pm 2011-02-09 17:31:14.000000000 +0000 @@ -39,7 +39,7 @@ # return true if the given cookie is not the same as the one sent by the client sub has_changed { my ($self, $cookie) = @_; - my ($name, $value) = ($cookie->{name}, $cookie->{value}); + my ($name, $value) = ($cookie->{name}, $cookie->value); or maybe it's something in Dancer::Renderer, or Dancer::Cookie... Am I on the right track? or have I done something wrong in my cookie setting? cheers. Alex
participants (1)
-
Alex Knowles