annotate mail_ssl.t @ 1215:26884729e06b

Tests: cope with resolver resend in mail resolver tests. Currently, if resolver didn't find PTR type in the answer section of PTR response, it keeps the node in the resend queue until the next timer event.
author Sergey Kandaurov <pluknet@nginx.com>
date Thu, 31 Aug 2017 19:09:04 +0300
parents 44620036fedf
children 0af58b78df35
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
rev   line source
1142
baeebac35a2e Tests: basic mail ssl tests.
Andrey Zelenkov <zelenkov@nginx.com>
parents:
diff changeset
1 #!/usr/bin/perl
baeebac35a2e Tests: basic mail ssl tests.
Andrey Zelenkov <zelenkov@nginx.com>
parents:
diff changeset
2
baeebac35a2e Tests: basic mail ssl tests.
Andrey Zelenkov <zelenkov@nginx.com>
parents:
diff changeset
3 # (C) Andrey Zelenkov
baeebac35a2e Tests: basic mail ssl tests.
Andrey Zelenkov <zelenkov@nginx.com>
parents:
diff changeset
4 # (C) Nginx, Inc.
baeebac35a2e Tests: basic mail ssl tests.
Andrey Zelenkov <zelenkov@nginx.com>
parents:
diff changeset
5
baeebac35a2e Tests: basic mail ssl tests.
Andrey Zelenkov <zelenkov@nginx.com>
parents:
diff changeset
6 # Tests for mail ssl module.
baeebac35a2e Tests: basic mail ssl tests.
Andrey Zelenkov <zelenkov@nginx.com>
parents:
diff changeset
7
baeebac35a2e Tests: basic mail ssl tests.
Andrey Zelenkov <zelenkov@nginx.com>
parents:
diff changeset
8 ###############################################################################
baeebac35a2e Tests: basic mail ssl tests.
Andrey Zelenkov <zelenkov@nginx.com>
parents:
diff changeset
9
baeebac35a2e Tests: basic mail ssl tests.
Andrey Zelenkov <zelenkov@nginx.com>
parents:
diff changeset
10 use warnings;
baeebac35a2e Tests: basic mail ssl tests.
Andrey Zelenkov <zelenkov@nginx.com>
parents:
diff changeset
11 use strict;
baeebac35a2e Tests: basic mail ssl tests.
Andrey Zelenkov <zelenkov@nginx.com>
parents:
diff changeset
12
baeebac35a2e Tests: basic mail ssl tests.
Andrey Zelenkov <zelenkov@nginx.com>
parents:
diff changeset
13 use Test::More;
baeebac35a2e Tests: basic mail ssl tests.
Andrey Zelenkov <zelenkov@nginx.com>
parents:
diff changeset
14
baeebac35a2e Tests: basic mail ssl tests.
Andrey Zelenkov <zelenkov@nginx.com>
parents:
diff changeset
15 use Socket qw/ :DEFAULT $CRLF /;
baeebac35a2e Tests: basic mail ssl tests.
Andrey Zelenkov <zelenkov@nginx.com>
parents:
diff changeset
16
baeebac35a2e Tests: basic mail ssl tests.
Andrey Zelenkov <zelenkov@nginx.com>
parents:
diff changeset
17 BEGIN { use FindBin; chdir($FindBin::Bin); }
baeebac35a2e Tests: basic mail ssl tests.
Andrey Zelenkov <zelenkov@nginx.com>
parents:
diff changeset
18
baeebac35a2e Tests: basic mail ssl tests.
Andrey Zelenkov <zelenkov@nginx.com>
parents:
diff changeset
19 use lib 'lib';
baeebac35a2e Tests: basic mail ssl tests.
Andrey Zelenkov <zelenkov@nginx.com>
parents:
diff changeset
20 use Test::Nginx;
baeebac35a2e Tests: basic mail ssl tests.
Andrey Zelenkov <zelenkov@nginx.com>
parents:
diff changeset
21 use Test::Nginx::IMAP;
baeebac35a2e Tests: basic mail ssl tests.
Andrey Zelenkov <zelenkov@nginx.com>
parents:
diff changeset
22 use Test::Nginx::POP3;
1148
44620036fedf Tests: added starttls tests for smtp.
Andrey Zelenkov <zelenkov@nginx.com>
parents: 1147
diff changeset
23 use Test::Nginx::SMTP;
1142
baeebac35a2e Tests: basic mail ssl tests.
Andrey Zelenkov <zelenkov@nginx.com>
parents:
diff changeset
24
baeebac35a2e Tests: basic mail ssl tests.
Andrey Zelenkov <zelenkov@nginx.com>
parents:
diff changeset
25 ###############################################################################
baeebac35a2e Tests: basic mail ssl tests.
Andrey Zelenkov <zelenkov@nginx.com>
parents:
diff changeset
26
baeebac35a2e Tests: basic mail ssl tests.
Andrey Zelenkov <zelenkov@nginx.com>
parents:
diff changeset
27 select STDERR; $| = 1;
baeebac35a2e Tests: basic mail ssl tests.
Andrey Zelenkov <zelenkov@nginx.com>
parents:
diff changeset
28 select STDOUT; $| = 1;
baeebac35a2e Tests: basic mail ssl tests.
Andrey Zelenkov <zelenkov@nginx.com>
parents:
diff changeset
29
baeebac35a2e Tests: basic mail ssl tests.
Andrey Zelenkov <zelenkov@nginx.com>
parents:
diff changeset
30 eval {
baeebac35a2e Tests: basic mail ssl tests.
Andrey Zelenkov <zelenkov@nginx.com>
parents:
diff changeset
31 require Net::SSLeay;
baeebac35a2e Tests: basic mail ssl tests.
Andrey Zelenkov <zelenkov@nginx.com>
parents:
diff changeset
32 Net::SSLeay::load_error_strings();
baeebac35a2e Tests: basic mail ssl tests.
Andrey Zelenkov <zelenkov@nginx.com>
parents:
diff changeset
33 Net::SSLeay::SSLeay_add_ssl_algorithms();
baeebac35a2e Tests: basic mail ssl tests.
Andrey Zelenkov <zelenkov@nginx.com>
parents:
diff changeset
34 Net::SSLeay::randomize();
baeebac35a2e Tests: basic mail ssl tests.
Andrey Zelenkov <zelenkov@nginx.com>
parents:
diff changeset
35 };
baeebac35a2e Tests: basic mail ssl tests.
Andrey Zelenkov <zelenkov@nginx.com>
parents:
diff changeset
36 plan(skip_all => 'Net::SSLeay not installed') if $@;
baeebac35a2e Tests: basic mail ssl tests.
Andrey Zelenkov <zelenkov@nginx.com>
parents:
diff changeset
37
1148
44620036fedf Tests: added starttls tests for smtp.
Andrey Zelenkov <zelenkov@nginx.com>
parents: 1147
diff changeset
38 my $t = Test::Nginx->new()->has(qw/mail mail_ssl imap pop3 smtp/)
44620036fedf Tests: added starttls tests for smtp.
Andrey Zelenkov <zelenkov@nginx.com>
parents: 1147
diff changeset
39 ->has_daemon('openssl')->plan(20);
1142
baeebac35a2e Tests: basic mail ssl tests.
Andrey Zelenkov <zelenkov@nginx.com>
parents:
diff changeset
40
baeebac35a2e Tests: basic mail ssl tests.
Andrey Zelenkov <zelenkov@nginx.com>
parents:
diff changeset
41 $t->write_file_expand('nginx.conf', <<'EOF');
baeebac35a2e Tests: basic mail ssl tests.
Andrey Zelenkov <zelenkov@nginx.com>
parents:
diff changeset
42
baeebac35a2e Tests: basic mail ssl tests.
Andrey Zelenkov <zelenkov@nginx.com>
parents:
diff changeset
43 %%TEST_GLOBALS%%
baeebac35a2e Tests: basic mail ssl tests.
Andrey Zelenkov <zelenkov@nginx.com>
parents:
diff changeset
44
baeebac35a2e Tests: basic mail ssl tests.
Andrey Zelenkov <zelenkov@nginx.com>
parents:
diff changeset
45 daemon off;
baeebac35a2e Tests: basic mail ssl tests.
Andrey Zelenkov <zelenkov@nginx.com>
parents:
diff changeset
46
baeebac35a2e Tests: basic mail ssl tests.
Andrey Zelenkov <zelenkov@nginx.com>
parents:
diff changeset
47 events {
baeebac35a2e Tests: basic mail ssl tests.
Andrey Zelenkov <zelenkov@nginx.com>
parents:
diff changeset
48 }
baeebac35a2e Tests: basic mail ssl tests.
Andrey Zelenkov <zelenkov@nginx.com>
parents:
diff changeset
49
baeebac35a2e Tests: basic mail ssl tests.
Andrey Zelenkov <zelenkov@nginx.com>
parents:
diff changeset
50 mail {
baeebac35a2e Tests: basic mail ssl tests.
Andrey Zelenkov <zelenkov@nginx.com>
parents:
diff changeset
51 ssl_certificate_key localhost.key;
baeebac35a2e Tests: basic mail ssl tests.
Andrey Zelenkov <zelenkov@nginx.com>
parents:
diff changeset
52 ssl_certificate localhost.crt;
baeebac35a2e Tests: basic mail ssl tests.
Andrey Zelenkov <zelenkov@nginx.com>
parents:
diff changeset
53 ssl_session_tickets off;
baeebac35a2e Tests: basic mail ssl tests.
Andrey Zelenkov <zelenkov@nginx.com>
parents:
diff changeset
54
1147
796ed08cb215 Tests: simplified ssl_password_file tests in mail_ssl.t.
Andrey Zelenkov <zelenkov@nginx.com>
parents: 1145
diff changeset
55 ssl_password_file password;
1142
baeebac35a2e Tests: basic mail ssl tests.
Andrey Zelenkov <zelenkov@nginx.com>
parents:
diff changeset
56
1145
f193664e06d8 Tests: remove unused http block in mail_ssl.t.
Andrey Zelenkov <zelenkov@nginx.com>
parents: 1142
diff changeset
57 auth_http http://127.0.0.1:8080; # unused
1142
baeebac35a2e Tests: basic mail ssl tests.
Andrey Zelenkov <zelenkov@nginx.com>
parents:
diff changeset
58
baeebac35a2e Tests: basic mail ssl tests.
Andrey Zelenkov <zelenkov@nginx.com>
parents:
diff changeset
59 ssl_session_cache none;
baeebac35a2e Tests: basic mail ssl tests.
Andrey Zelenkov <zelenkov@nginx.com>
parents:
diff changeset
60
baeebac35a2e Tests: basic mail ssl tests.
Andrey Zelenkov <zelenkov@nginx.com>
parents:
diff changeset
61 server {
baeebac35a2e Tests: basic mail ssl tests.
Andrey Zelenkov <zelenkov@nginx.com>
parents:
diff changeset
62 listen 127.0.0.1:8143;
baeebac35a2e Tests: basic mail ssl tests.
Andrey Zelenkov <zelenkov@nginx.com>
parents:
diff changeset
63 listen 127.0.0.1:8145 ssl;
baeebac35a2e Tests: basic mail ssl tests.
Andrey Zelenkov <zelenkov@nginx.com>
parents:
diff changeset
64 protocol imap;
baeebac35a2e Tests: basic mail ssl tests.
Andrey Zelenkov <zelenkov@nginx.com>
parents:
diff changeset
65
baeebac35a2e Tests: basic mail ssl tests.
Andrey Zelenkov <zelenkov@nginx.com>
parents:
diff changeset
66 ssl_session_cache builtin;
baeebac35a2e Tests: basic mail ssl tests.
Andrey Zelenkov <zelenkov@nginx.com>
parents:
diff changeset
67 }
baeebac35a2e Tests: basic mail ssl tests.
Andrey Zelenkov <zelenkov@nginx.com>
parents:
diff changeset
68
baeebac35a2e Tests: basic mail ssl tests.
Andrey Zelenkov <zelenkov@nginx.com>
parents:
diff changeset
69 server {
baeebac35a2e Tests: basic mail ssl tests.
Andrey Zelenkov <zelenkov@nginx.com>
parents:
diff changeset
70 listen 127.0.0.1:8146 ssl;
baeebac35a2e Tests: basic mail ssl tests.
Andrey Zelenkov <zelenkov@nginx.com>
parents:
diff changeset
71 protocol imap;
baeebac35a2e Tests: basic mail ssl tests.
Andrey Zelenkov <zelenkov@nginx.com>
parents:
diff changeset
72
baeebac35a2e Tests: basic mail ssl tests.
Andrey Zelenkov <zelenkov@nginx.com>
parents:
diff changeset
73 ssl_session_cache off;
baeebac35a2e Tests: basic mail ssl tests.
Andrey Zelenkov <zelenkov@nginx.com>
parents:
diff changeset
74 }
baeebac35a2e Tests: basic mail ssl tests.
Andrey Zelenkov <zelenkov@nginx.com>
parents:
diff changeset
75
baeebac35a2e Tests: basic mail ssl tests.
Andrey Zelenkov <zelenkov@nginx.com>
parents:
diff changeset
76 server {
baeebac35a2e Tests: basic mail ssl tests.
Andrey Zelenkov <zelenkov@nginx.com>
parents:
diff changeset
77 listen 127.0.0.1:8147;
baeebac35a2e Tests: basic mail ssl tests.
Andrey Zelenkov <zelenkov@nginx.com>
parents:
diff changeset
78 protocol imap;
baeebac35a2e Tests: basic mail ssl tests.
Andrey Zelenkov <zelenkov@nginx.com>
parents:
diff changeset
79
baeebac35a2e Tests: basic mail ssl tests.
Andrey Zelenkov <zelenkov@nginx.com>
parents:
diff changeset
80 # Special case for enabled "ssl" directive.
baeebac35a2e Tests: basic mail ssl tests.
Andrey Zelenkov <zelenkov@nginx.com>
parents:
diff changeset
81
baeebac35a2e Tests: basic mail ssl tests.
Andrey Zelenkov <zelenkov@nginx.com>
parents:
diff changeset
82 ssl on;
baeebac35a2e Tests: basic mail ssl tests.
Andrey Zelenkov <zelenkov@nginx.com>
parents:
diff changeset
83 ssl_session_cache builtin:1000;
baeebac35a2e Tests: basic mail ssl tests.
Andrey Zelenkov <zelenkov@nginx.com>
parents:
diff changeset
84 }
baeebac35a2e Tests: basic mail ssl tests.
Andrey Zelenkov <zelenkov@nginx.com>
parents:
diff changeset
85
baeebac35a2e Tests: basic mail ssl tests.
Andrey Zelenkov <zelenkov@nginx.com>
parents:
diff changeset
86 server {
baeebac35a2e Tests: basic mail ssl tests.
Andrey Zelenkov <zelenkov@nginx.com>
parents:
diff changeset
87 listen 127.0.0.1:8148 ssl;
baeebac35a2e Tests: basic mail ssl tests.
Andrey Zelenkov <zelenkov@nginx.com>
parents:
diff changeset
88 protocol imap;
baeebac35a2e Tests: basic mail ssl tests.
Andrey Zelenkov <zelenkov@nginx.com>
parents:
diff changeset
89
baeebac35a2e Tests: basic mail ssl tests.
Andrey Zelenkov <zelenkov@nginx.com>
parents:
diff changeset
90 ssl_session_cache shared:SSL:1m;
baeebac35a2e Tests: basic mail ssl tests.
Andrey Zelenkov <zelenkov@nginx.com>
parents:
diff changeset
91 ssl_certificate_key inherits.key;
baeebac35a2e Tests: basic mail ssl tests.
Andrey Zelenkov <zelenkov@nginx.com>
parents:
diff changeset
92 ssl_certificate inherits.crt;
baeebac35a2e Tests: basic mail ssl tests.
Andrey Zelenkov <zelenkov@nginx.com>
parents:
diff changeset
93 }
baeebac35a2e Tests: basic mail ssl tests.
Andrey Zelenkov <zelenkov@nginx.com>
parents:
diff changeset
94
baeebac35a2e Tests: basic mail ssl tests.
Andrey Zelenkov <zelenkov@nginx.com>
parents:
diff changeset
95 server {
baeebac35a2e Tests: basic mail ssl tests.
Andrey Zelenkov <zelenkov@nginx.com>
parents:
diff changeset
96 listen 127.0.0.1:8149;
baeebac35a2e Tests: basic mail ssl tests.
Andrey Zelenkov <zelenkov@nginx.com>
parents:
diff changeset
97 protocol imap;
baeebac35a2e Tests: basic mail ssl tests.
Andrey Zelenkov <zelenkov@nginx.com>
parents:
diff changeset
98
baeebac35a2e Tests: basic mail ssl tests.
Andrey Zelenkov <zelenkov@nginx.com>
parents:
diff changeset
99 starttls on;
baeebac35a2e Tests: basic mail ssl tests.
Andrey Zelenkov <zelenkov@nginx.com>
parents:
diff changeset
100 }
baeebac35a2e Tests: basic mail ssl tests.
Andrey Zelenkov <zelenkov@nginx.com>
parents:
diff changeset
101
baeebac35a2e Tests: basic mail ssl tests.
Andrey Zelenkov <zelenkov@nginx.com>
parents:
diff changeset
102 server {
baeebac35a2e Tests: basic mail ssl tests.
Andrey Zelenkov <zelenkov@nginx.com>
parents:
diff changeset
103 listen 127.0.0.1:8150;
baeebac35a2e Tests: basic mail ssl tests.
Andrey Zelenkov <zelenkov@nginx.com>
parents:
diff changeset
104 protocol imap;
baeebac35a2e Tests: basic mail ssl tests.
Andrey Zelenkov <zelenkov@nginx.com>
parents:
diff changeset
105
baeebac35a2e Tests: basic mail ssl tests.
Andrey Zelenkov <zelenkov@nginx.com>
parents:
diff changeset
106 starttls only;
baeebac35a2e Tests: basic mail ssl tests.
Andrey Zelenkov <zelenkov@nginx.com>
parents:
diff changeset
107 }
baeebac35a2e Tests: basic mail ssl tests.
Andrey Zelenkov <zelenkov@nginx.com>
parents:
diff changeset
108
baeebac35a2e Tests: basic mail ssl tests.
Andrey Zelenkov <zelenkov@nginx.com>
parents:
diff changeset
109 server {
baeebac35a2e Tests: basic mail ssl tests.
Andrey Zelenkov <zelenkov@nginx.com>
parents:
diff changeset
110 listen 127.0.0.1:8151;
baeebac35a2e Tests: basic mail ssl tests.
Andrey Zelenkov <zelenkov@nginx.com>
parents:
diff changeset
111 protocol pop3;
baeebac35a2e Tests: basic mail ssl tests.
Andrey Zelenkov <zelenkov@nginx.com>
parents:
diff changeset
112
baeebac35a2e Tests: basic mail ssl tests.
Andrey Zelenkov <zelenkov@nginx.com>
parents:
diff changeset
113 starttls on;
baeebac35a2e Tests: basic mail ssl tests.
Andrey Zelenkov <zelenkov@nginx.com>
parents:
diff changeset
114 }
baeebac35a2e Tests: basic mail ssl tests.
Andrey Zelenkov <zelenkov@nginx.com>
parents:
diff changeset
115
baeebac35a2e Tests: basic mail ssl tests.
Andrey Zelenkov <zelenkov@nginx.com>
parents:
diff changeset
116 server {
baeebac35a2e Tests: basic mail ssl tests.
Andrey Zelenkov <zelenkov@nginx.com>
parents:
diff changeset
117 listen 127.0.0.1:8152;
baeebac35a2e Tests: basic mail ssl tests.
Andrey Zelenkov <zelenkov@nginx.com>
parents:
diff changeset
118 protocol pop3;
baeebac35a2e Tests: basic mail ssl tests.
Andrey Zelenkov <zelenkov@nginx.com>
parents:
diff changeset
119
baeebac35a2e Tests: basic mail ssl tests.
Andrey Zelenkov <zelenkov@nginx.com>
parents:
diff changeset
120 starttls only;
baeebac35a2e Tests: basic mail ssl tests.
Andrey Zelenkov <zelenkov@nginx.com>
parents:
diff changeset
121 }
1148
44620036fedf Tests: added starttls tests for smtp.
Andrey Zelenkov <zelenkov@nginx.com>
parents: 1147
diff changeset
122
44620036fedf Tests: added starttls tests for smtp.
Andrey Zelenkov <zelenkov@nginx.com>
parents: 1147
diff changeset
123 server {
44620036fedf Tests: added starttls tests for smtp.
Andrey Zelenkov <zelenkov@nginx.com>
parents: 1147
diff changeset
124 listen 127.0.0.1:8153;
44620036fedf Tests: added starttls tests for smtp.
Andrey Zelenkov <zelenkov@nginx.com>
parents: 1147
diff changeset
125 protocol smtp;
44620036fedf Tests: added starttls tests for smtp.
Andrey Zelenkov <zelenkov@nginx.com>
parents: 1147
diff changeset
126
44620036fedf Tests: added starttls tests for smtp.
Andrey Zelenkov <zelenkov@nginx.com>
parents: 1147
diff changeset
127 starttls on;
44620036fedf Tests: added starttls tests for smtp.
Andrey Zelenkov <zelenkov@nginx.com>
parents: 1147
diff changeset
128 }
44620036fedf Tests: added starttls tests for smtp.
Andrey Zelenkov <zelenkov@nginx.com>
parents: 1147
diff changeset
129
44620036fedf Tests: added starttls tests for smtp.
Andrey Zelenkov <zelenkov@nginx.com>
parents: 1147
diff changeset
130 server {
44620036fedf Tests: added starttls tests for smtp.
Andrey Zelenkov <zelenkov@nginx.com>
parents: 1147
diff changeset
131 listen 127.0.0.1:8154;
44620036fedf Tests: added starttls tests for smtp.
Andrey Zelenkov <zelenkov@nginx.com>
parents: 1147
diff changeset
132 protocol smtp;
44620036fedf Tests: added starttls tests for smtp.
Andrey Zelenkov <zelenkov@nginx.com>
parents: 1147
diff changeset
133
44620036fedf Tests: added starttls tests for smtp.
Andrey Zelenkov <zelenkov@nginx.com>
parents: 1147
diff changeset
134 starttls only;
44620036fedf Tests: added starttls tests for smtp.
Andrey Zelenkov <zelenkov@nginx.com>
parents: 1147
diff changeset
135 }
1142
baeebac35a2e Tests: basic mail ssl tests.
Andrey Zelenkov <zelenkov@nginx.com>
parents:
diff changeset
136 }
baeebac35a2e Tests: basic mail ssl tests.
Andrey Zelenkov <zelenkov@nginx.com>
parents:
diff changeset
137
baeebac35a2e Tests: basic mail ssl tests.
Andrey Zelenkov <zelenkov@nginx.com>
parents:
diff changeset
138 EOF
baeebac35a2e Tests: basic mail ssl tests.
Andrey Zelenkov <zelenkov@nginx.com>
parents:
diff changeset
139
baeebac35a2e Tests: basic mail ssl tests.
Andrey Zelenkov <zelenkov@nginx.com>
parents:
diff changeset
140 $t->write_file('openssl.conf', <<EOF);
baeebac35a2e Tests: basic mail ssl tests.
Andrey Zelenkov <zelenkov@nginx.com>
parents:
diff changeset
141 [ req ]
baeebac35a2e Tests: basic mail ssl tests.
Andrey Zelenkov <zelenkov@nginx.com>
parents:
diff changeset
142 default_bits = 1024
baeebac35a2e Tests: basic mail ssl tests.
Andrey Zelenkov <zelenkov@nginx.com>
parents:
diff changeset
143 encrypt_key = no
baeebac35a2e Tests: basic mail ssl tests.
Andrey Zelenkov <zelenkov@nginx.com>
parents:
diff changeset
144 distinguished_name = req_distinguished_name
baeebac35a2e Tests: basic mail ssl tests.
Andrey Zelenkov <zelenkov@nginx.com>
parents:
diff changeset
145 [ req_distinguished_name ]
baeebac35a2e Tests: basic mail ssl tests.
Andrey Zelenkov <zelenkov@nginx.com>
parents:
diff changeset
146 EOF
baeebac35a2e Tests: basic mail ssl tests.
Andrey Zelenkov <zelenkov@nginx.com>
parents:
diff changeset
147
baeebac35a2e Tests: basic mail ssl tests.
Andrey Zelenkov <zelenkov@nginx.com>
parents:
diff changeset
148 my $d = $t->testdir();
baeebac35a2e Tests: basic mail ssl tests.
Andrey Zelenkov <zelenkov@nginx.com>
parents:
diff changeset
149
baeebac35a2e Tests: basic mail ssl tests.
Andrey Zelenkov <zelenkov@nginx.com>
parents:
diff changeset
150 foreach my $name ('localhost', 'inherits') {
1147
796ed08cb215 Tests: simplified ssl_password_file tests in mail_ssl.t.
Andrey Zelenkov <zelenkov@nginx.com>
parents: 1145
diff changeset
151 system("openssl genrsa -out '$d/$name.key' -passout pass:localhost "
1142
baeebac35a2e Tests: basic mail ssl tests.
Andrey Zelenkov <zelenkov@nginx.com>
parents:
diff changeset
152 . "-aes128 1024 >>$d/openssl.out 2>&1") == 0
baeebac35a2e Tests: basic mail ssl tests.
Andrey Zelenkov <zelenkov@nginx.com>
parents:
diff changeset
153 or die "Can't create private key: $!\n";
baeebac35a2e Tests: basic mail ssl tests.
Andrey Zelenkov <zelenkov@nginx.com>
parents:
diff changeset
154 system('openssl req -x509 -new '
baeebac35a2e Tests: basic mail ssl tests.
Andrey Zelenkov <zelenkov@nginx.com>
parents:
diff changeset
155 . "-config '$d/openssl.conf' -subj '/CN=$name/' "
baeebac35a2e Tests: basic mail ssl tests.
Andrey Zelenkov <zelenkov@nginx.com>
parents:
diff changeset
156 . "-out '$d/$name.crt' "
1147
796ed08cb215 Tests: simplified ssl_password_file tests in mail_ssl.t.
Andrey Zelenkov <zelenkov@nginx.com>
parents: 1145
diff changeset
157 . "-key '$d/$name.key' -passin pass:localhost"
1142
baeebac35a2e Tests: basic mail ssl tests.
Andrey Zelenkov <zelenkov@nginx.com>
parents:
diff changeset
158 . ">>$d/openssl.out 2>&1") == 0
baeebac35a2e Tests: basic mail ssl tests.
Andrey Zelenkov <zelenkov@nginx.com>
parents:
diff changeset
159 or die "Can't create certificate for $name: $!\n";
baeebac35a2e Tests: basic mail ssl tests.
Andrey Zelenkov <zelenkov@nginx.com>
parents:
diff changeset
160 }
baeebac35a2e Tests: basic mail ssl tests.
Andrey Zelenkov <zelenkov@nginx.com>
parents:
diff changeset
161
baeebac35a2e Tests: basic mail ssl tests.
Andrey Zelenkov <zelenkov@nginx.com>
parents:
diff changeset
162 my $ctx = Net::SSLeay::CTX_new() or die("Failed to create SSL_CTX $!");
baeebac35a2e Tests: basic mail ssl tests.
Andrey Zelenkov <zelenkov@nginx.com>
parents:
diff changeset
163 $t->write_file('password', 'localhost');
1145
f193664e06d8 Tests: remove unused http block in mail_ssl.t.
Andrey Zelenkov <zelenkov@nginx.com>
parents: 1142
diff changeset
164 $t->run();
1142
baeebac35a2e Tests: basic mail ssl tests.
Andrey Zelenkov <zelenkov@nginx.com>
parents:
diff changeset
165
baeebac35a2e Tests: basic mail ssl tests.
Andrey Zelenkov <zelenkov@nginx.com>
parents:
diff changeset
166 ###############################################################################
baeebac35a2e Tests: basic mail ssl tests.
Andrey Zelenkov <zelenkov@nginx.com>
parents:
diff changeset
167
baeebac35a2e Tests: basic mail ssl tests.
Andrey Zelenkov <zelenkov@nginx.com>
parents:
diff changeset
168 # simple tests to ensure that nothing broke with ssl_password_file directive
baeebac35a2e Tests: basic mail ssl tests.
Andrey Zelenkov <zelenkov@nginx.com>
parents:
diff changeset
169
baeebac35a2e Tests: basic mail ssl tests.
Andrey Zelenkov <zelenkov@nginx.com>
parents:
diff changeset
170 my $s = Test::Nginx::IMAP->new();
baeebac35a2e Tests: basic mail ssl tests.
Andrey Zelenkov <zelenkov@nginx.com>
parents:
diff changeset
171 $s->ok('greeting');
baeebac35a2e Tests: basic mail ssl tests.
Andrey Zelenkov <zelenkov@nginx.com>
parents:
diff changeset
172
baeebac35a2e Tests: basic mail ssl tests.
Andrey Zelenkov <zelenkov@nginx.com>
parents:
diff changeset
173 $s->send('1 AUTHENTICATE LOGIN');
baeebac35a2e Tests: basic mail ssl tests.
Andrey Zelenkov <zelenkov@nginx.com>
parents:
diff changeset
174 $s->check(qr/\+ VXNlcm5hbWU6/, 'login');
baeebac35a2e Tests: basic mail ssl tests.
Andrey Zelenkov <zelenkov@nginx.com>
parents:
diff changeset
175
baeebac35a2e Tests: basic mail ssl tests.
Andrey Zelenkov <zelenkov@nginx.com>
parents:
diff changeset
176 # ssl_session_cache
baeebac35a2e Tests: basic mail ssl tests.
Andrey Zelenkov <zelenkov@nginx.com>
parents:
diff changeset
177
baeebac35a2e Tests: basic mail ssl tests.
Andrey Zelenkov <zelenkov@nginx.com>
parents:
diff changeset
178 my ($ssl, $ses);
baeebac35a2e Tests: basic mail ssl tests.
Andrey Zelenkov <zelenkov@nginx.com>
parents:
diff changeset
179
baeebac35a2e Tests: basic mail ssl tests.
Andrey Zelenkov <zelenkov@nginx.com>
parents:
diff changeset
180 ($s, $ssl) = get_ssl_socket(8145);
baeebac35a2e Tests: basic mail ssl tests.
Andrey Zelenkov <zelenkov@nginx.com>
parents:
diff changeset
181 $ses = Net::SSLeay::get_session($ssl);
baeebac35a2e Tests: basic mail ssl tests.
Andrey Zelenkov <zelenkov@nginx.com>
parents:
diff changeset
182
baeebac35a2e Tests: basic mail ssl tests.
Andrey Zelenkov <zelenkov@nginx.com>
parents:
diff changeset
183 ($s, $ssl) = get_ssl_socket(8145, $ses);
baeebac35a2e Tests: basic mail ssl tests.
Andrey Zelenkov <zelenkov@nginx.com>
parents:
diff changeset
184 is(Net::SSLeay::session_reused($ssl), 1, 'builtin session reused');
baeebac35a2e Tests: basic mail ssl tests.
Andrey Zelenkov <zelenkov@nginx.com>
parents:
diff changeset
185
baeebac35a2e Tests: basic mail ssl tests.
Andrey Zelenkov <zelenkov@nginx.com>
parents:
diff changeset
186 ($s, $ssl) = get_ssl_socket(8146);
baeebac35a2e Tests: basic mail ssl tests.
Andrey Zelenkov <zelenkov@nginx.com>
parents:
diff changeset
187 $ses = Net::SSLeay::get_session($ssl);
baeebac35a2e Tests: basic mail ssl tests.
Andrey Zelenkov <zelenkov@nginx.com>
parents:
diff changeset
188
baeebac35a2e Tests: basic mail ssl tests.
Andrey Zelenkov <zelenkov@nginx.com>
parents:
diff changeset
189 ($s, $ssl) = get_ssl_socket(8146, $ses);
baeebac35a2e Tests: basic mail ssl tests.
Andrey Zelenkov <zelenkov@nginx.com>
parents:
diff changeset
190 is(Net::SSLeay::session_reused($ssl), 0, 'session not reused');
baeebac35a2e Tests: basic mail ssl tests.
Andrey Zelenkov <zelenkov@nginx.com>
parents:
diff changeset
191
baeebac35a2e Tests: basic mail ssl tests.
Andrey Zelenkov <zelenkov@nginx.com>
parents:
diff changeset
192 ($s, $ssl) = get_ssl_socket(8147);
baeebac35a2e Tests: basic mail ssl tests.
Andrey Zelenkov <zelenkov@nginx.com>
parents:
diff changeset
193 $ses = Net::SSLeay::get_session($ssl);
baeebac35a2e Tests: basic mail ssl tests.
Andrey Zelenkov <zelenkov@nginx.com>
parents:
diff changeset
194
baeebac35a2e Tests: basic mail ssl tests.
Andrey Zelenkov <zelenkov@nginx.com>
parents:
diff changeset
195 ($s, $ssl) = get_ssl_socket(8147, $ses);
baeebac35a2e Tests: basic mail ssl tests.
Andrey Zelenkov <zelenkov@nginx.com>
parents:
diff changeset
196 is(Net::SSLeay::session_reused($ssl), 1, 'builtin size session reused');
baeebac35a2e Tests: basic mail ssl tests.
Andrey Zelenkov <zelenkov@nginx.com>
parents:
diff changeset
197
baeebac35a2e Tests: basic mail ssl tests.
Andrey Zelenkov <zelenkov@nginx.com>
parents:
diff changeset
198 ($s, $ssl) = get_ssl_socket(8148);
baeebac35a2e Tests: basic mail ssl tests.
Andrey Zelenkov <zelenkov@nginx.com>
parents:
diff changeset
199 $ses = Net::SSLeay::get_session($ssl);
baeebac35a2e Tests: basic mail ssl tests.
Andrey Zelenkov <zelenkov@nginx.com>
parents:
diff changeset
200
baeebac35a2e Tests: basic mail ssl tests.
Andrey Zelenkov <zelenkov@nginx.com>
parents:
diff changeset
201 ($s, $ssl) = get_ssl_socket(8148, $ses);
baeebac35a2e Tests: basic mail ssl tests.
Andrey Zelenkov <zelenkov@nginx.com>
parents:
diff changeset
202 is(Net::SSLeay::session_reused($ssl), 1, 'shared session reused');
baeebac35a2e Tests: basic mail ssl tests.
Andrey Zelenkov <zelenkov@nginx.com>
parents:
diff changeset
203
baeebac35a2e Tests: basic mail ssl tests.
Andrey Zelenkov <zelenkov@nginx.com>
parents:
diff changeset
204 # ssl_certificate inheritance
baeebac35a2e Tests: basic mail ssl tests.
Andrey Zelenkov <zelenkov@nginx.com>
parents:
diff changeset
205
baeebac35a2e Tests: basic mail ssl tests.
Andrey Zelenkov <zelenkov@nginx.com>
parents:
diff changeset
206 ($s, $ssl) = get_ssl_socket(8145);
baeebac35a2e Tests: basic mail ssl tests.
Andrey Zelenkov <zelenkov@nginx.com>
parents:
diff changeset
207 like(Net::SSLeay::dump_peer_certificate($ssl), qr/CN=localhost/, 'CN');
baeebac35a2e Tests: basic mail ssl tests.
Andrey Zelenkov <zelenkov@nginx.com>
parents:
diff changeset
208
baeebac35a2e Tests: basic mail ssl tests.
Andrey Zelenkov <zelenkov@nginx.com>
parents:
diff changeset
209 ($s, $ssl) = get_ssl_socket(8148);
baeebac35a2e Tests: basic mail ssl tests.
Andrey Zelenkov <zelenkov@nginx.com>
parents:
diff changeset
210 like(Net::SSLeay::dump_peer_certificate($ssl), qr/CN=inherits/, 'CN inner');
baeebac35a2e Tests: basic mail ssl tests.
Andrey Zelenkov <zelenkov@nginx.com>
parents:
diff changeset
211
baeebac35a2e Tests: basic mail ssl tests.
Andrey Zelenkov <zelenkov@nginx.com>
parents:
diff changeset
212 # starttls imap
baeebac35a2e Tests: basic mail ssl tests.
Andrey Zelenkov <zelenkov@nginx.com>
parents:
diff changeset
213
baeebac35a2e Tests: basic mail ssl tests.
Andrey Zelenkov <zelenkov@nginx.com>
parents:
diff changeset
214 $s = Test::Nginx::IMAP->new(PeerAddr => '127.0.0.1:' . port(8149));
baeebac35a2e Tests: basic mail ssl tests.
Andrey Zelenkov <zelenkov@nginx.com>
parents:
diff changeset
215 $s->read();
baeebac35a2e Tests: basic mail ssl tests.
Andrey Zelenkov <zelenkov@nginx.com>
parents:
diff changeset
216
baeebac35a2e Tests: basic mail ssl tests.
Andrey Zelenkov <zelenkov@nginx.com>
parents:
diff changeset
217 $s->send('1 AUTHENTICATE LOGIN');
baeebac35a2e Tests: basic mail ssl tests.
Andrey Zelenkov <zelenkov@nginx.com>
parents:
diff changeset
218 $s->check(qr/\+ VXNlcm5hbWU6/, 'imap auth before startls on');
baeebac35a2e Tests: basic mail ssl tests.
Andrey Zelenkov <zelenkov@nginx.com>
parents:
diff changeset
219
baeebac35a2e Tests: basic mail ssl tests.
Andrey Zelenkov <zelenkov@nginx.com>
parents:
diff changeset
220 $s = Test::Nginx::IMAP->new(PeerAddr => '127.0.0.1:' . port(8149));
baeebac35a2e Tests: basic mail ssl tests.
Andrey Zelenkov <zelenkov@nginx.com>
parents:
diff changeset
221 $s->read();
baeebac35a2e Tests: basic mail ssl tests.
Andrey Zelenkov <zelenkov@nginx.com>
parents:
diff changeset
222
baeebac35a2e Tests: basic mail ssl tests.
Andrey Zelenkov <zelenkov@nginx.com>
parents:
diff changeset
223 $s->send('1 STARTTLS');
baeebac35a2e Tests: basic mail ssl tests.
Andrey Zelenkov <zelenkov@nginx.com>
parents:
diff changeset
224 $s->ok('imap starttls on');
baeebac35a2e Tests: basic mail ssl tests.
Andrey Zelenkov <zelenkov@nginx.com>
parents:
diff changeset
225
baeebac35a2e Tests: basic mail ssl tests.
Andrey Zelenkov <zelenkov@nginx.com>
parents:
diff changeset
226 $s = Test::Nginx::IMAP->new(PeerAddr => '127.0.0.1:' . port(8150));
baeebac35a2e Tests: basic mail ssl tests.
Andrey Zelenkov <zelenkov@nginx.com>
parents:
diff changeset
227 $s->read();
baeebac35a2e Tests: basic mail ssl tests.
Andrey Zelenkov <zelenkov@nginx.com>
parents:
diff changeset
228
baeebac35a2e Tests: basic mail ssl tests.
Andrey Zelenkov <zelenkov@nginx.com>
parents:
diff changeset
229 $s->send('1 AUTHENTICATE LOGIN');
baeebac35a2e Tests: basic mail ssl tests.
Andrey Zelenkov <zelenkov@nginx.com>
parents:
diff changeset
230 $s->check(qr/^\S+ BAD/, 'imap auth before startls only');
baeebac35a2e Tests: basic mail ssl tests.
Andrey Zelenkov <zelenkov@nginx.com>
parents:
diff changeset
231
baeebac35a2e Tests: basic mail ssl tests.
Andrey Zelenkov <zelenkov@nginx.com>
parents:
diff changeset
232 $s = Test::Nginx::IMAP->new(PeerAddr => '127.0.0.1:' . port(8150));
baeebac35a2e Tests: basic mail ssl tests.
Andrey Zelenkov <zelenkov@nginx.com>
parents:
diff changeset
233 $s->read();
baeebac35a2e Tests: basic mail ssl tests.
Andrey Zelenkov <zelenkov@nginx.com>
parents:
diff changeset
234
baeebac35a2e Tests: basic mail ssl tests.
Andrey Zelenkov <zelenkov@nginx.com>
parents:
diff changeset
235 $s->send('1 STARTTLS');
baeebac35a2e Tests: basic mail ssl tests.
Andrey Zelenkov <zelenkov@nginx.com>
parents:
diff changeset
236 $s->ok('imap starttls only');
baeebac35a2e Tests: basic mail ssl tests.
Andrey Zelenkov <zelenkov@nginx.com>
parents:
diff changeset
237
baeebac35a2e Tests: basic mail ssl tests.
Andrey Zelenkov <zelenkov@nginx.com>
parents:
diff changeset
238 # starttls pop3
baeebac35a2e Tests: basic mail ssl tests.
Andrey Zelenkov <zelenkov@nginx.com>
parents:
diff changeset
239
baeebac35a2e Tests: basic mail ssl tests.
Andrey Zelenkov <zelenkov@nginx.com>
parents:
diff changeset
240 $s = Test::Nginx::POP3->new(PeerAddr => '127.0.0.1:' . port(8151));
baeebac35a2e Tests: basic mail ssl tests.
Andrey Zelenkov <zelenkov@nginx.com>
parents:
diff changeset
241 $s->read();
baeebac35a2e Tests: basic mail ssl tests.
Andrey Zelenkov <zelenkov@nginx.com>
parents:
diff changeset
242
baeebac35a2e Tests: basic mail ssl tests.
Andrey Zelenkov <zelenkov@nginx.com>
parents:
diff changeset
243 $s->send('AUTH LOGIN');
baeebac35a2e Tests: basic mail ssl tests.
Andrey Zelenkov <zelenkov@nginx.com>
parents:
diff changeset
244 $s->check(qr/\+ VXNlcm5hbWU6/, 'pop3 auth before startls on');
baeebac35a2e Tests: basic mail ssl tests.
Andrey Zelenkov <zelenkov@nginx.com>
parents:
diff changeset
245
baeebac35a2e Tests: basic mail ssl tests.
Andrey Zelenkov <zelenkov@nginx.com>
parents:
diff changeset
246 $s = Test::Nginx::POP3->new(PeerAddr => '127.0.0.1:' . port(8151));
baeebac35a2e Tests: basic mail ssl tests.
Andrey Zelenkov <zelenkov@nginx.com>
parents:
diff changeset
247 $s->read();
baeebac35a2e Tests: basic mail ssl tests.
Andrey Zelenkov <zelenkov@nginx.com>
parents:
diff changeset
248
baeebac35a2e Tests: basic mail ssl tests.
Andrey Zelenkov <zelenkov@nginx.com>
parents:
diff changeset
249 $s->send('STLS');
baeebac35a2e Tests: basic mail ssl tests.
Andrey Zelenkov <zelenkov@nginx.com>
parents:
diff changeset
250 $s->ok('pop3 starttls on');
baeebac35a2e Tests: basic mail ssl tests.
Andrey Zelenkov <zelenkov@nginx.com>
parents:
diff changeset
251
baeebac35a2e Tests: basic mail ssl tests.
Andrey Zelenkov <zelenkov@nginx.com>
parents:
diff changeset
252 $s = Test::Nginx::POP3->new(PeerAddr => '127.0.0.1:' . port(8152));
baeebac35a2e Tests: basic mail ssl tests.
Andrey Zelenkov <zelenkov@nginx.com>
parents:
diff changeset
253 $s->read();
baeebac35a2e Tests: basic mail ssl tests.
Andrey Zelenkov <zelenkov@nginx.com>
parents:
diff changeset
254
baeebac35a2e Tests: basic mail ssl tests.
Andrey Zelenkov <zelenkov@nginx.com>
parents:
diff changeset
255 $s->send('AUTH LOGIN');
baeebac35a2e Tests: basic mail ssl tests.
Andrey Zelenkov <zelenkov@nginx.com>
parents:
diff changeset
256 $s->check(qr/^-ERR/, 'pop3 auth before startls only');
baeebac35a2e Tests: basic mail ssl tests.
Andrey Zelenkov <zelenkov@nginx.com>
parents:
diff changeset
257
baeebac35a2e Tests: basic mail ssl tests.
Andrey Zelenkov <zelenkov@nginx.com>
parents:
diff changeset
258 $s = Test::Nginx::POP3->new(PeerAddr => '127.0.0.1:' . port(8152));
baeebac35a2e Tests: basic mail ssl tests.
Andrey Zelenkov <zelenkov@nginx.com>
parents:
diff changeset
259 $s->read();
baeebac35a2e Tests: basic mail ssl tests.
Andrey Zelenkov <zelenkov@nginx.com>
parents:
diff changeset
260
baeebac35a2e Tests: basic mail ssl tests.
Andrey Zelenkov <zelenkov@nginx.com>
parents:
diff changeset
261 $s->send('STLS');
baeebac35a2e Tests: basic mail ssl tests.
Andrey Zelenkov <zelenkov@nginx.com>
parents:
diff changeset
262 $s->ok('pop3 starttls only');
baeebac35a2e Tests: basic mail ssl tests.
Andrey Zelenkov <zelenkov@nginx.com>
parents:
diff changeset
263
1148
44620036fedf Tests: added starttls tests for smtp.
Andrey Zelenkov <zelenkov@nginx.com>
parents: 1147
diff changeset
264 # starttls smtp
44620036fedf Tests: added starttls tests for smtp.
Andrey Zelenkov <zelenkov@nginx.com>
parents: 1147
diff changeset
265
44620036fedf Tests: added starttls tests for smtp.
Andrey Zelenkov <zelenkov@nginx.com>
parents: 1147
diff changeset
266 $s = Test::Nginx::SMTP->new(PeerAddr => '127.0.0.1:' . port(8153));
44620036fedf Tests: added starttls tests for smtp.
Andrey Zelenkov <zelenkov@nginx.com>
parents: 1147
diff changeset
267 $s->read();
44620036fedf Tests: added starttls tests for smtp.
Andrey Zelenkov <zelenkov@nginx.com>
parents: 1147
diff changeset
268
44620036fedf Tests: added starttls tests for smtp.
Andrey Zelenkov <zelenkov@nginx.com>
parents: 1147
diff changeset
269 $s->send('AUTH LOGIN');
44620036fedf Tests: added starttls tests for smtp.
Andrey Zelenkov <zelenkov@nginx.com>
parents: 1147
diff changeset
270 $s->check(qr/^334 VXNlcm5hbWU6/, 'smtp auth before startls on');
44620036fedf Tests: added starttls tests for smtp.
Andrey Zelenkov <zelenkov@nginx.com>
parents: 1147
diff changeset
271
44620036fedf Tests: added starttls tests for smtp.
Andrey Zelenkov <zelenkov@nginx.com>
parents: 1147
diff changeset
272 $s = Test::Nginx::SMTP->new(PeerAddr => '127.0.0.1:' . port(8153));
44620036fedf Tests: added starttls tests for smtp.
Andrey Zelenkov <zelenkov@nginx.com>
parents: 1147
diff changeset
273 $s->read();
44620036fedf Tests: added starttls tests for smtp.
Andrey Zelenkov <zelenkov@nginx.com>
parents: 1147
diff changeset
274
44620036fedf Tests: added starttls tests for smtp.
Andrey Zelenkov <zelenkov@nginx.com>
parents: 1147
diff changeset
275 $s->send('STARTTLS');
44620036fedf Tests: added starttls tests for smtp.
Andrey Zelenkov <zelenkov@nginx.com>
parents: 1147
diff changeset
276 $s->ok('smtp starttls on');
44620036fedf Tests: added starttls tests for smtp.
Andrey Zelenkov <zelenkov@nginx.com>
parents: 1147
diff changeset
277
44620036fedf Tests: added starttls tests for smtp.
Andrey Zelenkov <zelenkov@nginx.com>
parents: 1147
diff changeset
278 $s = Test::Nginx::SMTP->new(PeerAddr => '127.0.0.1:' . port(8154));
44620036fedf Tests: added starttls tests for smtp.
Andrey Zelenkov <zelenkov@nginx.com>
parents: 1147
diff changeset
279 $s->read();
44620036fedf Tests: added starttls tests for smtp.
Andrey Zelenkov <zelenkov@nginx.com>
parents: 1147
diff changeset
280
44620036fedf Tests: added starttls tests for smtp.
Andrey Zelenkov <zelenkov@nginx.com>
parents: 1147
diff changeset
281 $s->send('AUTH LOGIN');
44620036fedf Tests: added starttls tests for smtp.
Andrey Zelenkov <zelenkov@nginx.com>
parents: 1147
diff changeset
282 $s->check(qr/^5.. /, 'smtp auth before startls only');
44620036fedf Tests: added starttls tests for smtp.
Andrey Zelenkov <zelenkov@nginx.com>
parents: 1147
diff changeset
283
44620036fedf Tests: added starttls tests for smtp.
Andrey Zelenkov <zelenkov@nginx.com>
parents: 1147
diff changeset
284 $s = Test::Nginx::SMTP->new(PeerAddr => '127.0.0.1:' . port(8154));
44620036fedf Tests: added starttls tests for smtp.
Andrey Zelenkov <zelenkov@nginx.com>
parents: 1147
diff changeset
285 $s->read();
44620036fedf Tests: added starttls tests for smtp.
Andrey Zelenkov <zelenkov@nginx.com>
parents: 1147
diff changeset
286
44620036fedf Tests: added starttls tests for smtp.
Andrey Zelenkov <zelenkov@nginx.com>
parents: 1147
diff changeset
287 $s->send('STARTTLS');
44620036fedf Tests: added starttls tests for smtp.
Andrey Zelenkov <zelenkov@nginx.com>
parents: 1147
diff changeset
288 $s->ok('smtp starttls only');
44620036fedf Tests: added starttls tests for smtp.
Andrey Zelenkov <zelenkov@nginx.com>
parents: 1147
diff changeset
289
1142
baeebac35a2e Tests: basic mail ssl tests.
Andrey Zelenkov <zelenkov@nginx.com>
parents:
diff changeset
290 ###############################################################################
baeebac35a2e Tests: basic mail ssl tests.
Andrey Zelenkov <zelenkov@nginx.com>
parents:
diff changeset
291
baeebac35a2e Tests: basic mail ssl tests.
Andrey Zelenkov <zelenkov@nginx.com>
parents:
diff changeset
292 sub get_ssl_socket {
baeebac35a2e Tests: basic mail ssl tests.
Andrey Zelenkov <zelenkov@nginx.com>
parents:
diff changeset
293 my ($port, $ses) = @_;
baeebac35a2e Tests: basic mail ssl tests.
Andrey Zelenkov <zelenkov@nginx.com>
parents:
diff changeset
294 my $s;
baeebac35a2e Tests: basic mail ssl tests.
Andrey Zelenkov <zelenkov@nginx.com>
parents:
diff changeset
295
baeebac35a2e Tests: basic mail ssl tests.
Andrey Zelenkov <zelenkov@nginx.com>
parents:
diff changeset
296 my $dest_ip = inet_aton('127.0.0.1');
baeebac35a2e Tests: basic mail ssl tests.
Andrey Zelenkov <zelenkov@nginx.com>
parents:
diff changeset
297 my $dest_serv_params = sockaddr_in(port($port), $dest_ip);
baeebac35a2e Tests: basic mail ssl tests.
Andrey Zelenkov <zelenkov@nginx.com>
parents:
diff changeset
298
baeebac35a2e Tests: basic mail ssl tests.
Andrey Zelenkov <zelenkov@nginx.com>
parents:
diff changeset
299 socket($s, &AF_INET, &SOCK_STREAM, 0) or die "socket: $!";
baeebac35a2e Tests: basic mail ssl tests.
Andrey Zelenkov <zelenkov@nginx.com>
parents:
diff changeset
300 connect($s, $dest_serv_params) or die "connect: $!";
baeebac35a2e Tests: basic mail ssl tests.
Andrey Zelenkov <zelenkov@nginx.com>
parents:
diff changeset
301
baeebac35a2e Tests: basic mail ssl tests.
Andrey Zelenkov <zelenkov@nginx.com>
parents:
diff changeset
302 my $ssl = Net::SSLeay::new($ctx) or die("Failed to create SSL $!");
baeebac35a2e Tests: basic mail ssl tests.
Andrey Zelenkov <zelenkov@nginx.com>
parents:
diff changeset
303 Net::SSLeay::set_session($ssl, $ses) if defined $ses;
baeebac35a2e Tests: basic mail ssl tests.
Andrey Zelenkov <zelenkov@nginx.com>
parents:
diff changeset
304 Net::SSLeay::set_fd($ssl, fileno($s));
baeebac35a2e Tests: basic mail ssl tests.
Andrey Zelenkov <zelenkov@nginx.com>
parents:
diff changeset
305 Net::SSLeay::connect($ssl) or die("ssl connect");
baeebac35a2e Tests: basic mail ssl tests.
Andrey Zelenkov <zelenkov@nginx.com>
parents:
diff changeset
306 return ($s, $ssl);
baeebac35a2e Tests: basic mail ssl tests.
Andrey Zelenkov <zelenkov@nginx.com>
parents:
diff changeset
307 }
baeebac35a2e Tests: basic mail ssl tests.
Andrey Zelenkov <zelenkov@nginx.com>
parents:
diff changeset
308
baeebac35a2e Tests: basic mail ssl tests.
Andrey Zelenkov <zelenkov@nginx.com>
parents:
diff changeset
309 ###############################################################################