X-Git-Url: http://git.shadowcat.co.uk/gitweb/gitweb.cgi?a=blobdiff_plain;f=lib%2FCatalyst%2FRequest.pm;h=7c1ae96fca1be5f29ddd0eb45d479e2bf4c05843;hb=4491e0cc34b2be2fc485ad01fbbf51b61fed4c22;hp=697e1da14f168a5ab3e0ae66f372efb53ff443f9;hpb=191665f3c88f4b1f81e4198717077ac08d06bdb7;p=catagits%2FCatalyst-Runtime.git diff --git a/lib/Catalyst/Request.pm b/lib/Catalyst/Request.pm index 697e1da..7c1ae96 100644 --- a/lib/Catalyst/Request.pm +++ b/lib/Catalyst/Request.pm @@ -103,6 +103,9 @@ has io_fh => ( sub _build_io_fh { my $self = shift; return $self->env->{'psgix.io'} + || ( + $self->env->{'net.async.http.server.req'} && + $self->env->{'net.async.http.server.req'}->stream) ## Until I can make ioasync cabal see the value of supportin psgix.io (jnap) || die "Your Server does not support psgix.io"; }; @@ -201,6 +204,14 @@ sub _build_parameters { my $parameters = {}; my $body_parameters = $self->body_parameters; my $query_parameters = $self->query_parameters; + + ## setup for downstream plack + $self->env->{'plack.request.merged'} ||= do { + my $query = $self->env->{'plack.request.query'} || Hash::MultiValue->new; + my $body = $self->env->{'plack.request.body'} || Hash::MultiValue->new; + Hash::MultiValue->new($query->flatten, $body->flatten); + }; + # We copy, no references foreach my $name (keys %$query_parameters) { my $param = $query_parameters->{$name};