Antoine Pitrou added the comment: Better than trying to detect IPv6 compatibility beforehand would probably to recognize the error and simply ignore it.
Note: errno 99 is EADDRNOTAVAIL. Something like this could work (untested): diff --git a/Lib/asyncio/base_events.py b/Lib/asyncio/base_events.py index 33b8f48..413161a 100644 --- a/Lib/asyncio/base_events.py +++ b/Lib/asyncio/base_events.py @@ -1038,6 +1038,11 @@ class BaseEventLoop(events.AbstractEventLoop): try: sock.bind(sa) except OSError as err: + if err.errno == errno.EADDRNOTAVAIL: + # See bpo-30945 + sockets.pop() + sock.close() + continue raise OSError(err.errno, 'error while attempting ' 'to bind on address %r: %s' % (sa, err.strerror.lower())) from None ---------- nosy: +pitrou versions: +Python 3.7 -Python 3.4 _______________________________________ Python tracker <rep...@bugs.python.org> <http://bugs.python.org/issue30945> _______________________________________ _______________________________________________ Python-bugs-list mailing list Unsubscribe: https://mail.python.org/mailman/options/python-bugs-list/archive%40mail-archive.com