From e479a78b7c059e40423ac5034269af8d96196dc8 Mon Sep 17 00:00:00 2001 From: Lidi Zheng Date: Mon, 13 Jan 2020 09:58:08 -0800 Subject: [PATCH] Apply REUSEADDR and REUSEPORT at the same time --- .../tests/unit/framework/common/__init__.py | 10 ++++++---- 1 file changed, 6 insertions(+), 4 deletions(-) diff --git a/src/python/grpcio_tests/tests/unit/framework/common/__init__.py b/src/python/grpcio_tests/tests/unit/framework/common/__init__.py index 4153812391e..01db6e755d5 100644 --- a/src/python/grpcio_tests/tests/unit/framework/common/__init__.py +++ b/src/python/grpcio_tests/tests/unit/framework/common/__init__.py @@ -17,14 +17,16 @@ import os import socket import errno -_DEFAULT_SOCK_OPTION = socket.SO_REUSEADDR if os.name == 'nt' else socket.SO_REUSEPORT -_UNRECOVERABLE_ERRNOS = (errno.EADDRINUSE,) +_DEFAULT_SOCK_OPTIONS = (socket.SO_REUSEADDR, + socket.SO_REUSEPORT) if os.name != 'nt' else ( + socket.SO_REUSEADDR,) +_UNRECOVERABLE_ERRNOS = (errno.EADDRINUSE, errno.ENOSR) def get_socket(bind_address='localhost', port=0, listen=True, - sock_options=(_DEFAULT_SOCK_OPTION,)): + sock_options=_DEFAULT_SOCK_OPTIONS): """Opens a socket. Useful for reserving a port for a system-under-test. @@ -69,7 +71,7 @@ def get_socket(bind_address='localhost', def bound_socket(bind_address='localhost', port=0, listen=True, - sock_options=(_DEFAULT_SOCK_OPTION,)): + sock_options=_DEFAULT_SOCK_OPTIONS): """Opens a socket bound to an arbitrary port. Useful for reserving a port for a system-under-test.