summaryrefslogtreecommitdiffstats
path: root/Lib/asyncio/base_events.py
diff options
context:
space:
mode:
authorYury Selivanov <yury@magic.io>2016-11-21 22:47:27 (GMT)
committerYury Selivanov <yury@magic.io>2016-11-21 22:47:27 (GMT)
commitdab05847385c14fe76773d30f75f2bdc5b2ab7e3 (patch)
treeb5c02f68478bbe05f6fa0c764c54941daa151129 /Lib/asyncio/base_events.py
parent6c7fb55d4491327d07f7a33ce25498ac2e871818 (diff)
downloadcpython-dab05847385c14fe76773d30f75f2bdc5b2ab7e3.zip
cpython-dab05847385c14fe76773d30f75f2bdc5b2ab7e3.tar.gz
cpython-dab05847385c14fe76773d30f75f2bdc5b2ab7e3.tar.bz2
Issue #28652: Partially rollback previous changes
Allow AF_UNIX in create_server & create_connection
Diffstat (limited to 'Lib/asyncio/base_events.py')
-rw-r--r--Lib/asyncio/base_events.py22
1 files changed, 10 insertions, 12 deletions
diff --git a/Lib/asyncio/base_events.py b/Lib/asyncio/base_events.py
index aa78367..50153f8 100644
--- a/Lib/asyncio/base_events.py
+++ b/Lib/asyncio/base_events.py
@@ -98,14 +98,6 @@ def _is_dgram_socket(sock):
return (sock.type & socket.SOCK_DGRAM) == socket.SOCK_DGRAM
-def _is_ip_socket(sock):
- if sock.family == socket.AF_INET:
- return True
- if hasattr(socket, 'AF_INET6') and sock.family == socket.AF_INET6:
- return True
- return False
-
-
def _ipaddr_info(host, port, family, type, proto):
# Try to skip getaddrinfo if "host" is already an IP. Users might have
# handled name resolution in their own code and pass in resolved IPs.
@@ -795,9 +787,15 @@ class BaseEventLoop(events.AbstractEventLoop):
if sock is None:
raise ValueError(
'host and port was not specified and no sock specified')
- if not _is_stream_socket(sock) or not _is_ip_socket(sock):
+ if not _is_stream_socket(sock):
+ # We allow AF_INET, AF_INET6, AF_UNIX as long as they
+ # are SOCK_STREAM.
+ # We support passing AF_UNIX sockets even though we have
+ # a dedicated API for that: create_unix_connection.
+ # Disallowing AF_UNIX in this method, breaks backwards
+ # compatibility.
raise ValueError(
- 'A TCP Stream Socket was expected, got {!r}'.format(sock))
+ 'A Stream Socket was expected, got {!r}'.format(sock))
transport, protocol = yield from self._create_connection_transport(
sock, protocol_factory, ssl, server_hostname)
@@ -1054,9 +1052,9 @@ class BaseEventLoop(events.AbstractEventLoop):
else:
if sock is None:
raise ValueError('Neither host/port nor sock were specified')
- if not _is_stream_socket(sock) or not _is_ip_socket(sock):
+ if not _is_stream_socket(sock):
raise ValueError(
- 'A TCP Stream Socket was expected, got {!r}'.format(sock))
+ 'A Stream Socket was expected, got {!r}'.format(sock))
sockets = [sock]
server = Server(self, sockets)