diff options
author | Max Romanov <max.romanov@nginx.com> | 2021-12-27 16:37:35 +0300 |
---|---|---|
committer | Max Romanov <max.romanov@nginx.com> | 2021-12-27 16:37:35 +0300 |
commit | f8452838207d56892fb80b5976b37aab1efcaa1e (patch) | |
tree | 34ae7e0ab5df034c01377de108f9fc964e9d11d1 /test/perl | |
parent | 650784928293bb07b5b4acf4b14d3845b011556d (diff) | |
download | unit-f8452838207d56892fb80b5976b37aab1efcaa1e.tar.gz unit-f8452838207d56892fb80b5976b37aab1efcaa1e.tar.bz2 |
Perl: creating input and error streams if closed.
Application handler can do anything with a stream object (including close it).
Once the stream is closed, Unit creates a new stream.
This closes #616 issue on GitHub.
Diffstat (limited to 'test/perl')
-rw-r--r-- | test/perl/input_buffered_read/psgi.pl | 17 | ||||
-rw-r--r-- | test/perl/input_close/psgi.pl | 8 |
2 files changed, 25 insertions, 0 deletions
diff --git a/test/perl/input_buffered_read/psgi.pl b/test/perl/input_buffered_read/psgi.pl new file mode 100644 index 00000000..4ca699d7 --- /dev/null +++ b/test/perl/input_buffered_read/psgi.pl @@ -0,0 +1,17 @@ +use FileHandle; + +my $app = sub { + my ($environ) = @_; + + $environ->{'psgi.input'}->read(my $body, 1024); + + open my $io, "<", \$body; + + # This makes $io work as FileHandle under 5.8, .10 and .11. + bless $io, 'FileHandle'; + + $environ->{'psgix.input.buffered'} = 1; + $environ->{'psgi.input'} = $io; + + return ['200', ['Content-Length' => length $body], [$body]]; +}; diff --git a/test/perl/input_close/psgi.pl b/test/perl/input_close/psgi.pl new file mode 100644 index 00000000..4a2d9bb9 --- /dev/null +++ b/test/perl/input_close/psgi.pl @@ -0,0 +1,8 @@ +my $app = sub { + my ($environ) = @_; + + $environ->{'psgi.input'}->read(my $body, 1024); + $environ->{'psgi.input'}->close(); + + return ['200', ['Content-Length' => length $body], [$body]]; +}; |