[pypy-commit] pypy py3.5: handle SO_REUSEPORT defined but not implemented

pjenvey pypy.commits at gmail.com
Sat Sep 16 15:24:06 EDT 2017


Author: Philip Jenvey <pjenvey at underboss.org>
Branch: py3.5
Changeset: r92411:8086c7a846ff
Date: 2017-09-16 12:19 -0700
http://bitbucket.org/pypy/pypy/changeset/8086c7a846ff/

Log:	handle SO_REUSEPORT defined but not implemented

	follows up 7ade09ee3ac5, see also https://bugs.python.org/issue26858

diff --git a/lib-python/3/test/test_asyncio/test_base_events.py b/lib-python/3/test/test_asyncio/test_base_events.py
--- a/lib-python/3/test/test_asyncio/test_base_events.py
+++ b/lib-python/3/test/test_asyncio/test_base_events.py
@@ -1588,9 +1588,15 @@
                 sock.getsockopt(
                     socket.SOL_SOCKET, socket.SO_REUSEADDR))
         if reuseport_supported:
-            self.assertFalse(
-                sock.getsockopt(
-                    socket.SOL_SOCKET, socket.SO_REUSEPORT))
+            try:
+                self.assertFalse(
+                    sock.getsockopt(
+                        socket.SOL_SOCKET, socket.SO_REUSEPORT))
+            except OSError:
+                # Python's socket module was compiled using modern headers
+                # thus defining SO_REUSEPORT but this process is running
+                # under an older kernel that does not support SO_REUSEPORT.
+                reuseport_supported = False
         self.assertFalse(
             sock.getsockopt(
                 socket.SOL_SOCKET, socket.SO_BROADCAST))


More information about the pypy-commit mailing list