Apply REUSEADDR and REUSEPORT at the same time

pull/21607/head
Lidi Zheng 5 years ago
parent db5bd23e36
commit e479a78b7c
  1. 10
      src/python/grpcio_tests/tests/unit/framework/common/__init__.py

@ -17,14 +17,16 @@ import os
import socket import socket
import errno import errno
_DEFAULT_SOCK_OPTION = socket.SO_REUSEADDR if os.name == 'nt' else socket.SO_REUSEPORT _DEFAULT_SOCK_OPTIONS = (socket.SO_REUSEADDR,
_UNRECOVERABLE_ERRNOS = (errno.EADDRINUSE,) socket.SO_REUSEPORT) if os.name != 'nt' else (
socket.SO_REUSEADDR,)
_UNRECOVERABLE_ERRNOS = (errno.EADDRINUSE, errno.ENOSR)
def get_socket(bind_address='localhost', def get_socket(bind_address='localhost',
port=0, port=0,
listen=True, listen=True,
sock_options=(_DEFAULT_SOCK_OPTION,)): sock_options=_DEFAULT_SOCK_OPTIONS):
"""Opens a socket. """Opens a socket.
Useful for reserving a port for a system-under-test. 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', def bound_socket(bind_address='localhost',
port=0, port=0,
listen=True, listen=True,
sock_options=(_DEFAULT_SOCK_OPTION,)): sock_options=_DEFAULT_SOCK_OPTIONS):
"""Opens a socket bound to an arbitrary port. """Opens a socket bound to an arbitrary port.
Useful for reserving a port for a system-under-test. Useful for reserving a port for a system-under-test.

Loading…
Cancel
Save