Mercurial > hg > nginx-tests
annotate stream_js_fetch_init.t @ 1888:cc13f7b098db
Tests: avoid premature stream reset in h3_limit_req.t.
STREAM and RESET_STREAM frames could be batched, which prevents the stream
from being processed and changes the status code. The fix is to wait for
the stream acknowledgment. Here we just look at the largest acknowledged,
this should be enough for simple cases.
author | Sergey Kandaurov <pluknet@nginx.com> |
---|---|
date | Tue, 04 Apr 2023 00:33:54 +0400 |
parents | f98884ad7700 |
children |
rev | line source |
---|---|
1807
01fcc82a435a
Tests: added stream js test for Fetch object reinitialization.
Dmitry Volyntsev <xeioex@nginx.com>
parents:
diff
changeset
|
1 #!/usr/bin/perl |
01fcc82a435a
Tests: added stream js test for Fetch object reinitialization.
Dmitry Volyntsev <xeioex@nginx.com>
parents:
diff
changeset
|
2 |
01fcc82a435a
Tests: added stream js test for Fetch object reinitialization.
Dmitry Volyntsev <xeioex@nginx.com>
parents:
diff
changeset
|
3 # (C) Dmitry Volyntsev |
01fcc82a435a
Tests: added stream js test for Fetch object reinitialization.
Dmitry Volyntsev <xeioex@nginx.com>
parents:
diff
changeset
|
4 # (C) Nginx, Inc. |
01fcc82a435a
Tests: added stream js test for Fetch object reinitialization.
Dmitry Volyntsev <xeioex@nginx.com>
parents:
diff
changeset
|
5 |
01fcc82a435a
Tests: added stream js test for Fetch object reinitialization.
Dmitry Volyntsev <xeioex@nginx.com>
parents:
diff
changeset
|
6 # Tests for stream njs module, Response prototype reinitialization. |
01fcc82a435a
Tests: added stream js test for Fetch object reinitialization.
Dmitry Volyntsev <xeioex@nginx.com>
parents:
diff
changeset
|
7 |
01fcc82a435a
Tests: added stream js test for Fetch object reinitialization.
Dmitry Volyntsev <xeioex@nginx.com>
parents:
diff
changeset
|
8 ############################################################################### |
01fcc82a435a
Tests: added stream js test for Fetch object reinitialization.
Dmitry Volyntsev <xeioex@nginx.com>
parents:
diff
changeset
|
9 |
01fcc82a435a
Tests: added stream js test for Fetch object reinitialization.
Dmitry Volyntsev <xeioex@nginx.com>
parents:
diff
changeset
|
10 use warnings; |
01fcc82a435a
Tests: added stream js test for Fetch object reinitialization.
Dmitry Volyntsev <xeioex@nginx.com>
parents:
diff
changeset
|
11 use strict; |
01fcc82a435a
Tests: added stream js test for Fetch object reinitialization.
Dmitry Volyntsev <xeioex@nginx.com>
parents:
diff
changeset
|
12 |
01fcc82a435a
Tests: added stream js test for Fetch object reinitialization.
Dmitry Volyntsev <xeioex@nginx.com>
parents:
diff
changeset
|
13 use Test::More; |
01fcc82a435a
Tests: added stream js test for Fetch object reinitialization.
Dmitry Volyntsev <xeioex@nginx.com>
parents:
diff
changeset
|
14 |
01fcc82a435a
Tests: added stream js test for Fetch object reinitialization.
Dmitry Volyntsev <xeioex@nginx.com>
parents:
diff
changeset
|
15 BEGIN { use FindBin; chdir($FindBin::Bin); } |
01fcc82a435a
Tests: added stream js test for Fetch object reinitialization.
Dmitry Volyntsev <xeioex@nginx.com>
parents:
diff
changeset
|
16 |
01fcc82a435a
Tests: added stream js test for Fetch object reinitialization.
Dmitry Volyntsev <xeioex@nginx.com>
parents:
diff
changeset
|
17 use lib 'lib'; |
01fcc82a435a
Tests: added stream js test for Fetch object reinitialization.
Dmitry Volyntsev <xeioex@nginx.com>
parents:
diff
changeset
|
18 use Test::Nginx; |
01fcc82a435a
Tests: added stream js test for Fetch object reinitialization.
Dmitry Volyntsev <xeioex@nginx.com>
parents:
diff
changeset
|
19 use Test::Nginx::Stream qw/ stream /; |
01fcc82a435a
Tests: added stream js test for Fetch object reinitialization.
Dmitry Volyntsev <xeioex@nginx.com>
parents:
diff
changeset
|
20 |
01fcc82a435a
Tests: added stream js test for Fetch object reinitialization.
Dmitry Volyntsev <xeioex@nginx.com>
parents:
diff
changeset
|
21 ############################################################################### |
01fcc82a435a
Tests: added stream js test for Fetch object reinitialization.
Dmitry Volyntsev <xeioex@nginx.com>
parents:
diff
changeset
|
22 |
01fcc82a435a
Tests: added stream js test for Fetch object reinitialization.
Dmitry Volyntsev <xeioex@nginx.com>
parents:
diff
changeset
|
23 select STDERR; $| = 1; |
01fcc82a435a
Tests: added stream js test for Fetch object reinitialization.
Dmitry Volyntsev <xeioex@nginx.com>
parents:
diff
changeset
|
24 select STDOUT; $| = 1; |
01fcc82a435a
Tests: added stream js test for Fetch object reinitialization.
Dmitry Volyntsev <xeioex@nginx.com>
parents:
diff
changeset
|
25 |
01fcc82a435a
Tests: added stream js test for Fetch object reinitialization.
Dmitry Volyntsev <xeioex@nginx.com>
parents:
diff
changeset
|
26 my $t = Test::Nginx->new()->has(qw/http rewrite stream/) |
01fcc82a435a
Tests: added stream js test for Fetch object reinitialization.
Dmitry Volyntsev <xeioex@nginx.com>
parents:
diff
changeset
|
27 ->write_file_expand('nginx.conf', <<'EOF'); |
01fcc82a435a
Tests: added stream js test for Fetch object reinitialization.
Dmitry Volyntsev <xeioex@nginx.com>
parents:
diff
changeset
|
28 |
01fcc82a435a
Tests: added stream js test for Fetch object reinitialization.
Dmitry Volyntsev <xeioex@nginx.com>
parents:
diff
changeset
|
29 %%TEST_GLOBALS%% |
01fcc82a435a
Tests: added stream js test for Fetch object reinitialization.
Dmitry Volyntsev <xeioex@nginx.com>
parents:
diff
changeset
|
30 |
01fcc82a435a
Tests: added stream js test for Fetch object reinitialization.
Dmitry Volyntsev <xeioex@nginx.com>
parents:
diff
changeset
|
31 daemon off; |
01fcc82a435a
Tests: added stream js test for Fetch object reinitialization.
Dmitry Volyntsev <xeioex@nginx.com>
parents:
diff
changeset
|
32 |
01fcc82a435a
Tests: added stream js test for Fetch object reinitialization.
Dmitry Volyntsev <xeioex@nginx.com>
parents:
diff
changeset
|
33 events { |
01fcc82a435a
Tests: added stream js test for Fetch object reinitialization.
Dmitry Volyntsev <xeioex@nginx.com>
parents:
diff
changeset
|
34 } |
01fcc82a435a
Tests: added stream js test for Fetch object reinitialization.
Dmitry Volyntsev <xeioex@nginx.com>
parents:
diff
changeset
|
35 |
01fcc82a435a
Tests: added stream js test for Fetch object reinitialization.
Dmitry Volyntsev <xeioex@nginx.com>
parents:
diff
changeset
|
36 stream { |
01fcc82a435a
Tests: added stream js test for Fetch object reinitialization.
Dmitry Volyntsev <xeioex@nginx.com>
parents:
diff
changeset
|
37 %%TEST_GLOBALS_STREAM%% |
01fcc82a435a
Tests: added stream js test for Fetch object reinitialization.
Dmitry Volyntsev <xeioex@nginx.com>
parents:
diff
changeset
|
38 |
01fcc82a435a
Tests: added stream js test for Fetch object reinitialization.
Dmitry Volyntsev <xeioex@nginx.com>
parents:
diff
changeset
|
39 js_import test.js; |
01fcc82a435a
Tests: added stream js test for Fetch object reinitialization.
Dmitry Volyntsev <xeioex@nginx.com>
parents:
diff
changeset
|
40 |
01fcc82a435a
Tests: added stream js test for Fetch object reinitialization.
Dmitry Volyntsev <xeioex@nginx.com>
parents:
diff
changeset
|
41 server { |
01fcc82a435a
Tests: added stream js test for Fetch object reinitialization.
Dmitry Volyntsev <xeioex@nginx.com>
parents:
diff
changeset
|
42 listen 127.0.0.1:8081; |
01fcc82a435a
Tests: added stream js test for Fetch object reinitialization.
Dmitry Volyntsev <xeioex@nginx.com>
parents:
diff
changeset
|
43 js_access test.access_ok; |
01fcc82a435a
Tests: added stream js test for Fetch object reinitialization.
Dmitry Volyntsev <xeioex@nginx.com>
parents:
diff
changeset
|
44 proxy_pass 127.0.0.1:8090; |
01fcc82a435a
Tests: added stream js test for Fetch object reinitialization.
Dmitry Volyntsev <xeioex@nginx.com>
parents:
diff
changeset
|
45 } |
01fcc82a435a
Tests: added stream js test for Fetch object reinitialization.
Dmitry Volyntsev <xeioex@nginx.com>
parents:
diff
changeset
|
46 } |
01fcc82a435a
Tests: added stream js test for Fetch object reinitialization.
Dmitry Volyntsev <xeioex@nginx.com>
parents:
diff
changeset
|
47 |
01fcc82a435a
Tests: added stream js test for Fetch object reinitialization.
Dmitry Volyntsev <xeioex@nginx.com>
parents:
diff
changeset
|
48 http { |
01fcc82a435a
Tests: added stream js test for Fetch object reinitialization.
Dmitry Volyntsev <xeioex@nginx.com>
parents:
diff
changeset
|
49 %%TEST_GLOBALS_HTTP%% |
01fcc82a435a
Tests: added stream js test for Fetch object reinitialization.
Dmitry Volyntsev <xeioex@nginx.com>
parents:
diff
changeset
|
50 |
01fcc82a435a
Tests: added stream js test for Fetch object reinitialization.
Dmitry Volyntsev <xeioex@nginx.com>
parents:
diff
changeset
|
51 js_import test.js; |
01fcc82a435a
Tests: added stream js test for Fetch object reinitialization.
Dmitry Volyntsev <xeioex@nginx.com>
parents:
diff
changeset
|
52 |
01fcc82a435a
Tests: added stream js test for Fetch object reinitialization.
Dmitry Volyntsev <xeioex@nginx.com>
parents:
diff
changeset
|
53 server { |
01fcc82a435a
Tests: added stream js test for Fetch object reinitialization.
Dmitry Volyntsev <xeioex@nginx.com>
parents:
diff
changeset
|
54 listen 127.0.0.1:8080; |
01fcc82a435a
Tests: added stream js test for Fetch object reinitialization.
Dmitry Volyntsev <xeioex@nginx.com>
parents:
diff
changeset
|
55 server_name localhost; |
01fcc82a435a
Tests: added stream js test for Fetch object reinitialization.
Dmitry Volyntsev <xeioex@nginx.com>
parents:
diff
changeset
|
56 |
01fcc82a435a
Tests: added stream js test for Fetch object reinitialization.
Dmitry Volyntsev <xeioex@nginx.com>
parents:
diff
changeset
|
57 location /njs { |
01fcc82a435a
Tests: added stream js test for Fetch object reinitialization.
Dmitry Volyntsev <xeioex@nginx.com>
parents:
diff
changeset
|
58 js_content test.njs; |
01fcc82a435a
Tests: added stream js test for Fetch object reinitialization.
Dmitry Volyntsev <xeioex@nginx.com>
parents:
diff
changeset
|
59 } |
01fcc82a435a
Tests: added stream js test for Fetch object reinitialization.
Dmitry Volyntsev <xeioex@nginx.com>
parents:
diff
changeset
|
60 |
01fcc82a435a
Tests: added stream js test for Fetch object reinitialization.
Dmitry Volyntsev <xeioex@nginx.com>
parents:
diff
changeset
|
61 location /success { |
01fcc82a435a
Tests: added stream js test for Fetch object reinitialization.
Dmitry Volyntsev <xeioex@nginx.com>
parents:
diff
changeset
|
62 return 200; |
01fcc82a435a
Tests: added stream js test for Fetch object reinitialization.
Dmitry Volyntsev <xeioex@nginx.com>
parents:
diff
changeset
|
63 } |
01fcc82a435a
Tests: added stream js test for Fetch object reinitialization.
Dmitry Volyntsev <xeioex@nginx.com>
parents:
diff
changeset
|
64 } |
01fcc82a435a
Tests: added stream js test for Fetch object reinitialization.
Dmitry Volyntsev <xeioex@nginx.com>
parents:
diff
changeset
|
65 } |
01fcc82a435a
Tests: added stream js test for Fetch object reinitialization.
Dmitry Volyntsev <xeioex@nginx.com>
parents:
diff
changeset
|
66 |
01fcc82a435a
Tests: added stream js test for Fetch object reinitialization.
Dmitry Volyntsev <xeioex@nginx.com>
parents:
diff
changeset
|
67 EOF |
01fcc82a435a
Tests: added stream js test for Fetch object reinitialization.
Dmitry Volyntsev <xeioex@nginx.com>
parents:
diff
changeset
|
68 |
01fcc82a435a
Tests: added stream js test for Fetch object reinitialization.
Dmitry Volyntsev <xeioex@nginx.com>
parents:
diff
changeset
|
69 my $p = port(8080); |
01fcc82a435a
Tests: added stream js test for Fetch object reinitialization.
Dmitry Volyntsev <xeioex@nginx.com>
parents:
diff
changeset
|
70 |
01fcc82a435a
Tests: added stream js test for Fetch object reinitialization.
Dmitry Volyntsev <xeioex@nginx.com>
parents:
diff
changeset
|
71 $t->write_file('test.js', <<EOF); |
01fcc82a435a
Tests: added stream js test for Fetch object reinitialization.
Dmitry Volyntsev <xeioex@nginx.com>
parents:
diff
changeset
|
72 function test_njs(r) { |
01fcc82a435a
Tests: added stream js test for Fetch object reinitialization.
Dmitry Volyntsev <xeioex@nginx.com>
parents:
diff
changeset
|
73 r.return(200, njs.version); |
01fcc82a435a
Tests: added stream js test for Fetch object reinitialization.
Dmitry Volyntsev <xeioex@nginx.com>
parents:
diff
changeset
|
74 } |
01fcc82a435a
Tests: added stream js test for Fetch object reinitialization.
Dmitry Volyntsev <xeioex@nginx.com>
parents:
diff
changeset
|
75 |
01fcc82a435a
Tests: added stream js test for Fetch object reinitialization.
Dmitry Volyntsev <xeioex@nginx.com>
parents:
diff
changeset
|
76 async function access_ok(s) { |
1812
f98884ad7700
Test: avoiding forbidden Host header in js fetch tests.
Dmitry Volyntsev <xeioex@nginx.com>
parents:
1811
diff
changeset
|
77 let reply = await ngx.fetch('http://127.0.0.1:$p/success'); |
1807
01fcc82a435a
Tests: added stream js test for Fetch object reinitialization.
Dmitry Volyntsev <xeioex@nginx.com>
parents:
diff
changeset
|
78 |
01fcc82a435a
Tests: added stream js test for Fetch object reinitialization.
Dmitry Volyntsev <xeioex@nginx.com>
parents:
diff
changeset
|
79 (reply.status == 200) ? s.allow(): s.deny(); |
01fcc82a435a
Tests: added stream js test for Fetch object reinitialization.
Dmitry Volyntsev <xeioex@nginx.com>
parents:
diff
changeset
|
80 } |
01fcc82a435a
Tests: added stream js test for Fetch object reinitialization.
Dmitry Volyntsev <xeioex@nginx.com>
parents:
diff
changeset
|
81 |
01fcc82a435a
Tests: added stream js test for Fetch object reinitialization.
Dmitry Volyntsev <xeioex@nginx.com>
parents:
diff
changeset
|
82 export default {njs: test_njs, access_ok}; |
01fcc82a435a
Tests: added stream js test for Fetch object reinitialization.
Dmitry Volyntsev <xeioex@nginx.com>
parents:
diff
changeset
|
83 EOF |
01fcc82a435a
Tests: added stream js test for Fetch object reinitialization.
Dmitry Volyntsev <xeioex@nginx.com>
parents:
diff
changeset
|
84 |
01fcc82a435a
Tests: added stream js test for Fetch object reinitialization.
Dmitry Volyntsev <xeioex@nginx.com>
parents:
diff
changeset
|
85 $t->try_run('no stream njs available')->plan(1); |
01fcc82a435a
Tests: added stream js test for Fetch object reinitialization.
Dmitry Volyntsev <xeioex@nginx.com>
parents:
diff
changeset
|
86 |
01fcc82a435a
Tests: added stream js test for Fetch object reinitialization.
Dmitry Volyntsev <xeioex@nginx.com>
parents:
diff
changeset
|
87 $t->run_daemon(\&stream_daemon, port(8090)); |
01fcc82a435a
Tests: added stream js test for Fetch object reinitialization.
Dmitry Volyntsev <xeioex@nginx.com>
parents:
diff
changeset
|
88 $t->waitforsocket('127.0.0.1:' . port(8090)); |
01fcc82a435a
Tests: added stream js test for Fetch object reinitialization.
Dmitry Volyntsev <xeioex@nginx.com>
parents:
diff
changeset
|
89 |
01fcc82a435a
Tests: added stream js test for Fetch object reinitialization.
Dmitry Volyntsev <xeioex@nginx.com>
parents:
diff
changeset
|
90 ############################################################################### |
01fcc82a435a
Tests: added stream js test for Fetch object reinitialization.
Dmitry Volyntsev <xeioex@nginx.com>
parents:
diff
changeset
|
91 |
1811
520fb74cce4c
Tests: improved njs version check to account multi digit versions.
Dmitry Volyntsev <xeioex@nginx.com>
parents:
1807
diff
changeset
|
92 local $TODO = 'not yet' unless has_version('0.7.9'); |
1807
01fcc82a435a
Tests: added stream js test for Fetch object reinitialization.
Dmitry Volyntsev <xeioex@nginx.com>
parents:
diff
changeset
|
93 |
01fcc82a435a
Tests: added stream js test for Fetch object reinitialization.
Dmitry Volyntsev <xeioex@nginx.com>
parents:
diff
changeset
|
94 is(stream('127.0.0.1:' . port(8081))->io('ABC'), 'ABC', 'access fetch ok'); |
01fcc82a435a
Tests: added stream js test for Fetch object reinitialization.
Dmitry Volyntsev <xeioex@nginx.com>
parents:
diff
changeset
|
95 |
01fcc82a435a
Tests: added stream js test for Fetch object reinitialization.
Dmitry Volyntsev <xeioex@nginx.com>
parents:
diff
changeset
|
96 ############################################################################### |
01fcc82a435a
Tests: added stream js test for Fetch object reinitialization.
Dmitry Volyntsev <xeioex@nginx.com>
parents:
diff
changeset
|
97 |
1811
520fb74cce4c
Tests: improved njs version check to account multi digit versions.
Dmitry Volyntsev <xeioex@nginx.com>
parents:
1807
diff
changeset
|
98 sub has_version { |
520fb74cce4c
Tests: improved njs version check to account multi digit versions.
Dmitry Volyntsev <xeioex@nginx.com>
parents:
1807
diff
changeset
|
99 my $need = shift; |
520fb74cce4c
Tests: improved njs version check to account multi digit versions.
Dmitry Volyntsev <xeioex@nginx.com>
parents:
1807
diff
changeset
|
100 |
520fb74cce4c
Tests: improved njs version check to account multi digit versions.
Dmitry Volyntsev <xeioex@nginx.com>
parents:
1807
diff
changeset
|
101 http_get('/njs') =~ /^([.0-9]+)$/m; |
520fb74cce4c
Tests: improved njs version check to account multi digit versions.
Dmitry Volyntsev <xeioex@nginx.com>
parents:
1807
diff
changeset
|
102 |
520fb74cce4c
Tests: improved njs version check to account multi digit versions.
Dmitry Volyntsev <xeioex@nginx.com>
parents:
1807
diff
changeset
|
103 my @v = split(/\./, $1); |
520fb74cce4c
Tests: improved njs version check to account multi digit versions.
Dmitry Volyntsev <xeioex@nginx.com>
parents:
1807
diff
changeset
|
104 my ($n, $v); |
520fb74cce4c
Tests: improved njs version check to account multi digit versions.
Dmitry Volyntsev <xeioex@nginx.com>
parents:
1807
diff
changeset
|
105 |
520fb74cce4c
Tests: improved njs version check to account multi digit versions.
Dmitry Volyntsev <xeioex@nginx.com>
parents:
1807
diff
changeset
|
106 for $n (split(/\./, $need)) { |
520fb74cce4c
Tests: improved njs version check to account multi digit versions.
Dmitry Volyntsev <xeioex@nginx.com>
parents:
1807
diff
changeset
|
107 $v = shift @v || 0; |
520fb74cce4c
Tests: improved njs version check to account multi digit versions.
Dmitry Volyntsev <xeioex@nginx.com>
parents:
1807
diff
changeset
|
108 return 0 if $n > $v; |
520fb74cce4c
Tests: improved njs version check to account multi digit versions.
Dmitry Volyntsev <xeioex@nginx.com>
parents:
1807
diff
changeset
|
109 return 1 if $v > $n; |
520fb74cce4c
Tests: improved njs version check to account multi digit versions.
Dmitry Volyntsev <xeioex@nginx.com>
parents:
1807
diff
changeset
|
110 } |
520fb74cce4c
Tests: improved njs version check to account multi digit versions.
Dmitry Volyntsev <xeioex@nginx.com>
parents:
1807
diff
changeset
|
111 |
520fb74cce4c
Tests: improved njs version check to account multi digit versions.
Dmitry Volyntsev <xeioex@nginx.com>
parents:
1807
diff
changeset
|
112 return 1; |
520fb74cce4c
Tests: improved njs version check to account multi digit versions.
Dmitry Volyntsev <xeioex@nginx.com>
parents:
1807
diff
changeset
|
113 } |
520fb74cce4c
Tests: improved njs version check to account multi digit versions.
Dmitry Volyntsev <xeioex@nginx.com>
parents:
1807
diff
changeset
|
114 |
520fb74cce4c
Tests: improved njs version check to account multi digit versions.
Dmitry Volyntsev <xeioex@nginx.com>
parents:
1807
diff
changeset
|
115 ############################################################################### |
520fb74cce4c
Tests: improved njs version check to account multi digit versions.
Dmitry Volyntsev <xeioex@nginx.com>
parents:
1807
diff
changeset
|
116 |
1807
01fcc82a435a
Tests: added stream js test for Fetch object reinitialization.
Dmitry Volyntsev <xeioex@nginx.com>
parents:
diff
changeset
|
117 sub stream_daemon { |
01fcc82a435a
Tests: added stream js test for Fetch object reinitialization.
Dmitry Volyntsev <xeioex@nginx.com>
parents:
diff
changeset
|
118 my $server = IO::Socket::INET->new( |
01fcc82a435a
Tests: added stream js test for Fetch object reinitialization.
Dmitry Volyntsev <xeioex@nginx.com>
parents:
diff
changeset
|
119 Proto => 'tcp', |
01fcc82a435a
Tests: added stream js test for Fetch object reinitialization.
Dmitry Volyntsev <xeioex@nginx.com>
parents:
diff
changeset
|
120 LocalAddr => '127.0.0.1:' . port(8090), |
01fcc82a435a
Tests: added stream js test for Fetch object reinitialization.
Dmitry Volyntsev <xeioex@nginx.com>
parents:
diff
changeset
|
121 Listen => 5, |
01fcc82a435a
Tests: added stream js test for Fetch object reinitialization.
Dmitry Volyntsev <xeioex@nginx.com>
parents:
diff
changeset
|
122 Reuse => 1 |
01fcc82a435a
Tests: added stream js test for Fetch object reinitialization.
Dmitry Volyntsev <xeioex@nginx.com>
parents:
diff
changeset
|
123 ) |
01fcc82a435a
Tests: added stream js test for Fetch object reinitialization.
Dmitry Volyntsev <xeioex@nginx.com>
parents:
diff
changeset
|
124 or die "Can't create listening socket: $!\n"; |
01fcc82a435a
Tests: added stream js test for Fetch object reinitialization.
Dmitry Volyntsev <xeioex@nginx.com>
parents:
diff
changeset
|
125 |
01fcc82a435a
Tests: added stream js test for Fetch object reinitialization.
Dmitry Volyntsev <xeioex@nginx.com>
parents:
diff
changeset
|
126 local $SIG{PIPE} = 'IGNORE'; |
01fcc82a435a
Tests: added stream js test for Fetch object reinitialization.
Dmitry Volyntsev <xeioex@nginx.com>
parents:
diff
changeset
|
127 |
01fcc82a435a
Tests: added stream js test for Fetch object reinitialization.
Dmitry Volyntsev <xeioex@nginx.com>
parents:
diff
changeset
|
128 while (my $client = $server->accept()) { |
01fcc82a435a
Tests: added stream js test for Fetch object reinitialization.
Dmitry Volyntsev <xeioex@nginx.com>
parents:
diff
changeset
|
129 $client->autoflush(1); |
01fcc82a435a
Tests: added stream js test for Fetch object reinitialization.
Dmitry Volyntsev <xeioex@nginx.com>
parents:
diff
changeset
|
130 |
01fcc82a435a
Tests: added stream js test for Fetch object reinitialization.
Dmitry Volyntsev <xeioex@nginx.com>
parents:
diff
changeset
|
131 log2c("(new connection $client)"); |
01fcc82a435a
Tests: added stream js test for Fetch object reinitialization.
Dmitry Volyntsev <xeioex@nginx.com>
parents:
diff
changeset
|
132 |
01fcc82a435a
Tests: added stream js test for Fetch object reinitialization.
Dmitry Volyntsev <xeioex@nginx.com>
parents:
diff
changeset
|
133 $client->sysread(my $buffer, 65536) or next; |
01fcc82a435a
Tests: added stream js test for Fetch object reinitialization.
Dmitry Volyntsev <xeioex@nginx.com>
parents:
diff
changeset
|
134 |
01fcc82a435a
Tests: added stream js test for Fetch object reinitialization.
Dmitry Volyntsev <xeioex@nginx.com>
parents:
diff
changeset
|
135 log2i("$client $buffer"); |
01fcc82a435a
Tests: added stream js test for Fetch object reinitialization.
Dmitry Volyntsev <xeioex@nginx.com>
parents:
diff
changeset
|
136 |
01fcc82a435a
Tests: added stream js test for Fetch object reinitialization.
Dmitry Volyntsev <xeioex@nginx.com>
parents:
diff
changeset
|
137 log2o("$client $buffer"); |
01fcc82a435a
Tests: added stream js test for Fetch object reinitialization.
Dmitry Volyntsev <xeioex@nginx.com>
parents:
diff
changeset
|
138 |
01fcc82a435a
Tests: added stream js test for Fetch object reinitialization.
Dmitry Volyntsev <xeioex@nginx.com>
parents:
diff
changeset
|
139 $client->syswrite($buffer); |
01fcc82a435a
Tests: added stream js test for Fetch object reinitialization.
Dmitry Volyntsev <xeioex@nginx.com>
parents:
diff
changeset
|
140 |
01fcc82a435a
Tests: added stream js test for Fetch object reinitialization.
Dmitry Volyntsev <xeioex@nginx.com>
parents:
diff
changeset
|
141 close $client; |
01fcc82a435a
Tests: added stream js test for Fetch object reinitialization.
Dmitry Volyntsev <xeioex@nginx.com>
parents:
diff
changeset
|
142 } |
01fcc82a435a
Tests: added stream js test for Fetch object reinitialization.
Dmitry Volyntsev <xeioex@nginx.com>
parents:
diff
changeset
|
143 } |
01fcc82a435a
Tests: added stream js test for Fetch object reinitialization.
Dmitry Volyntsev <xeioex@nginx.com>
parents:
diff
changeset
|
144 |
01fcc82a435a
Tests: added stream js test for Fetch object reinitialization.
Dmitry Volyntsev <xeioex@nginx.com>
parents:
diff
changeset
|
145 sub log2i { Test::Nginx::log_core('|| <<', @_); } |
01fcc82a435a
Tests: added stream js test for Fetch object reinitialization.
Dmitry Volyntsev <xeioex@nginx.com>
parents:
diff
changeset
|
146 sub log2o { Test::Nginx::log_core('|| >>', @_); } |
01fcc82a435a
Tests: added stream js test for Fetch object reinitialization.
Dmitry Volyntsev <xeioex@nginx.com>
parents:
diff
changeset
|
147 sub log2c { Test::Nginx::log_core('||', @_); } |
01fcc82a435a
Tests: added stream js test for Fetch object reinitialization.
Dmitry Volyntsev <xeioex@nginx.com>
parents:
diff
changeset
|
148 |
01fcc82a435a
Tests: added stream js test for Fetch object reinitialization.
Dmitry Volyntsev <xeioex@nginx.com>
parents:
diff
changeset
|
149 ############################################################################### |