From 2b50c360e2d29a00a5a445ebe6f00256592230a4 Mon Sep 17 00:00:00 2001 From: Dominik Jain Date: Tue, 13 Jan 2026 01:29:05 +0100 Subject: [PATCH] Dashboard: Fix free port search not using the proper listen address #929 --- src/serena/dashboard.py | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/src/serena/dashboard.py b/src/serena/dashboard.py index 1d937b73..7d1f6268 100644 --- a/src/serena/dashboard.py +++ b/src/serena/dashboard.py @@ -562,12 +562,12 @@ class SerenaDashboardAPI: self._agent.remove_language(language) @staticmethod - def _find_first_free_port(start_port: int) -> int: + def _find_first_free_port(start_port: int, host: str) -> int: port = start_port while port <= 65535: try: with socket.socket(socket.AF_INET, socket.SOCK_STREAM) as sock: - sock.bind(("0.0.0.0", port)) + sock.bind((host, port)) return port except OSError: port += 1 @@ -587,7 +587,7 @@ class SerenaDashboardAPI: return port def run_in_thread(self, host: str) -> tuple[threading.Thread, int]: - port = self._find_first_free_port(0x5EDA) + port = self._find_first_free_port(0x5EDA, host) log.info("Starting dashboard (listen_address=%s, port=%d)", host, port) thread = threading.Thread(target=lambda: self.run(host=host, port=port), daemon=True) thread.start()