|
Lines 56-65
sub _psgi_env {
Link Here
|
| 56 |
|
56 |
|
| 57 |
my $env = $c->req->env; |
57 |
my $env = $c->req->env; |
| 58 |
|
58 |
|
| 59 |
my $body = $c->req->body; |
|
|
| 60 |
$env = { |
59 |
$env = { |
| 61 |
%$env, |
60 |
%$env, |
| 62 |
'psgi.input' => IO::Scalar->new(\$body), |
61 |
'psgi.input' => $self->_psgi_input($c), |
| 63 |
'psgi.errors' => *STDERR, |
62 |
'psgi.errors' => *STDERR, |
| 64 |
REQUEST_METHOD => $c->req->method, |
63 |
REQUEST_METHOD => $c->req->method, |
| 65 |
QUERY_STRING => $c->req->url->query->to_string, |
64 |
QUERY_STRING => $c->req->url->query->to_string, |
|
Lines 81-84
sub _psgi_env {
Link Here
|
| 81 |
return $env; |
80 |
return $env; |
| 82 |
} |
81 |
} |
| 83 |
|
82 |
|
|
|
83 |
sub _psgi_input { |
| 84 |
my ($self, $c) = @_; |
| 85 |
|
| 86 |
my $body; |
| 87 |
|
| 88 |
my $content = $c->req->content; |
| 89 |
|
| 90 |
if ($content->is_multipart) { |
| 91 |
# Rebuild the multipart content |
| 92 |
$body = ''; |
| 93 |
my $boundary = $content->boundary; |
| 94 |
my $CRLF = "\r\n"; |
| 95 |
for my $part (@{ $content->parts }) { |
| 96 |
$body .= "$CRLF--$boundary$CRLF"; |
| 97 |
for my $name (@{ $part->headers->names }) { |
| 98 |
my $value = $part->headers->header($name); |
| 99 |
$body .= "$name: $value$CRLF"; |
| 100 |
} |
| 101 |
$body .= $CRLF; |
| 102 |
$body .= $part->asset->slurp; |
| 103 |
} |
| 104 |
$body .= "$CRLF--$boundary--$CRLF"; |
| 105 |
} else { |
| 106 |
$body = $c->req->body; |
| 107 |
} |
| 108 |
|
| 109 |
return IO::Scalar->new(\$body); |
| 110 |
} |
| 111 |
|
| 84 |
1; |
112 |
1; |
| 85 |
- |
|
|