From 4751e96c691d09a91bc8ce9c7e914346e8a75f1b Mon Sep 17 00:00:00 2001 From: riley206-pnnl Date: Wed, 12 Nov 2025 15:50:24 -0800 Subject: [PATCH 1/3] Refine inbound parameters extraction to handle IPv6 socket tuples correctly --- src/protocol_proxy/ipc/asyncio.py | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) 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, *_, **__): From fbf255f466451c5d9fc2198f0c66cbac35f6f7d9 Mon Sep 17 00:00:00 2001 From: riley206-pnnl Date: Wed, 12 Nov 2025 16:32:56 -0800 Subject: [PATCH 2/3] Fix formatting in pyproject.toml and update version to 2.0.0rc2 --- pyproject.toml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) 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" From 148f2cb1fc267ce1b3e9b3940e16f8d88bc10805 Mon Sep 17 00:00:00 2001 From: riley206-pnnl Date: Wed, 12 Nov 2025 16:38:55 -0800 Subject: [PATCH 3/3] Refactor get_local_socket_params to handle IPv6 socket tuples correctly --- src/protocol_proxy/proxy/asyncio.py | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) 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)})")