annotate limit_conn.t @ 386:1b205a3332de

Tests: adjusted limit_req rate value. This shortens excessive test execution time due to unnecessarily delayed backend connection after client connection close, which is usually observed when the client connection is closed before the request is proxied to backend.
author Sergey Kandaurov <pluknet@nginx.com>
date Wed, 26 Mar 2014 22:50:22 +0400
parents 68b94b83412b
children 60888e2c3f5a
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
rev   line source
313
9daf28f20766 Tests: added tests for limit_conn module.
Sergey Kandaurov <pluknet@nginx.com>
parents:
diff changeset
1 #!/usr/bin/perl
9daf28f20766 Tests: added tests for limit_conn module.
Sergey Kandaurov <pluknet@nginx.com>
parents:
diff changeset
2
9daf28f20766 Tests: added tests for limit_conn module.
Sergey Kandaurov <pluknet@nginx.com>
parents:
diff changeset
3 # (C) Sergey Kandaurov
9daf28f20766 Tests: added tests for limit_conn module.
Sergey Kandaurov <pluknet@nginx.com>
parents:
diff changeset
4
9daf28f20766 Tests: added tests for limit_conn module.
Sergey Kandaurov <pluknet@nginx.com>
parents:
diff changeset
5 # limit_req based tests for nginx limit_conn module.
9daf28f20766 Tests: added tests for limit_conn module.
Sergey Kandaurov <pluknet@nginx.com>
parents:
diff changeset
6
9daf28f20766 Tests: added tests for limit_conn module.
Sergey Kandaurov <pluknet@nginx.com>
parents:
diff changeset
7 ###############################################################################
9daf28f20766 Tests: added tests for limit_conn module.
Sergey Kandaurov <pluknet@nginx.com>
parents:
diff changeset
8
9daf28f20766 Tests: added tests for limit_conn module.
Sergey Kandaurov <pluknet@nginx.com>
parents:
diff changeset
9 use warnings;
9daf28f20766 Tests: added tests for limit_conn module.
Sergey Kandaurov <pluknet@nginx.com>
parents:
diff changeset
10 use strict;
9daf28f20766 Tests: added tests for limit_conn module.
Sergey Kandaurov <pluknet@nginx.com>
parents:
diff changeset
11
9daf28f20766 Tests: added tests for limit_conn module.
Sergey Kandaurov <pluknet@nginx.com>
parents:
diff changeset
12 use Test::More;
9daf28f20766 Tests: added tests for limit_conn module.
Sergey Kandaurov <pluknet@nginx.com>
parents:
diff changeset
13
9daf28f20766 Tests: added tests for limit_conn module.
Sergey Kandaurov <pluknet@nginx.com>
parents:
diff changeset
14 use Socket qw/ CRLF /;
9daf28f20766 Tests: added tests for limit_conn module.
Sergey Kandaurov <pluknet@nginx.com>
parents:
diff changeset
15
9daf28f20766 Tests: added tests for limit_conn module.
Sergey Kandaurov <pluknet@nginx.com>
parents:
diff changeset
16 BEGIN { use FindBin; chdir($FindBin::Bin); }
9daf28f20766 Tests: added tests for limit_conn module.
Sergey Kandaurov <pluknet@nginx.com>
parents:
diff changeset
17
9daf28f20766 Tests: added tests for limit_conn module.
Sergey Kandaurov <pluknet@nginx.com>
parents:
diff changeset
18 use lib 'lib';
9daf28f20766 Tests: added tests for limit_conn module.
Sergey Kandaurov <pluknet@nginx.com>
parents:
diff changeset
19 use Test::Nginx;
9daf28f20766 Tests: added tests for limit_conn module.
Sergey Kandaurov <pluknet@nginx.com>
parents:
diff changeset
20
9daf28f20766 Tests: added tests for limit_conn module.
Sergey Kandaurov <pluknet@nginx.com>
parents:
diff changeset
21 ###############################################################################
9daf28f20766 Tests: added tests for limit_conn module.
Sergey Kandaurov <pluknet@nginx.com>
parents:
diff changeset
22
9daf28f20766 Tests: added tests for limit_conn module.
Sergey Kandaurov <pluknet@nginx.com>
parents:
diff changeset
23 select STDERR; $| = 1;
9daf28f20766 Tests: added tests for limit_conn module.
Sergey Kandaurov <pluknet@nginx.com>
parents:
diff changeset
24 select STDOUT; $| = 1;
9daf28f20766 Tests: added tests for limit_conn module.
Sergey Kandaurov <pluknet@nginx.com>
parents:
diff changeset
25
9daf28f20766 Tests: added tests for limit_conn module.
Sergey Kandaurov <pluknet@nginx.com>
parents:
diff changeset
26 plan(skip_all => 'win32') if $^O eq 'MSWin32';
9daf28f20766 Tests: added tests for limit_conn module.
Sergey Kandaurov <pluknet@nginx.com>
parents:
diff changeset
27
9daf28f20766 Tests: added tests for limit_conn module.
Sergey Kandaurov <pluknet@nginx.com>
parents:
diff changeset
28 my $t = Test::Nginx->new()->has(qw/http proxy limit_conn limit_req/)->plan(10);
9daf28f20766 Tests: added tests for limit_conn module.
Sergey Kandaurov <pluknet@nginx.com>
parents:
diff changeset
29
9daf28f20766 Tests: added tests for limit_conn module.
Sergey Kandaurov <pluknet@nginx.com>
parents:
diff changeset
30 $t->write_file_expand('nginx.conf', <<'EOF');
9daf28f20766 Tests: added tests for limit_conn module.
Sergey Kandaurov <pluknet@nginx.com>
parents:
diff changeset
31
9daf28f20766 Tests: added tests for limit_conn module.
Sergey Kandaurov <pluknet@nginx.com>
parents:
diff changeset
32 %%TEST_GLOBALS%%
9daf28f20766 Tests: added tests for limit_conn module.
Sergey Kandaurov <pluknet@nginx.com>
parents:
diff changeset
33
9daf28f20766 Tests: added tests for limit_conn module.
Sergey Kandaurov <pluknet@nginx.com>
parents:
diff changeset
34 daemon off;
9daf28f20766 Tests: added tests for limit_conn module.
Sergey Kandaurov <pluknet@nginx.com>
parents:
diff changeset
35
9daf28f20766 Tests: added tests for limit_conn module.
Sergey Kandaurov <pluknet@nginx.com>
parents:
diff changeset
36 events {
9daf28f20766 Tests: added tests for limit_conn module.
Sergey Kandaurov <pluknet@nginx.com>
parents:
diff changeset
37 }
9daf28f20766 Tests: added tests for limit_conn module.
Sergey Kandaurov <pluknet@nginx.com>
parents:
diff changeset
38
9daf28f20766 Tests: added tests for limit_conn module.
Sergey Kandaurov <pluknet@nginx.com>
parents:
diff changeset
39 http {
9daf28f20766 Tests: added tests for limit_conn module.
Sergey Kandaurov <pluknet@nginx.com>
parents:
diff changeset
40 %%TEST_GLOBALS_HTTP%%
9daf28f20766 Tests: added tests for limit_conn module.
Sergey Kandaurov <pluknet@nginx.com>
parents:
diff changeset
41
386
1b205a3332de Tests: adjusted limit_req rate value.
Sergey Kandaurov <pluknet@nginx.com>
parents: 318
diff changeset
42 limit_req_zone $binary_remote_addr zone=req:1m rate=30r/m;
313
9daf28f20766 Tests: added tests for limit_conn module.
Sergey Kandaurov <pluknet@nginx.com>
parents:
diff changeset
43
9daf28f20766 Tests: added tests for limit_conn module.
Sergey Kandaurov <pluknet@nginx.com>
parents:
diff changeset
44 limit_conn_zone $binary_remote_addr zone=zone:1m;
9daf28f20766 Tests: added tests for limit_conn module.
Sergey Kandaurov <pluknet@nginx.com>
parents:
diff changeset
45 limit_conn_zone $binary_remote_addr zone=zone2:1m;
9daf28f20766 Tests: added tests for limit_conn module.
Sergey Kandaurov <pluknet@nginx.com>
parents:
diff changeset
46 limit_conn_zone $binary_remote_addr zone=custom:1m;
9daf28f20766 Tests: added tests for limit_conn module.
Sergey Kandaurov <pluknet@nginx.com>
parents:
diff changeset
47 limit_zone legacy $binary_remote_addr 1m;
9daf28f20766 Tests: added tests for limit_conn module.
Sergey Kandaurov <pluknet@nginx.com>
parents:
diff changeset
48
9daf28f20766 Tests: added tests for limit_conn module.
Sergey Kandaurov <pluknet@nginx.com>
parents:
diff changeset
49 server {
9daf28f20766 Tests: added tests for limit_conn module.
Sergey Kandaurov <pluknet@nginx.com>
parents:
diff changeset
50 listen 127.0.0.1:8081;
9daf28f20766 Tests: added tests for limit_conn module.
Sergey Kandaurov <pluknet@nginx.com>
parents:
diff changeset
51 server_name localhost;
9daf28f20766 Tests: added tests for limit_conn module.
Sergey Kandaurov <pluknet@nginx.com>
parents:
diff changeset
52
9daf28f20766 Tests: added tests for limit_conn module.
Sergey Kandaurov <pluknet@nginx.com>
parents:
diff changeset
53 location /w {
9daf28f20766 Tests: added tests for limit_conn module.
Sergey Kandaurov <pluknet@nginx.com>
parents:
diff changeset
54 limit_req zone=req burst=10;
9daf28f20766 Tests: added tests for limit_conn module.
Sergey Kandaurov <pluknet@nginx.com>
parents:
diff changeset
55 }
9daf28f20766 Tests: added tests for limit_conn module.
Sergey Kandaurov <pluknet@nginx.com>
parents:
diff changeset
56 }
9daf28f20766 Tests: added tests for limit_conn module.
Sergey Kandaurov <pluknet@nginx.com>
parents:
diff changeset
57
9daf28f20766 Tests: added tests for limit_conn module.
Sergey Kandaurov <pluknet@nginx.com>
parents:
diff changeset
58 server {
9daf28f20766 Tests: added tests for limit_conn module.
Sergey Kandaurov <pluknet@nginx.com>
parents:
diff changeset
59 listen 127.0.0.1:8080;
9daf28f20766 Tests: added tests for limit_conn module.
Sergey Kandaurov <pluknet@nginx.com>
parents:
diff changeset
60 server_name localhost;
9daf28f20766 Tests: added tests for limit_conn module.
Sergey Kandaurov <pluknet@nginx.com>
parents:
diff changeset
61
9daf28f20766 Tests: added tests for limit_conn module.
Sergey Kandaurov <pluknet@nginx.com>
parents:
diff changeset
62 location / {
9daf28f20766 Tests: added tests for limit_conn module.
Sergey Kandaurov <pluknet@nginx.com>
parents:
diff changeset
63 proxy_pass http://127.0.0.1:8081;
9daf28f20766 Tests: added tests for limit_conn module.
Sergey Kandaurov <pluknet@nginx.com>
parents:
diff changeset
64 limit_conn zone 1;
9daf28f20766 Tests: added tests for limit_conn module.
Sergey Kandaurov <pluknet@nginx.com>
parents:
diff changeset
65 }
9daf28f20766 Tests: added tests for limit_conn module.
Sergey Kandaurov <pluknet@nginx.com>
parents:
diff changeset
66
9daf28f20766 Tests: added tests for limit_conn module.
Sergey Kandaurov <pluknet@nginx.com>
parents:
diff changeset
67 location /1 {
9daf28f20766 Tests: added tests for limit_conn module.
Sergey Kandaurov <pluknet@nginx.com>
parents:
diff changeset
68 limit_conn zone 1;
9daf28f20766 Tests: added tests for limit_conn module.
Sergey Kandaurov <pluknet@nginx.com>
parents:
diff changeset
69 }
9daf28f20766 Tests: added tests for limit_conn module.
Sergey Kandaurov <pluknet@nginx.com>
parents:
diff changeset
70
9daf28f20766 Tests: added tests for limit_conn module.
Sergey Kandaurov <pluknet@nginx.com>
parents:
diff changeset
71 location /zone {
9daf28f20766 Tests: added tests for limit_conn module.
Sergey Kandaurov <pluknet@nginx.com>
parents:
diff changeset
72 limit_conn zone2 1;
9daf28f20766 Tests: added tests for limit_conn module.
Sergey Kandaurov <pluknet@nginx.com>
parents:
diff changeset
73 }
9daf28f20766 Tests: added tests for limit_conn module.
Sergey Kandaurov <pluknet@nginx.com>
parents:
diff changeset
74
9daf28f20766 Tests: added tests for limit_conn module.
Sergey Kandaurov <pluknet@nginx.com>
parents:
diff changeset
75 location /unlim {
9daf28f20766 Tests: added tests for limit_conn module.
Sergey Kandaurov <pluknet@nginx.com>
parents:
diff changeset
76 limit_conn zone 5;
9daf28f20766 Tests: added tests for limit_conn module.
Sergey Kandaurov <pluknet@nginx.com>
parents:
diff changeset
77 }
9daf28f20766 Tests: added tests for limit_conn module.
Sergey Kandaurov <pluknet@nginx.com>
parents:
diff changeset
78
9daf28f20766 Tests: added tests for limit_conn module.
Sergey Kandaurov <pluknet@nginx.com>
parents:
diff changeset
79 location /custom {
9daf28f20766 Tests: added tests for limit_conn module.
Sergey Kandaurov <pluknet@nginx.com>
parents:
diff changeset
80 proxy_pass http://127.0.0.1:8081/;
9daf28f20766 Tests: added tests for limit_conn module.
Sergey Kandaurov <pluknet@nginx.com>
parents:
diff changeset
81 limit_conn_log_level info;
9daf28f20766 Tests: added tests for limit_conn module.
Sergey Kandaurov <pluknet@nginx.com>
parents:
diff changeset
82 limit_conn_status 501;
9daf28f20766 Tests: added tests for limit_conn module.
Sergey Kandaurov <pluknet@nginx.com>
parents:
diff changeset
83 limit_conn custom 1;
9daf28f20766 Tests: added tests for limit_conn module.
Sergey Kandaurov <pluknet@nginx.com>
parents:
diff changeset
84 }
9daf28f20766 Tests: added tests for limit_conn module.
Sergey Kandaurov <pluknet@nginx.com>
parents:
diff changeset
85
9daf28f20766 Tests: added tests for limit_conn module.
Sergey Kandaurov <pluknet@nginx.com>
parents:
diff changeset
86 location /legacy {
9daf28f20766 Tests: added tests for limit_conn module.
Sergey Kandaurov <pluknet@nginx.com>
parents:
diff changeset
87 proxy_pass http://127.0.0.1:8081/;
9daf28f20766 Tests: added tests for limit_conn module.
Sergey Kandaurov <pluknet@nginx.com>
parents:
diff changeset
88 limit_conn legacy 1;
9daf28f20766 Tests: added tests for limit_conn module.
Sergey Kandaurov <pluknet@nginx.com>
parents:
diff changeset
89 }
9daf28f20766 Tests: added tests for limit_conn module.
Sergey Kandaurov <pluknet@nginx.com>
parents:
diff changeset
90 }
9daf28f20766 Tests: added tests for limit_conn module.
Sergey Kandaurov <pluknet@nginx.com>
parents:
diff changeset
91 }
9daf28f20766 Tests: added tests for limit_conn module.
Sergey Kandaurov <pluknet@nginx.com>
parents:
diff changeset
92
9daf28f20766 Tests: added tests for limit_conn module.
Sergey Kandaurov <pluknet@nginx.com>
parents:
diff changeset
93 EOF
9daf28f20766 Tests: added tests for limit_conn module.
Sergey Kandaurov <pluknet@nginx.com>
parents:
diff changeset
94
318
68b94b83412b Tests: hide startup warnings about deprecated limit_zone.
Maxim Dounin <mdounin@mdounin.ru>
parents: 313
diff changeset
95 open OLDERR, ">&", \*STDERR; close STDERR;
313
9daf28f20766 Tests: added tests for limit_conn module.
Sergey Kandaurov <pluknet@nginx.com>
parents:
diff changeset
96 $t->run();
318
68b94b83412b Tests: hide startup warnings about deprecated limit_zone.
Maxim Dounin <mdounin@mdounin.ru>
parents: 313
diff changeset
97 open STDERR, ">&", \*OLDERR;
313
9daf28f20766 Tests: added tests for limit_conn module.
Sergey Kandaurov <pluknet@nginx.com>
parents:
diff changeset
98
9daf28f20766 Tests: added tests for limit_conn module.
Sergey Kandaurov <pluknet@nginx.com>
parents:
diff changeset
99 ###############################################################################
9daf28f20766 Tests: added tests for limit_conn module.
Sergey Kandaurov <pluknet@nginx.com>
parents:
diff changeset
100
9daf28f20766 Tests: added tests for limit_conn module.
Sergey Kandaurov <pluknet@nginx.com>
parents:
diff changeset
101 # charge limit_req
9daf28f20766 Tests: added tests for limit_conn module.
Sergey Kandaurov <pluknet@nginx.com>
parents:
diff changeset
102
9daf28f20766 Tests: added tests for limit_conn module.
Sergey Kandaurov <pluknet@nginx.com>
parents:
diff changeset
103 http_get('/w');
9daf28f20766 Tests: added tests for limit_conn module.
Sergey Kandaurov <pluknet@nginx.com>
parents:
diff changeset
104
9daf28f20766 Tests: added tests for limit_conn module.
Sergey Kandaurov <pluknet@nginx.com>
parents:
diff changeset
105 # same and other zones in different locations
9daf28f20766 Tests: added tests for limit_conn module.
Sergey Kandaurov <pluknet@nginx.com>
parents:
diff changeset
106
9daf28f20766 Tests: added tests for limit_conn module.
Sergey Kandaurov <pluknet@nginx.com>
parents:
diff changeset
107 my $s = http_start('/w');
9daf28f20766 Tests: added tests for limit_conn module.
Sergey Kandaurov <pluknet@nginx.com>
parents:
diff changeset
108 like(http_get('/'), qr/^HTTP\/1.. 503 /, 'rejected');
9daf28f20766 Tests: added tests for limit_conn module.
Sergey Kandaurov <pluknet@nginx.com>
parents:
diff changeset
109 like(http_get('/1'), qr/^HTTP\/1.. 503 /, 'rejected different location');
9daf28f20766 Tests: added tests for limit_conn module.
Sergey Kandaurov <pluknet@nginx.com>
parents:
diff changeset
110 unlike(http_get('/zone'), qr/^HTTP\/1.. 503 /, 'passed different zone');
9daf28f20766 Tests: added tests for limit_conn module.
Sergey Kandaurov <pluknet@nginx.com>
parents:
diff changeset
111
9daf28f20766 Tests: added tests for limit_conn module.
Sergey Kandaurov <pluknet@nginx.com>
parents:
diff changeset
112 close $s;
9daf28f20766 Tests: added tests for limit_conn module.
Sergey Kandaurov <pluknet@nginx.com>
parents:
diff changeset
113 unlike(http_get('/1'), qr/^HTTP\/1.. 503 /, 'passed');
9daf28f20766 Tests: added tests for limit_conn module.
Sergey Kandaurov <pluknet@nginx.com>
parents:
diff changeset
114
9daf28f20766 Tests: added tests for limit_conn module.
Sergey Kandaurov <pluknet@nginx.com>
parents:
diff changeset
115 # custom error code and log level
9daf28f20766 Tests: added tests for limit_conn module.
Sergey Kandaurov <pluknet@nginx.com>
parents:
diff changeset
116
9daf28f20766 Tests: added tests for limit_conn module.
Sergey Kandaurov <pluknet@nginx.com>
parents:
diff changeset
117 $s = http_start('/custom/w');
9daf28f20766 Tests: added tests for limit_conn module.
Sergey Kandaurov <pluknet@nginx.com>
parents:
diff changeset
118 like(http_get('/custom'), qr/^HTTP\/1.. 501 /, 'limit_conn_status');
9daf28f20766 Tests: added tests for limit_conn module.
Sergey Kandaurov <pluknet@nginx.com>
parents:
diff changeset
119
9daf28f20766 Tests: added tests for limit_conn module.
Sergey Kandaurov <pluknet@nginx.com>
parents:
diff changeset
120 like(`grep -F '[info]' ${\($t->testdir())}/error.log`,
9daf28f20766 Tests: added tests for limit_conn module.
Sergey Kandaurov <pluknet@nginx.com>
parents:
diff changeset
121 qr/limiting connections by zone "custom"/s,
9daf28f20766 Tests: added tests for limit_conn module.
Sergey Kandaurov <pluknet@nginx.com>
parents:
diff changeset
122 'limit_conn_log_level');
9daf28f20766 Tests: added tests for limit_conn module.
Sergey Kandaurov <pluknet@nginx.com>
parents:
diff changeset
123
9daf28f20766 Tests: added tests for limit_conn module.
Sergey Kandaurov <pluknet@nginx.com>
parents:
diff changeset
124 # limit_zone
9daf28f20766 Tests: added tests for limit_conn module.
Sergey Kandaurov <pluknet@nginx.com>
parents:
diff changeset
125
9daf28f20766 Tests: added tests for limit_conn module.
Sergey Kandaurov <pluknet@nginx.com>
parents:
diff changeset
126 $s = http_start('/legacy/w');
9daf28f20766 Tests: added tests for limit_conn module.
Sergey Kandaurov <pluknet@nginx.com>
parents:
diff changeset
127 like(http_get('/legacy'), qr/^HTTP\/1.. 503 /, 'legacy rejected');
9daf28f20766 Tests: added tests for limit_conn module.
Sergey Kandaurov <pluknet@nginx.com>
parents:
diff changeset
128
9daf28f20766 Tests: added tests for limit_conn module.
Sergey Kandaurov <pluknet@nginx.com>
parents:
diff changeset
129 $s->close;
9daf28f20766 Tests: added tests for limit_conn module.
Sergey Kandaurov <pluknet@nginx.com>
parents:
diff changeset
130 unlike(http_get('/legacy'), qr/^HTTP\/.. 503 /, 'legacy passed');
9daf28f20766 Tests: added tests for limit_conn module.
Sergey Kandaurov <pluknet@nginx.com>
parents:
diff changeset
131
9daf28f20766 Tests: added tests for limit_conn module.
Sergey Kandaurov <pluknet@nginx.com>
parents:
diff changeset
132 # limited after unlimited
9daf28f20766 Tests: added tests for limit_conn module.
Sergey Kandaurov <pluknet@nginx.com>
parents:
diff changeset
133
9daf28f20766 Tests: added tests for limit_conn module.
Sergey Kandaurov <pluknet@nginx.com>
parents:
diff changeset
134 $s = http_start('/w');
9daf28f20766 Tests: added tests for limit_conn module.
Sergey Kandaurov <pluknet@nginx.com>
parents:
diff changeset
135 like(http_get('/unlim'), qr/404 Not Found/, 'unlimited passed');
9daf28f20766 Tests: added tests for limit_conn module.
Sergey Kandaurov <pluknet@nginx.com>
parents:
diff changeset
136 like(http_get('/'), qr/503 Service/, 'limited rejected');
9daf28f20766 Tests: added tests for limit_conn module.
Sergey Kandaurov <pluknet@nginx.com>
parents:
diff changeset
137
9daf28f20766 Tests: added tests for limit_conn module.
Sergey Kandaurov <pluknet@nginx.com>
parents:
diff changeset
138 ###############################################################################
9daf28f20766 Tests: added tests for limit_conn module.
Sergey Kandaurov <pluknet@nginx.com>
parents:
diff changeset
139
9daf28f20766 Tests: added tests for limit_conn module.
Sergey Kandaurov <pluknet@nginx.com>
parents:
diff changeset
140 sub http_start {
9daf28f20766 Tests: added tests for limit_conn module.
Sergey Kandaurov <pluknet@nginx.com>
parents:
diff changeset
141 my ($uri) = @_;
9daf28f20766 Tests: added tests for limit_conn module.
Sergey Kandaurov <pluknet@nginx.com>
parents:
diff changeset
142
9daf28f20766 Tests: added tests for limit_conn module.
Sergey Kandaurov <pluknet@nginx.com>
parents:
diff changeset
143 my $s;
9daf28f20766 Tests: added tests for limit_conn module.
Sergey Kandaurov <pluknet@nginx.com>
parents:
diff changeset
144 my $request = "GET $uri HTTP/1.0" . CRLF . CRLF;
9daf28f20766 Tests: added tests for limit_conn module.
Sergey Kandaurov <pluknet@nginx.com>
parents:
diff changeset
145
9daf28f20766 Tests: added tests for limit_conn module.
Sergey Kandaurov <pluknet@nginx.com>
parents:
diff changeset
146 eval {
9daf28f20766 Tests: added tests for limit_conn module.
Sergey Kandaurov <pluknet@nginx.com>
parents:
diff changeset
147 local $SIG{ALRM} = sub { die "timeout\n" };
9daf28f20766 Tests: added tests for limit_conn module.
Sergey Kandaurov <pluknet@nginx.com>
parents:
diff changeset
148 local $SIG{PIPE} = sub { die "sigpipe\n" };
9daf28f20766 Tests: added tests for limit_conn module.
Sergey Kandaurov <pluknet@nginx.com>
parents:
diff changeset
149 alarm(3);
9daf28f20766 Tests: added tests for limit_conn module.
Sergey Kandaurov <pluknet@nginx.com>
parents:
diff changeset
150 $s = IO::Socket::INET->new(
9daf28f20766 Tests: added tests for limit_conn module.
Sergey Kandaurov <pluknet@nginx.com>
parents:
diff changeset
151 Proto => 'tcp',
9daf28f20766 Tests: added tests for limit_conn module.
Sergey Kandaurov <pluknet@nginx.com>
parents:
diff changeset
152 PeerAddr => '127.0.0.1:8080'
9daf28f20766 Tests: added tests for limit_conn module.
Sergey Kandaurov <pluknet@nginx.com>
parents:
diff changeset
153 );
9daf28f20766 Tests: added tests for limit_conn module.
Sergey Kandaurov <pluknet@nginx.com>
parents:
diff changeset
154 log_out($request);
9daf28f20766 Tests: added tests for limit_conn module.
Sergey Kandaurov <pluknet@nginx.com>
parents:
diff changeset
155 $s->print($request);
9daf28f20766 Tests: added tests for limit_conn module.
Sergey Kandaurov <pluknet@nginx.com>
parents:
diff changeset
156 alarm(0);
9daf28f20766 Tests: added tests for limit_conn module.
Sergey Kandaurov <pluknet@nginx.com>
parents:
diff changeset
157 };
9daf28f20766 Tests: added tests for limit_conn module.
Sergey Kandaurov <pluknet@nginx.com>
parents:
diff changeset
158 alarm(0);
9daf28f20766 Tests: added tests for limit_conn module.
Sergey Kandaurov <pluknet@nginx.com>
parents:
diff changeset
159 if ($@) {
9daf28f20766 Tests: added tests for limit_conn module.
Sergey Kandaurov <pluknet@nginx.com>
parents:
diff changeset
160 log_in("died: $@");
9daf28f20766 Tests: added tests for limit_conn module.
Sergey Kandaurov <pluknet@nginx.com>
parents:
diff changeset
161 return undef;
9daf28f20766 Tests: added tests for limit_conn module.
Sergey Kandaurov <pluknet@nginx.com>
parents:
diff changeset
162 }
9daf28f20766 Tests: added tests for limit_conn module.
Sergey Kandaurov <pluknet@nginx.com>
parents:
diff changeset
163 return $s;
9daf28f20766 Tests: added tests for limit_conn module.
Sergey Kandaurov <pluknet@nginx.com>
parents:
diff changeset
164 }
9daf28f20766 Tests: added tests for limit_conn module.
Sergey Kandaurov <pluknet@nginx.com>
parents:
diff changeset
165
9daf28f20766 Tests: added tests for limit_conn module.
Sergey Kandaurov <pluknet@nginx.com>
parents:
diff changeset
166 ###############################################################################