Mercurial > hg > nginx-tests
annotate stream_js_fetch_init.t @ 1851:0351dee227a8
Tests: unbreak tests with dynamic certificates on stable.
In 74cffa9d4c43, ticket based session reuse is enabled in addition to
using a shared SSL session cache. This changed how a session can be
resumed in a different server:
- for a session ID based resumption, it is resumed in the same context
- when using session tickets, a key name is also checked for matching
- with a ticket callback, this is skipped in favor of callback's logic
This makes 'session id context match' tests fail with session tickets
on stable since ticket key names are unique in distinct SSL contexts.
On the other hand, tests pass on 1.23.2+ due to automatic ticket keys
rotation that installs ticket callback, and using a common shared SSL
session cache.
author | Sergey Kandaurov <pluknet@nginx.com> |
---|---|
date | Tue, 28 Mar 2023 01:36:32 +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 ############################################################################### |