Add [] for IPv6 address in log file

This commit is contained in:
YOKOTA Hiroshi 2022-10-23 14:42:41 +09:00
parent 080e61d128
commit 70ba016b1f

View File

@ -508,17 +508,29 @@ class ServerLoop:
self.setup_socket() self.setup_socket()
def serve(self): def serve(self):
def is_ipv6_addr(addr):
import socket
try:
socket.inet_pton(socket.AF_INET6, addr)
return True
except OSError:
return False
self.connection_map = {} self.connection_map = {}
if not self.socket_was_preactivated: if not self.socket_was_preactivated:
self.socket.listen(min(socket.SOMAXCONN, 128)) self.socket.listen(min(socket.SOMAXCONN, 128))
self.bound_address = ba = self.socket.getsockname() self.bound_address = ba = self.socket.getsockname()
if isinstance(ba, tuple): if isinstance(ba, tuple):
ba = ':'.join(map(str, ba)) if is_ipv6_addr(ba[0]):
addr = f'[{ba[0]}]'
else:
addr = f'{ba[0]}'
ba_str = f'{addr}:' + ':'.join(map(str, ba[1:]))
self.pool.start() self.pool.start()
with TemporaryDirectory(prefix='srv-') as tdir: with TemporaryDirectory(prefix='srv-') as tdir:
self.tdir = tdir self.tdir = tdir
if self.LISTENING_MSG: if self.LISTENING_MSG:
self.log(self.LISTENING_MSG, ba) self.log(self.LISTENING_MSG, ba_str)
self.plugin_pool.start() self.plugin_pool.start()
self.ready = True self.ready = True