Author: Matti Picus <matti.pi...@gmail.com> 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 pypy-commit@python.org https://mail.python.org/mailman/listinfo/pypy-commit