Author: Matti Picus <[email protected]>
Branch: py3.5
Changeset: r93938:c3f835dbfc65
Date: 2018-03-02 15:39 -0800
http://bitbucket.org/pypy/pypy/changeset/c3f835dbfc65/
Log: test, fix for vs 2010 and above having both EWOULDBLOCK and
WSAEWOULDBLOCK
diff --git a/pypy/module/_socket/test/test_sock_app.py
b/pypy/module/_socket/test/test_sock_app.py
--- a/pypy/module/_socket/test/test_sock_app.py
+++ b/pypy/module/_socket/test/test_sock_app.py
@@ -814,10 +814,10 @@
def test_recv_send_timeout(self):
from _socket import socket, timeout, SOL_SOCKET, SO_RCVBUF, SO_SNDBUF
cli = socket()
+ cli.settimeout(1.0)
cli.connect(self.serv.getsockname())
fileno, addr = self.serv._accept()
t = socket(fileno=fileno)
- cli.settimeout(1.0)
# test recv() timeout
t.send(b'*')
buf = cli.recv(100)
diff --git a/rpython/rlib/_rsocket_rffi.py b/rpython/rlib/_rsocket_rffi.py
--- a/rpython/rlib/_rsocket_rffi.py
+++ b/rpython/rlib/_rsocket_rffi.py
@@ -1080,6 +1080,10 @@
EINPROGRESS = cConfig.EINPROGRESS or cConfig.WSAEINPROGRESS
EWOULDBLOCK = cConfig.EWOULDBLOCK or cConfig.WSAEWOULDBLOCK
EAFNOSUPPORT = cConfig.EAFNOSUPPORT or cConfig.WSAEAFNOSUPPORT
+# vs 2010 and above define both the constansts
+WSAEINPROGRESS = cConfig.WSAEINPROGRESS or cConfig.EINPROGRESS
+WSAEWOULDBLOCK = cConfig.WSAEWOULDBLOCK or cConfig.EWOULDBLOCK
+WSAEAFNOSUPPORT = cConfig.WSAEAFNOSUPPORT or cConfig.EAFNOSUPPORT
EISCONN = cConfig.EISCONN or cConfig.WSAEISCONN
linux = cConfig.linux
diff --git a/rpython/rlib/rsocket.py b/rpython/rlib/rsocket.py
--- a/rpython/rlib/rsocket.py
+++ b/rpython/rlib/rsocket.py
@@ -707,7 +707,8 @@
address.unlock()
errno = _c.geterrno()
timeout = self.timeout
- if timeout > 0.0 and res < 0 and errno == _c.EWOULDBLOCK:
+ if (timeout > 0.0 and res < 0 and
+ errno in (_c.EWOULDBLOCK, _c.WSAEWOULDBLOCK)):
tv = rffi.make(_c.timeval)
rffi.setintfield(tv, 'c_tv_sec', int(timeout))
rffi.setintfield(tv, 'c_tv_usec',
@@ -733,7 +734,7 @@
return (self.getsockopt_int(_c.SOL_SOCKET,
_c.SO_ERROR), False)
elif n == 0:
- return (_c.EWOULDBLOCK, True)
+ return (_c.WSAEWOULDBLOCK, True)
else:
return (_c.geterrno(), False)
_______________________________________________
pypy-commit mailing list
[email protected]
https://mail.python.org/mailman/listinfo/pypy-commit