whoops forgot %attrs from @_... leave shifts --- /usr/lib/perl5/Apache2/Cookie.pm.orig 2010-12-21 15:05:24.000000000 -0800 +++ /usr/lib/perl5/Apache2/Cookie.pm 2010-12-21 15:28:53.000000000 -0800 @@ -4,6 +4,7 @@ use APR::Request::Cookie; use APR::Request::Apache2; use APR::Request qw/encode decode/; +use APR::Request::Error (); use Apache2::RequestRec; use Apache2::RequestUtil; use overload '""' => sub { shift->as_string() }, fallback => 1; @@ -102,7 +103,21 @@
sub new { my $class = shift; - my $jar = $class->APR::Request::Apache2::handle(shift); + my $r = shift; + my $jar; + eval { $jar = $class->APR::Request::Apache2::handle($r) }; + if (my $err = $@) { + my $ref = ref $err; + if ( $ref eq 'APR::Request::Error' + && $err == APR::Request::Error::NOTOKEN + ) { + # skip bad cookies by getting jar from error + $jar = $err->jar; + } + else { + die $err; # rethrows any other APR::Error + } + } my %attrs = @_; while (my ($k, $v) = each %attrs) { $k =~ s/^-//;