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 |
- |
|
|