Update the server address after started.

This commit is contained in:
Yuxin Wang 2018-10-06 23:12:24 -04:00
parent d2192ae232
commit 65e6fe1dab

View file

@ -43,7 +43,10 @@ class MessageServer:
async def start(self):
logger.info('Start listening on {}'.format(self._server_address))
# start server
await asyncio.start_server(self.__new_connection, *self._server_address, loop=self._loop)
server = await asyncio.start_server(self.__new_connection, *self._server_address, loop=self._loop)
# update server address, only get the first 2 elements because under IPv6 the return value contains 4 elements
# see https://docs.python.org/3.7/library/socket.html#socket-families
self._server_address = server.sockets[0].getsockname()[:2]
return True
async def stop(self):