annotate ssl_password_file.t @ 1248:70192b1baf01

Tests: added exception test to stream_js.t using 'require'. The stream js tests introduced in edf5a3c9e36a fail on njs 0.1.14. It doesn't currently provide an easy way to check its version, whilst we are obligated to gracefully handle such cases somehow. With such an addition of 'require', now the tests are skipped instead on the previous versions.
author Sergey Kandaurov <pluknet@nginx.com>
date Tue, 21 Nov 2017 13:16:39 +0300
parents 0af58b78df35
children 8c764fd93b5e
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
rev   line source
420
a37ec4447597 Tests: ssl_password_file tests.
Sergey Kandaurov <pluknet@nginx.com>
parents:
diff changeset
1 #!/usr/bin/perl
a37ec4447597 Tests: ssl_password_file tests.
Sergey Kandaurov <pluknet@nginx.com>
parents:
diff changeset
2
a37ec4447597 Tests: ssl_password_file tests.
Sergey Kandaurov <pluknet@nginx.com>
parents:
diff changeset
3 # (C) Sergey Kandaurov
a37ec4447597 Tests: ssl_password_file tests.
Sergey Kandaurov <pluknet@nginx.com>
parents:
diff changeset
4 # (C) Nginx, Inc.
a37ec4447597 Tests: ssl_password_file tests.
Sergey Kandaurov <pluknet@nginx.com>
parents:
diff changeset
5
a37ec4447597 Tests: ssl_password_file tests.
Sergey Kandaurov <pluknet@nginx.com>
parents:
diff changeset
6 # Tests for ssl_password_file directive.
a37ec4447597 Tests: ssl_password_file tests.
Sergey Kandaurov <pluknet@nginx.com>
parents:
diff changeset
7
a37ec4447597 Tests: ssl_password_file tests.
Sergey Kandaurov <pluknet@nginx.com>
parents:
diff changeset
8 ###############################################################################
a37ec4447597 Tests: ssl_password_file tests.
Sergey Kandaurov <pluknet@nginx.com>
parents:
diff changeset
9
a37ec4447597 Tests: ssl_password_file tests.
Sergey Kandaurov <pluknet@nginx.com>
parents:
diff changeset
10 use warnings;
a37ec4447597 Tests: ssl_password_file tests.
Sergey Kandaurov <pluknet@nginx.com>
parents:
diff changeset
11 use strict;
a37ec4447597 Tests: ssl_password_file tests.
Sergey Kandaurov <pluknet@nginx.com>
parents:
diff changeset
12
a37ec4447597 Tests: ssl_password_file tests.
Sergey Kandaurov <pluknet@nginx.com>
parents:
diff changeset
13 use Test::More;
a37ec4447597 Tests: ssl_password_file tests.
Sergey Kandaurov <pluknet@nginx.com>
parents:
diff changeset
14
a37ec4447597 Tests: ssl_password_file tests.
Sergey Kandaurov <pluknet@nginx.com>
parents:
diff changeset
15 use POSIX qw/ mkfifo /;
a37ec4447597 Tests: ssl_password_file tests.
Sergey Kandaurov <pluknet@nginx.com>
parents:
diff changeset
16 use Socket qw/ $CRLF /;
a37ec4447597 Tests: ssl_password_file tests.
Sergey Kandaurov <pluknet@nginx.com>
parents:
diff changeset
17
a37ec4447597 Tests: ssl_password_file tests.
Sergey Kandaurov <pluknet@nginx.com>
parents:
diff changeset
18 BEGIN { use FindBin; chdir($FindBin::Bin); }
a37ec4447597 Tests: ssl_password_file tests.
Sergey Kandaurov <pluknet@nginx.com>
parents:
diff changeset
19
a37ec4447597 Tests: ssl_password_file tests.
Sergey Kandaurov <pluknet@nginx.com>
parents:
diff changeset
20 use lib 'lib';
a37ec4447597 Tests: ssl_password_file tests.
Sergey Kandaurov <pluknet@nginx.com>
parents:
diff changeset
21 use Test::Nginx;
a37ec4447597 Tests: ssl_password_file tests.
Sergey Kandaurov <pluknet@nginx.com>
parents:
diff changeset
22
a37ec4447597 Tests: ssl_password_file tests.
Sergey Kandaurov <pluknet@nginx.com>
parents:
diff changeset
23 ###############################################################################
a37ec4447597 Tests: ssl_password_file tests.
Sergey Kandaurov <pluknet@nginx.com>
parents:
diff changeset
24
a37ec4447597 Tests: ssl_password_file tests.
Sergey Kandaurov <pluknet@nginx.com>
parents:
diff changeset
25 select STDERR; $| = 1;
a37ec4447597 Tests: ssl_password_file tests.
Sergey Kandaurov <pluknet@nginx.com>
parents:
diff changeset
26 select STDOUT; $| = 1;
a37ec4447597 Tests: ssl_password_file tests.
Sergey Kandaurov <pluknet@nginx.com>
parents:
diff changeset
27
663
4765f3981d91 Tests: fixed extra check for the presence of SSL_VERIFY_NONE.
Sergey Kandaurov <pluknet@nginx.com>
parents: 568
diff changeset
28 eval { require IO::Socket::SSL; };
420
a37ec4447597 Tests: ssl_password_file tests.
Sergey Kandaurov <pluknet@nginx.com>
parents:
diff changeset
29 plan(skip_all => 'IO::Socket::SSL not installed') if $@;
430
a82b02635614 Tests: skip ssl tests with ancient IO::Socket::SSL.
Maxim Dounin <mdounin@mdounin.ru>
parents: 423
diff changeset
30 eval { IO::Socket::SSL::SSL_VERIFY_NONE(); };
a82b02635614 Tests: skip ssl tests with ancient IO::Socket::SSL.
Maxim Dounin <mdounin@mdounin.ru>
parents: 423
diff changeset
31 plan(skip_all => 'IO::Socket::SSL too old') if $@;
a82b02635614 Tests: skip ssl tests with ancient IO::Socket::SSL.
Maxim Dounin <mdounin@mdounin.ru>
parents: 423
diff changeset
32
420
a37ec4447597 Tests: ssl_password_file tests.
Sergey Kandaurov <pluknet@nginx.com>
parents:
diff changeset
33 plan(skip_all => 'win32') if $^O eq 'MSWin32';
a37ec4447597 Tests: ssl_password_file tests.
Sergey Kandaurov <pluknet@nginx.com>
parents:
diff changeset
34
431
05c46688b54b Tests: ssl_password_file.t fixes.
Maxim Dounin <mdounin@mdounin.ru>
parents: 430
diff changeset
35 my $t = Test::Nginx->new()->has(qw/http http_ssl rewrite/)
05c46688b54b Tests: ssl_password_file.t fixes.
Maxim Dounin <mdounin@mdounin.ru>
parents: 430
diff changeset
36 ->has_daemon('openssl');
420
a37ec4447597 Tests: ssl_password_file tests.
Sergey Kandaurov <pluknet@nginx.com>
parents:
diff changeset
37
a37ec4447597 Tests: ssl_password_file tests.
Sergey Kandaurov <pluknet@nginx.com>
parents:
diff changeset
38 $t->plan(3)->write_file_expand('nginx.conf', <<'EOF');
a37ec4447597 Tests: ssl_password_file tests.
Sergey Kandaurov <pluknet@nginx.com>
parents:
diff changeset
39
a37ec4447597 Tests: ssl_password_file tests.
Sergey Kandaurov <pluknet@nginx.com>
parents:
diff changeset
40 %%TEST_GLOBALS%%
a37ec4447597 Tests: ssl_password_file tests.
Sergey Kandaurov <pluknet@nginx.com>
parents:
diff changeset
41
a37ec4447597 Tests: ssl_password_file tests.
Sergey Kandaurov <pluknet@nginx.com>
parents:
diff changeset
42 daemon off;
a37ec4447597 Tests: ssl_password_file tests.
Sergey Kandaurov <pluknet@nginx.com>
parents:
diff changeset
43
a37ec4447597 Tests: ssl_password_file tests.
Sergey Kandaurov <pluknet@nginx.com>
parents:
diff changeset
44 events {
a37ec4447597 Tests: ssl_password_file tests.
Sergey Kandaurov <pluknet@nginx.com>
parents:
diff changeset
45 }
a37ec4447597 Tests: ssl_password_file tests.
Sergey Kandaurov <pluknet@nginx.com>
parents:
diff changeset
46
a37ec4447597 Tests: ssl_password_file tests.
Sergey Kandaurov <pluknet@nginx.com>
parents:
diff changeset
47 http {
a37ec4447597 Tests: ssl_password_file tests.
Sergey Kandaurov <pluknet@nginx.com>
parents:
diff changeset
48 %%TEST_GLOBALS_HTTP%%
a37ec4447597 Tests: ssl_password_file tests.
Sergey Kandaurov <pluknet@nginx.com>
parents:
diff changeset
49
a37ec4447597 Tests: ssl_password_file tests.
Sergey Kandaurov <pluknet@nginx.com>
parents:
diff changeset
50 ssl_certificate_key localhost.key;
a37ec4447597 Tests: ssl_password_file tests.
Sergey Kandaurov <pluknet@nginx.com>
parents:
diff changeset
51 ssl_certificate localhost.crt;
a37ec4447597 Tests: ssl_password_file tests.
Sergey Kandaurov <pluknet@nginx.com>
parents:
diff changeset
52
a37ec4447597 Tests: ssl_password_file tests.
Sergey Kandaurov <pluknet@nginx.com>
parents:
diff changeset
53 # inherited by server "inherits"
a37ec4447597 Tests: ssl_password_file tests.
Sergey Kandaurov <pluknet@nginx.com>
parents:
diff changeset
54 ssl_password_file password_http;
a37ec4447597 Tests: ssl_password_file tests.
Sergey Kandaurov <pluknet@nginx.com>
parents:
diff changeset
55
a37ec4447597 Tests: ssl_password_file tests.
Sergey Kandaurov <pluknet@nginx.com>
parents:
diff changeset
56 server {
974
882267679006 Tests: simplified parallel modifications in tests.
Andrey Zelenkov <zelenkov@nginx.com>
parents: 952
diff changeset
57 listen 127.0.0.1:8081 ssl;
882267679006 Tests: simplified parallel modifications in tests.
Andrey Zelenkov <zelenkov@nginx.com>
parents: 952
diff changeset
58 listen 127.0.0.1:8080;
420
a37ec4447597 Tests: ssl_password_file tests.
Sergey Kandaurov <pluknet@nginx.com>
parents:
diff changeset
59 server_name localhost;
a37ec4447597 Tests: ssl_password_file tests.
Sergey Kandaurov <pluknet@nginx.com>
parents:
diff changeset
60
a37ec4447597 Tests: ssl_password_file tests.
Sergey Kandaurov <pluknet@nginx.com>
parents:
diff changeset
61 ssl_password_file password;
a37ec4447597 Tests: ssl_password_file tests.
Sergey Kandaurov <pluknet@nginx.com>
parents:
diff changeset
62
a37ec4447597 Tests: ssl_password_file tests.
Sergey Kandaurov <pluknet@nginx.com>
parents:
diff changeset
63 location / {
496
d13ea470657d Tests: fixed indentation.
Sergey Kandaurov <pluknet@nginx.com>
parents: 480
diff changeset
64 return 200 "$scheme";
420
a37ec4447597 Tests: ssl_password_file tests.
Sergey Kandaurov <pluknet@nginx.com>
parents:
diff changeset
65 }
a37ec4447597 Tests: ssl_password_file tests.
Sergey Kandaurov <pluknet@nginx.com>
parents:
diff changeset
66 }
a37ec4447597 Tests: ssl_password_file tests.
Sergey Kandaurov <pluknet@nginx.com>
parents:
diff changeset
67
a37ec4447597 Tests: ssl_password_file tests.
Sergey Kandaurov <pluknet@nginx.com>
parents:
diff changeset
68 server {
974
882267679006 Tests: simplified parallel modifications in tests.
Andrey Zelenkov <zelenkov@nginx.com>
parents: 952
diff changeset
69 listen 127.0.0.1:8080;
421
e8db4355fe0b Tests: fixed building the server_names_hash.
Sergey Kandaurov <pluknet@nginx.com>
parents: 420
diff changeset
70 server_name two_entries;
420
a37ec4447597 Tests: ssl_password_file tests.
Sergey Kandaurov <pluknet@nginx.com>
parents:
diff changeset
71
a37ec4447597 Tests: ssl_password_file tests.
Sergey Kandaurov <pluknet@nginx.com>
parents:
diff changeset
72 ssl_password_file password_many;
a37ec4447597 Tests: ssl_password_file tests.
Sergey Kandaurov <pluknet@nginx.com>
parents:
diff changeset
73 }
a37ec4447597 Tests: ssl_password_file tests.
Sergey Kandaurov <pluknet@nginx.com>
parents:
diff changeset
74
a37ec4447597 Tests: ssl_password_file tests.
Sergey Kandaurov <pluknet@nginx.com>
parents:
diff changeset
75 server {
974
882267679006 Tests: simplified parallel modifications in tests.
Andrey Zelenkov <zelenkov@nginx.com>
parents: 952
diff changeset
76 listen 127.0.0.1:8080;
420
a37ec4447597 Tests: ssl_password_file tests.
Sergey Kandaurov <pluknet@nginx.com>
parents:
diff changeset
77 server_name file_is_fifo;
a37ec4447597 Tests: ssl_password_file tests.
Sergey Kandaurov <pluknet@nginx.com>
parents:
diff changeset
78
a37ec4447597 Tests: ssl_password_file tests.
Sergey Kandaurov <pluknet@nginx.com>
parents:
diff changeset
79 ssl_password_file password_fifo;
a37ec4447597 Tests: ssl_password_file tests.
Sergey Kandaurov <pluknet@nginx.com>
parents:
diff changeset
80 }
a37ec4447597 Tests: ssl_password_file tests.
Sergey Kandaurov <pluknet@nginx.com>
parents:
diff changeset
81
a37ec4447597 Tests: ssl_password_file tests.
Sergey Kandaurov <pluknet@nginx.com>
parents:
diff changeset
82 server {
974
882267679006 Tests: simplified parallel modifications in tests.
Andrey Zelenkov <zelenkov@nginx.com>
parents: 952
diff changeset
83 listen 127.0.0.1:8080;
420
a37ec4447597 Tests: ssl_password_file tests.
Sergey Kandaurov <pluknet@nginx.com>
parents:
diff changeset
84 server_name inherits;
a37ec4447597 Tests: ssl_password_file tests.
Sergey Kandaurov <pluknet@nginx.com>
parents:
diff changeset
85
a37ec4447597 Tests: ssl_password_file tests.
Sergey Kandaurov <pluknet@nginx.com>
parents:
diff changeset
86 ssl_certificate_key inherits.key;
a37ec4447597 Tests: ssl_password_file tests.
Sergey Kandaurov <pluknet@nginx.com>
parents:
diff changeset
87 ssl_certificate inherits.crt;
a37ec4447597 Tests: ssl_password_file tests.
Sergey Kandaurov <pluknet@nginx.com>
parents:
diff changeset
88 }
a37ec4447597 Tests: ssl_password_file tests.
Sergey Kandaurov <pluknet@nginx.com>
parents:
diff changeset
89 }
a37ec4447597 Tests: ssl_password_file tests.
Sergey Kandaurov <pluknet@nginx.com>
parents:
diff changeset
90
a37ec4447597 Tests: ssl_password_file tests.
Sergey Kandaurov <pluknet@nginx.com>
parents:
diff changeset
91 EOF
a37ec4447597 Tests: ssl_password_file tests.
Sergey Kandaurov <pluknet@nginx.com>
parents:
diff changeset
92
a37ec4447597 Tests: ssl_password_file tests.
Sergey Kandaurov <pluknet@nginx.com>
parents:
diff changeset
93 $t->write_file('openssl.conf', <<EOF);
a37ec4447597 Tests: ssl_password_file tests.
Sergey Kandaurov <pluknet@nginx.com>
parents:
diff changeset
94 [ req ]
1116
8ef51dbb5d69 Tests: reduced OpenSSL default key length to 1024.
Sergey Kandaurov <pluknet@nginx.com>
parents: 1087
diff changeset
95 default_bits = 1024
420
a37ec4447597 Tests: ssl_password_file tests.
Sergey Kandaurov <pluknet@nginx.com>
parents:
diff changeset
96 encrypt_key = no
a37ec4447597 Tests: ssl_password_file tests.
Sergey Kandaurov <pluknet@nginx.com>
parents:
diff changeset
97 distinguished_name = req_distinguished_name
a37ec4447597 Tests: ssl_password_file tests.
Sergey Kandaurov <pluknet@nginx.com>
parents:
diff changeset
98 [ req_distinguished_name ]
a37ec4447597 Tests: ssl_password_file tests.
Sergey Kandaurov <pluknet@nginx.com>
parents:
diff changeset
99 EOF
a37ec4447597 Tests: ssl_password_file tests.
Sergey Kandaurov <pluknet@nginx.com>
parents:
diff changeset
100
a37ec4447597 Tests: ssl_password_file tests.
Sergey Kandaurov <pluknet@nginx.com>
parents:
diff changeset
101 my $d = $t->testdir();
a37ec4447597 Tests: ssl_password_file tests.
Sergey Kandaurov <pluknet@nginx.com>
parents:
diff changeset
102 mkfifo("$d/password_fifo", 0700);
a37ec4447597 Tests: ssl_password_file tests.
Sergey Kandaurov <pluknet@nginx.com>
parents:
diff changeset
103
a37ec4447597 Tests: ssl_password_file tests.
Sergey Kandaurov <pluknet@nginx.com>
parents:
diff changeset
104 foreach my $name ('localhost', 'inherits') {
1220
0af58b78df35 Tests: removed single quotes from system() calls.
Sergey Kandaurov <pluknet@nginx.com>
parents: 1140
diff changeset
105 system("openssl genrsa -out $d/$name.key -passout pass:$name "
1140
778eae8230e4 Tests: reduced OpenSSL default key length to 1024.
Andrey Zelenkov <zelenkov@nginx.com>
parents: 1116
diff changeset
106 . "-aes128 1024 >>$d/openssl.out 2>&1") == 0
420
a37ec4447597 Tests: ssl_password_file tests.
Sergey Kandaurov <pluknet@nginx.com>
parents:
diff changeset
107 or die "Can't create private key: $!\n";
a37ec4447597 Tests: ssl_password_file tests.
Sergey Kandaurov <pluknet@nginx.com>
parents:
diff changeset
108 system('openssl req -x509 -new '
1220
0af58b78df35 Tests: removed single quotes from system() calls.
Sergey Kandaurov <pluknet@nginx.com>
parents: 1140
diff changeset
109 . "-config $d/openssl.conf -subj /CN=$name/ "
0af58b78df35 Tests: removed single quotes from system() calls.
Sergey Kandaurov <pluknet@nginx.com>
parents: 1140
diff changeset
110 . "-out $d/$name.crt "
0af58b78df35 Tests: removed single quotes from system() calls.
Sergey Kandaurov <pluknet@nginx.com>
parents: 1140
diff changeset
111 . "-key $d/$name.key -passin pass:$name"
420
a37ec4447597 Tests: ssl_password_file tests.
Sergey Kandaurov <pluknet@nginx.com>
parents:
diff changeset
112 . ">>$d/openssl.out 2>&1") == 0
a37ec4447597 Tests: ssl_password_file tests.
Sergey Kandaurov <pluknet@nginx.com>
parents:
diff changeset
113 or die "Can't create certificate for $name: $!\n";
a37ec4447597 Tests: ssl_password_file tests.
Sergey Kandaurov <pluknet@nginx.com>
parents:
diff changeset
114 }
a37ec4447597 Tests: ssl_password_file tests.
Sergey Kandaurov <pluknet@nginx.com>
parents:
diff changeset
115
a37ec4447597 Tests: ssl_password_file tests.
Sergey Kandaurov <pluknet@nginx.com>
parents:
diff changeset
116 $t->write_file('password', 'localhost');
a37ec4447597 Tests: ssl_password_file tests.
Sergey Kandaurov <pluknet@nginx.com>
parents:
diff changeset
117 $t->write_file('password_many', "wrong$CRLF" . "localhost$CRLF");
a37ec4447597 Tests: ssl_password_file tests.
Sergey Kandaurov <pluknet@nginx.com>
parents:
diff changeset
118 $t->write_file('password_http', 'inherits');
a37ec4447597 Tests: ssl_password_file tests.
Sergey Kandaurov <pluknet@nginx.com>
parents:
diff changeset
119
1087
534d209f6ae4 Tests: fixed ssl_password_file test hang with missing FIFO reader.
Sergey Kandaurov <pluknet@nginx.com>
parents: 1039
diff changeset
120 my $p = fork();
534d209f6ae4 Tests: fixed ssl_password_file test hang with missing FIFO reader.
Sergey Kandaurov <pluknet@nginx.com>
parents: 1039
diff changeset
121 exec("echo localhost > $d/password_fifo") if $p == 0;
420
a37ec4447597 Tests: ssl_password_file tests.
Sergey Kandaurov <pluknet@nginx.com>
parents:
diff changeset
122
a37ec4447597 Tests: ssl_password_file tests.
Sergey Kandaurov <pluknet@nginx.com>
parents:
diff changeset
123 # do not mangle with try_run()
a37ec4447597 Tests: ssl_password_file tests.
Sergey Kandaurov <pluknet@nginx.com>
parents:
diff changeset
124 # we need to distinguish ssl_password_file support vs its brokenness
a37ec4447597 Tests: ssl_password_file tests.
Sergey Kandaurov <pluknet@nginx.com>
parents:
diff changeset
125
a37ec4447597 Tests: ssl_password_file tests.
Sergey Kandaurov <pluknet@nginx.com>
parents:
diff changeset
126 eval {
a37ec4447597 Tests: ssl_password_file tests.
Sergey Kandaurov <pluknet@nginx.com>
parents:
diff changeset
127 open OLDERR, ">&", \*STDERR; close STDERR;
a37ec4447597 Tests: ssl_password_file tests.
Sergey Kandaurov <pluknet@nginx.com>
parents:
diff changeset
128 $t->run();
a37ec4447597 Tests: ssl_password_file tests.
Sergey Kandaurov <pluknet@nginx.com>
parents:
diff changeset
129 open STDERR, ">&", \*OLDERR;
a37ec4447597 Tests: ssl_password_file tests.
Sergey Kandaurov <pluknet@nginx.com>
parents:
diff changeset
130 };
1087
534d209f6ae4 Tests: fixed ssl_password_file test hang with missing FIFO reader.
Sergey Kandaurov <pluknet@nginx.com>
parents: 1039
diff changeset
131 kill 'INT', $p if $@;
420
a37ec4447597 Tests: ssl_password_file tests.
Sergey Kandaurov <pluknet@nginx.com>
parents:
diff changeset
132
a37ec4447597 Tests: ssl_password_file tests.
Sergey Kandaurov <pluknet@nginx.com>
parents:
diff changeset
133 ###############################################################################
a37ec4447597 Tests: ssl_password_file tests.
Sergey Kandaurov <pluknet@nginx.com>
parents:
diff changeset
134
a37ec4447597 Tests: ssl_password_file tests.
Sergey Kandaurov <pluknet@nginx.com>
parents:
diff changeset
135 is($@, '', 'ssl_password_file works');
a37ec4447597 Tests: ssl_password_file tests.
Sergey Kandaurov <pluknet@nginx.com>
parents:
diff changeset
136
a37ec4447597 Tests: ssl_password_file tests.
Sergey Kandaurov <pluknet@nginx.com>
parents:
diff changeset
137 # simple tests to ensure that nothing broke with ssl_password_file directive
a37ec4447597 Tests: ssl_password_file tests.
Sergey Kandaurov <pluknet@nginx.com>
parents:
diff changeset
138
431
05c46688b54b Tests: ssl_password_file.t fixes.
Maxim Dounin <mdounin@mdounin.ru>
parents: 430
diff changeset
139 like(http_get('/'), qr/200 OK.*http/ms, 'http');
05c46688b54b Tests: ssl_password_file.t fixes.
Maxim Dounin <mdounin@mdounin.ru>
parents: 430
diff changeset
140 like(http_get('/', socket => get_ssl_socket()), qr/200 OK.*https/ms, 'https');
420
a37ec4447597 Tests: ssl_password_file tests.
Sergey Kandaurov <pluknet@nginx.com>
parents:
diff changeset
141
a37ec4447597 Tests: ssl_password_file tests.
Sergey Kandaurov <pluknet@nginx.com>
parents:
diff changeset
142 ###############################################################################
a37ec4447597 Tests: ssl_password_file tests.
Sergey Kandaurov <pluknet@nginx.com>
parents:
diff changeset
143
a37ec4447597 Tests: ssl_password_file tests.
Sergey Kandaurov <pluknet@nginx.com>
parents:
diff changeset
144 sub get_ssl_socket {
a37ec4447597 Tests: ssl_password_file tests.
Sergey Kandaurov <pluknet@nginx.com>
parents:
diff changeset
145 my $s;
a37ec4447597 Tests: ssl_password_file tests.
Sergey Kandaurov <pluknet@nginx.com>
parents:
diff changeset
146
a37ec4447597 Tests: ssl_password_file tests.
Sergey Kandaurov <pluknet@nginx.com>
parents:
diff changeset
147 eval {
a37ec4447597 Tests: ssl_password_file tests.
Sergey Kandaurov <pluknet@nginx.com>
parents:
diff changeset
148 local $SIG{ALRM} = sub { die "timeout\n" };
a37ec4447597 Tests: ssl_password_file tests.
Sergey Kandaurov <pluknet@nginx.com>
parents:
diff changeset
149 local $SIG{PIPE} = sub { die "sigpipe\n" };
a37ec4447597 Tests: ssl_password_file tests.
Sergey Kandaurov <pluknet@nginx.com>
parents:
diff changeset
150 alarm(2);
a37ec4447597 Tests: ssl_password_file tests.
Sergey Kandaurov <pluknet@nginx.com>
parents:
diff changeset
151 $s = IO::Socket::SSL->new(
a37ec4447597 Tests: ssl_password_file tests.
Sergey Kandaurov <pluknet@nginx.com>
parents:
diff changeset
152 Proto => 'tcp',
974
882267679006 Tests: simplified parallel modifications in tests.
Andrey Zelenkov <zelenkov@nginx.com>
parents: 952
diff changeset
153 PeerAddr => '127.0.0.1:' . port(8081),
420
a37ec4447597 Tests: ssl_password_file tests.
Sergey Kandaurov <pluknet@nginx.com>
parents:
diff changeset
154 SSL_verify_mode => IO::Socket::SSL::SSL_VERIFY_NONE(),
a37ec4447597 Tests: ssl_password_file tests.
Sergey Kandaurov <pluknet@nginx.com>
parents:
diff changeset
155 SSL_error_trap => sub { die $_[1] }
a37ec4447597 Tests: ssl_password_file tests.
Sergey Kandaurov <pluknet@nginx.com>
parents:
diff changeset
156 );
a37ec4447597 Tests: ssl_password_file tests.
Sergey Kandaurov <pluknet@nginx.com>
parents:
diff changeset
157 alarm(0);
a37ec4447597 Tests: ssl_password_file tests.
Sergey Kandaurov <pluknet@nginx.com>
parents:
diff changeset
158 };
a37ec4447597 Tests: ssl_password_file tests.
Sergey Kandaurov <pluknet@nginx.com>
parents:
diff changeset
159 alarm(0);
a37ec4447597 Tests: ssl_password_file tests.
Sergey Kandaurov <pluknet@nginx.com>
parents:
diff changeset
160
a37ec4447597 Tests: ssl_password_file tests.
Sergey Kandaurov <pluknet@nginx.com>
parents:
diff changeset
161 if ($@) {
a37ec4447597 Tests: ssl_password_file tests.
Sergey Kandaurov <pluknet@nginx.com>
parents:
diff changeset
162 log_in("died: $@");
a37ec4447597 Tests: ssl_password_file tests.
Sergey Kandaurov <pluknet@nginx.com>
parents:
diff changeset
163 return undef;
a37ec4447597 Tests: ssl_password_file tests.
Sergey Kandaurov <pluknet@nginx.com>
parents:
diff changeset
164 }
a37ec4447597 Tests: ssl_password_file tests.
Sergey Kandaurov <pluknet@nginx.com>
parents:
diff changeset
165
a37ec4447597 Tests: ssl_password_file tests.
Sergey Kandaurov <pluknet@nginx.com>
parents:
diff changeset
166 return $s;
a37ec4447597 Tests: ssl_password_file tests.
Sergey Kandaurov <pluknet@nginx.com>
parents:
diff changeset
167 }
a37ec4447597 Tests: ssl_password_file tests.
Sergey Kandaurov <pluknet@nginx.com>
parents:
diff changeset
168
a37ec4447597 Tests: ssl_password_file tests.
Sergey Kandaurov <pluknet@nginx.com>
parents:
diff changeset
169 ###############################################################################