diff options
author | Sergey Shepelev <temotor@gmail.com> | 2021-03-25 10:12:43 +0300 |
---|---|---|
committer | Sergey Shepelev <temotor@gmail.com> | 2021-03-25 10:12:43 +0300 |
commit | 50441fc1563b85a275ea9937208909ade9907eb3 (patch) | |
tree | c7efebadc3bddc83da65d1360715cf496f8f9482 | |
parent | e16fcab6019f97db2639ce970dc0cf9546114921 (diff) | |
download | eventlet-50441fc1563b85a275ea9937208909ade9907eb3.tar.gz |
greenio: socket.connect_ex returned None instead of 0 on success696-connect_ex
https://github.com/eventlet/eventlet/issues/696
Co-authored-by: Skyline124 <gregoire2011dumas@gmail.com>
-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 |