You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
30 lines
867 B
30 lines
867 B
3 years ago
|
import platform
|
||
|
|
||
|
# Fix for issue reported in https://github.com/Pylons/waitress/issues/138,
|
||
|
# Python on Windows may not define IPPROTO_IPV6 in socket.
|
||
|
import socket
|
||
|
import sys
|
||
|
import warnings
|
||
|
|
||
|
# True if we are running on Windows
|
||
|
WIN = platform.system() == "Windows"
|
||
|
|
||
|
MAXINT = sys.maxsize
|
||
|
HAS_IPV6 = socket.has_ipv6
|
||
|
|
||
|
if hasattr(socket, "IPPROTO_IPV6") and hasattr(socket, "IPV6_V6ONLY"):
|
||
|
IPPROTO_IPV6 = socket.IPPROTO_IPV6
|
||
|
IPV6_V6ONLY = socket.IPV6_V6ONLY
|
||
|
else: # pragma: no cover
|
||
|
if WIN:
|
||
|
IPPROTO_IPV6 = 41
|
||
|
IPV6_V6ONLY = 27
|
||
|
else:
|
||
|
warnings.warn(
|
||
|
"OS does not support required IPv6 socket flags. This is requirement "
|
||
|
"for Waitress. Please open an issue at https://github.com/Pylons/waitress. "
|
||
|
"IPv6 support has been disabled.",
|
||
|
RuntimeWarning,
|
||
|
)
|
||
|
HAS_IPV6 = False
|