Gus Goulart <augu...@goulart.me> added the comment:

This error seems to come from base_events.py, lines 142-145, and since it's an 
OS specific limitation, I can't see Sebastien's suggestion as a feasible 
solution.
Maybe we could come up with something along the lines of the following patch. 
What do you think about it?

diff --git a/Lib/asyncio/base_events.py b/Lib/asyncio/base_events.py
index 3726c556d4..15ee4d9d1b 100644
--- a/Lib/asyncio/base_events.py
+++ b/Lib/asyncio/base_events.py
@@ -142,6 +142,9 @@ def _ipaddr_info(host, port, family, type, proto):
     if '%' in host:
         # Linux's inet_pton doesn't accept an IPv6 zone index after host,
         # like '::1%lo0'.
+        if sys.platform.startswith('linux'):
+            return OSError("Linux's inet_pton doesn't accept an IPv6 "
+                           "zone index after host")
         return None
 
     for af in afs:
diff --git a/Lib/test/test_asyncio/test_base_events.py 
b/Lib/test/test_asyncio/test_base_events.py
index 6d544d1eda..1b944ff89e 100644
--- a/Lib/test/test_asyncio/test_base_events.py
+++ b/Lib/test/test_asyncio/test_base_events.py
@@ -109,6 +109,9 @@ class BaseEventTests(test_utils.TestCase):
         self.assertIsNone(
             base_events._ipaddr_info('::3', 1, INET, STREAM, TCP))
 
+    @unittest.skipIf(sys.platform.startswith('linux'),
+        "Linux's inet_pton doesn't accept an IPv6 zone index after host")
+    def test_for(self):
         # IPv6 address with zone index.
         self.assertIsNone(
             base_events._ipaddr_info('::3%lo0', 1, INET6, STREAM, TCP))

----------
keywords: +patch
nosy: +gus.goulart, taleinat
Added file: https://bugs.python.org/file47913/issue33678.patch

_______________________________________
Python tracker <rep...@bugs.python.org>
<https://bugs.python.org/issue33678>
_______________________________________
_______________________________________________
Python-bugs-list mailing list
Unsubscribe: 
https://mail.python.org/mailman/options/python-bugs-list/archive%40mail-archive.com

Reply via email to