diff options
-rw-r--r-- | eventlet/greenio/base.py | 2 | ||||
-rw-r--r-- | tests/socket_test.py | 8 |
2 files changed, 10 insertions, 0 deletions
diff --git a/eventlet/greenio/base.py b/eventlet/greenio/base.py index ac59339..2eed869 100644 --- a/eventlet/greenio/base.py +++ b/eventlet/greenio/base.py @@ -279,6 +279,7 @@ class GreenSocket(object): return get_errno(ex) except IOClosed: return errno.EBADFD + return 0 else: end = time.time() + self.gettimeout() timeout_exc = socket.timeout(errno.EAGAIN) @@ -295,6 +296,7 @@ class GreenSocket(object): return get_errno(ex) except IOClosed: return errno.EBADFD + return 0 def dup(self, *args, **kw): sock = self.fd.dup(*args, **kw) diff --git a/tests/socket_test.py b/tests/socket_test.py index 740c2c3..181f9be 100644 --- a/tests/socket_test.py +++ b/tests/socket_test.py @@ -99,3 +99,11 @@ def test_error_is_timeout(): tests.check_is_timeout(e) else: assert False, 'No timeout, socket.error was not raised' + + +def test_connect_ex_success(): + # https://github.com/eventlet/eventlet/issues/696 + server = eventlet.listen(("127.0.0.1", 0)) + client = socket.socket() + result = client.connect_ex(server.getsockname()) + assert result == 0 |