summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorSergey Shepelev <temotor@gmail.com>2021-03-25 10:12:43 +0300
committerSergey Shepelev <temotor@gmail.com>2021-03-25 10:12:43 +0300
commit50441fc1563b85a275ea9937208909ade9907eb3 (patch)
treec7efebadc3bddc83da65d1360715cf496f8f9482
parente16fcab6019f97db2639ce970dc0cf9546114921 (diff)
downloadeventlet-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.py2
-rw-r--r--tests/socket_test.py8
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