New submission from Paolo Lammens <lammenspa...@gmail.com>:
When a sequence containing just the empty string (e.g. `['']`) is passed as the `host` parameter of `loop.create_server`, the server seems not to bind to any network interface. Since, per the [documentation](https://docs.python.org/3/library/asyncio-eventloop.html#asyncio.loop.create_server) for `create_server`, the empty string means "bind to all interfaces", > If host is an empty string or None all interfaces are assumed and a list of > multiple > sockets will be returned (most likely one for IPv4 and another one for IPv6). and also > The host parameter can also be a sequence (e.g. list) of hosts to bind to. I would have expected a list containing the empty string to also work as expected, i.e. "binding to all hosts in the sequence", so binding to "" and thus to every interface. Example: Server script: ```python import asyncio async def server(): async def connection_callback(reader, writer: asyncio.StreamWriter): print(f"got connection from {writer.get_extra_info('peername')}") writer.close() await writer.wait_closed() s = await asyncio.start_server(connection_callback, host=[''], port=4567) async with s: print("starting server") await s.serve_forever() asyncio.run(server()) ``` Client script: ```python import asyncio async def client(): reader, writer = await asyncio.open_connection("127.0.0.1", 4567) print(f"connected to {writer.get_extra_info('peername')}") writer.close() await writer.wait_closed() asyncio.run(client()) ``` Expected: - Server: ``` starting server got connection from ('127.0.0.1', xxxxx) ``` - Client: ``` connected to ('127.0.0.1', xxxxx) ``` Actual: - Server: ``` starting server ``` - Client: a ConnectionError is raised (the host machine refused the connection) ---------- components: asyncio messages: 384109 nosy: asvetlov, plammens, yselivanov priority: normal severity: normal status: open title: Asyncio loop.create_server doesn't bind to any interface if host is a sequence with jus the empty string type: behavior versions: Python 3.9 _______________________________________ Python tracker <rep...@bugs.python.org> <https://bugs.python.org/issue42795> _______________________________________ _______________________________________________ Python-bugs-list mailing list Unsubscribe: https://mail.python.org/mailman/options/python-bugs-list/archive%40mail-archive.com