blob: 70cc89417a8c984466ccbe5695cdf5a8a994bf92 (
plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
|
import socket
from datetime import timedelta
import pytest
from .conf import TlsTestConf
class TestTimeout:
@pytest.fixture(autouse=True, scope='class')
def _class_scope(self, env):
conf = TlsTestConf(env=env, extras={
'base': "RequestReadTimeout handshake=1",
})
conf.add_tls_vhosts(domains=[env.domain_a, env.domain_b])
conf.install()
assert env.apache_restart() == 0
@pytest.fixture(autouse=True, scope='function')
def _function_scope(self, env):
pass
def test_tls_09_timeout_handshake(self, env):
# in domain_b root, the StdEnvVars is switch on
s = socket.create_connection(('localhost', env.https_port))
s.send(b'1234')
s.settimeout(0.0)
try:
s.recv(1024)
assert False, "able to recv() on a TLS connection before we sent a hello"
except BlockingIOError:
pass
s.settimeout(3.0)
try:
while True:
buf = s.recv(1024)
if not buf:
break
print("recv() -> {0}".format(buf))
except (socket.timeout, BlockingIOError):
assert False, "socket not closed as handshake timeout should trigger"
s.close()
|