From: John Napiorkowski Date: Mon, 2 Mar 2015 16:43:44 +0000 (-0600) Subject: Merge branch 'master' into australorp X-Git-Tag: 5.90089_002~51 X-Git-Url: http://git.shadowcat.co.uk/gitweb/gitweb.cgi?p=catagits%2FCatalyst-Runtime.git;a=commitdiff_plain;h=772bd9deac85d462d77bfe2cbbe73f3de1688ebf;hp=-c Merge branch 'master' into australorp Conflicts: Changes lib/Catalyst.pm lib/Catalyst/Runtime.pm --- 772bd9deac85d462d77bfe2cbbe73f3de1688ebf diff --combined Changes index 6b8e5f4,db97404..8fd50ce --- a/Changes +++ b/Changes @@@ -1,8 -1,39 +1,42 @@@ # This file documents the revision history for Perl extension Catalyst. +5.90089_001 - TBA + - 5.90080 - 2014-01-09 + 5.90084 - 2015-02-23 + - Small change to the way body parameters are created in order to prevent + trying to create parameters twice. + - Use new HTTP::Body and code updates to fix issue when POSTed params have + non UTF-8 charset encodings or otherwise complex upload parts that are not + file uploads. In these cases when Catalyst can't determine what the value of + a form upload is, will return an instance of Catalyst::Request::PartData with + all the information need to figure it out. Documentation about this corner + case. For RT https://rt.cpan.org/Ticket/Display.html?id=101556 + - Two new application configuration parameters 'skip_body_param_unicode_decoding' + and 'skip_complex_post_part_handling' to assist you with any backward + compatibility issues with all the new UTF8 work in the most recent stable + Catalyst. You may use these settings to TEMPORARILY disable certain new + features while you are seeking a long term fix. + + 5.90083 - 2015-02-16 + - Fixed typo in support for OPTIONS method matching (andre++) + - Stop using $env->{'plack.request.query'} as a query parsing optimization + since 1) it doesn't belong to us and 2) there's subtle differences in the + way plack parses parameters and catalyst does. This fixes a bug when you + are using middleware that uses Plack::Request to do its thing. This change + might have subtle impact on query parsing. Please test this change! + + 5.90082 - 2015-01-10 + - Fixed a regression created in $response->from_psgi_response and test case + to prevent it happening again. + + 5.90081 - 2015-01-10 + - created class attribute 'finalized_default_middleware' which determines + if the default middleware has been added to the stack yet or not. This + removes a horrible hack that polluted the configuration hash. Added + test case to prevent regressions. + + 5.90080 - 2015-01-09 ++>>>>>>> master - Minor documentation corrections - Make the '79 development series stable diff --combined lib/Catalyst.pm index ceb238e,92621a1..0d8a817 --- a/lib/Catalyst.pm +++ b/lib/Catalyst.pm @@@ -120,7 -120,7 +120,7 @@@ __PACKAGE__->mk_classdata($_ for qw/components arguments dispatcher engine log dispatcher_class engine_loader context_class request_class response_class stats_class setup_finished _psgi_app loading_psgi_file run_options _psgi_middleware - _data_handlers _encoding _encode_check/; + _data_handlers _encoding _encode_check finalized_default_middleware/; __PACKAGE__->dispatcher_class('Catalyst::Dispatcher'); __PACKAGE__->request_class('Catalyst::Request'); @@@ -129,7 -129,7 +129,7 @@@ __PACKAGE__->stats_class('Catalyst::Sta __PACKAGE__->_encode_check(Encode::FB_CROAK | Encode::LEAVE_SRC); # Remember to update this in Catalyst::Runtime as well! -our $VERSION = '5.90084'; +our $VERSION = '5.90089_001'; $VERSION = eval $VERSION if $VERSION =~ /_/; # numify for warning-free dev releases sub import { @@@ -3233,6 -3233,7 +3233,7 @@@ sub _handle_unicode_decoding sub _handle_param_unicode_decoding { my ( $self, $value ) = @_; return unless defined $value; # not in love with just ignoring undefs - jnap + return $value if blessed($value); #don't decode when the value is an object. my $enc = $self->encoding; return try { @@@ -3533,8 -3534,8 +3534,8 @@@ sub setup_middleware @middleware_definitions = reverse(@_); } else { @middleware_definitions = reverse(@{$class->config->{'psgi_middleware'}||[]}) - unless $class->config->{__configured_from_psgi_middleware}; - $class->config->{__configured_from_psgi_middleware} = 1; # Only do this once, just in case some people call setup over and over... + unless $class->finalized_default_middleware; + $class->finalized_default_middleware(1); # Only do this once, just in case some people call setup over and over... } my @middleware = (); @@@ -3882,6 -3883,27 +3883,27 @@@ backwardly compatible) =item * + C + + When creating body parameters from a POST, if we run into a multpart POST + that does not contain uploads, but instead contains inlined complex data + (very uncommon) we cannot reliably convert that into field => value pairs. So + instead we create an instance of L. If this causes + issue for you, you can disable this by setting C + to true (default is false). + + =item * + + C + + Generally we decode incoming POST params based on your declared encoding (the + default for this is to decode UTF-8). If this is causing you trouble and you + do not wish to turn all encoding support off (with the C configuration + parameter) you may disable this step atomically by setting this configuration + parameter to true. + + =item * + C - See L. =item * @@@ -4316,6 -4338,8 +4338,8 @@@ acme: Leon Brocard + andrewalker: André Walker + Andrew Bramble Andrew Ford EA.Ford@ford-mason.co.ukE