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

Reply via email to