summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorKashirin Alex <kashirin.alex@gmail.com>2018-08-26 16:47:29 +0500
committerSergey Shepelev <temotor@gmail.com>2018-08-26 21:48:44 +0500
commitb9ff8e53c2b5a61e4dd28aaaebaa4c73fef246cb (patch)
treebf01bb8a1494d4c2e77e2226a31bec3cba4d8530
parent96fccf3dd88fb60368c5d1ab49d8b9eb85e99502 (diff)
downloadeventlet-ssl-connect-monotonic-time.tar.gz
ssl: connect used non-monotonic time.time() for timeoutssl-connect-monotonic-time
Origin: https://github.com/eventlet/eventlet/pull/517 Related: https://github.com/eventlet/eventlet/pull/388 https://github.com/eventlet/eventlet/pull/303 https://github.com/eventlet/eventlet/issues/270 https://github.com/eventlet/eventlet/issues/132
-rw-r--r--eventlet/green/ssl.py10
1 files changed, 5 insertions, 5 deletions
diff --git a/eventlet/green/ssl.py b/eventlet/green/ssl.py
index 53ee9a3..577afba 100644
--- a/eventlet/green/ssl.py
+++ b/eventlet/green/ssl.py
@@ -6,9 +6,8 @@ slurp_properties(__ssl, globals(), srckeys=dir(__ssl))
import errno
import functools
import sys
-import time
-from eventlet import greenio
+from eventlet import greenio, hubs
from eventlet.greenio import (
set_nonblocking, GreenSocket, CONNECT_ERR, CONNECT_SUCCESS,
)
@@ -264,6 +263,7 @@ class GreenSSLSocket(_original_sslsocket):
if self.act_non_blocking:
return real_connect(self, addr)
else:
+ clock = hubs.get_hub().clock
# *NOTE: gross, copied code from greenio because it's not factored
# well enough to reuse
if self.gettimeout() is None:
@@ -278,7 +278,7 @@ class GreenSSLSocket(_original_sslsocket):
else:
raise
else:
- end = time.time() + self.gettimeout()
+ end = clock() + self.gettimeout()
while True:
try:
real_connect(self, addr)
@@ -286,12 +286,12 @@ class GreenSSLSocket(_original_sslsocket):
if get_errno(exc) in CONNECT_ERR:
trampoline(
self, write=True,
- timeout=end - time.time(), timeout_exc=timeout_exc('timed out'))
+ timeout=end - clock(), timeout_exc=timeout_exc('timed out'))
elif get_errno(exc) in CONNECT_SUCCESS:
return
else:
raise
- if time.time() >= end:
+ if clock() >= end:
raise timeout_exc('timed out')
def connect(self, addr):