diff --git a/pyproject.toml b/pyproject.toml index d58ffb3..099a91c 100644 --- a/pyproject.toml +++ b/pyproject.toml @@ -6,7 +6,7 @@ build-backend = "poetry.core.masonry.api" profile = "black" [tool.mypy] -python_version = 3.10 +python_version = "3.10" show_error_context = true pretty = true show_column_numbers = true @@ -29,7 +29,7 @@ ignore_missing_imports = true [tool.poetry] name = "protocol-proxy" -version = "2.0.0rc0" +version = "2.0.0rc2" description = "A system for launching and communicating with a proxy application for network communication which runs in a separate process.." authors = ["The VOLTTRON Development Team "] license = "Apache License 2.0" diff --git a/src/protocol_proxy/ipc/asyncio.py b/src/protocol_proxy/ipc/asyncio.py index 8945de7..8878cd4 100644 --- a/src/protocol_proxy/ipc/asyncio.py +++ b/src/protocol_proxy/ipc/asyncio.py @@ -91,7 +91,10 @@ async def _setup_inbound_server(self, socket_params: SocketParams = None): f' on any port in range: {self.min_port} - {self.max_port}.') break else: - self.inbound_params = SocketParams(*self.inbound_server.sockets[0].getsockname()) + # Only take first 2 elements (host, port) from getsockname() + # IPv6 sockets return 4-tuple (host, port, flowinfo, scope_id) + sockname = self.inbound_server.sockets[0].getsockname() + self.inbound_params = SocketParams(sockname[0], sockname[1]) break async def start(self, *_, **__): diff --git a/src/protocol_proxy/proxy/asyncio.py b/src/protocol_proxy/proxy/asyncio.py index ea15b27..f1ca147 100644 --- a/src/protocol_proxy/proxy/asyncio.py +++ b/src/protocol_proxy/proxy/asyncio.py @@ -22,7 +22,10 @@ def __init__(self, manager_address: str, manager_port: int, manager_id: UUID, ma token=manager_token) def get_local_socket_params(self) -> SocketParams: - return self.inbound_server.sockets[0].getsockname() + # Only take first 2 elements (host, port) from getsockname() + # IPv6 sockets return 4-tuple (host, port, flowinfo, scope_id) + sockname = self.inbound_server.sockets[0].getsockname() + return SocketParams(sockname[0], sockname[1]) async def send_registration(self, remote: AsyncioProtocolProxyPeer): _log.debug(f"[send_registration] Attempting to register with manager at: {remote} (type={type(remote)})")