From c1af8c383f4709a06318b87a1fdd6c149ab69f5f Mon Sep 17 00:00:00 2001 From: Open Date: Mon, 1 Jun 2026 17:37:58 +0800 Subject: [PATCH] =?UTF-8?q?=E4=BF=AE=E5=A4=8D=E5=BC=82=E5=B8=B8=20server.h?= =?UTF-8?q?ost=20=E7=B1=BB=E5=9E=8B=E5=AF=BC=E8=87=B4=E5=90=AF=E5=8A=A8?= =?UTF-8?q?=E5=A4=B1=E8=B4=A5=20(#91)?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- app.py | 2 ++ tests/test_vibe_status.py | 6 ++++++ 2 files changed, 8 insertions(+) diff --git a/app.py b/app.py index 953637f..f3b765c 100644 --- a/app.py +++ b/app.py @@ -271,6 +271,8 @@ def server_host_value(value: Any = None) -> str: """Return a non-empty server host string.""" if value is None: value = config_section("server").get("host", "0.0.0.0") + if not isinstance(value, str): + return "0.0.0.0" host = str(value or "").strip() return host if host else "0.0.0.0" diff --git a/tests/test_vibe_status.py b/tests/test_vibe_status.py index 8cdb0fd..f13d11e 100644 --- a/tests/test_vibe_status.py +++ b/tests/test_vibe_status.py @@ -461,6 +461,12 @@ def test_settings_config_from_params_normalizes_server_values(self): self.assertEqual(updated["server"]["port"], 65535) self.assertEqual(updated["server"]["host"], "0.0.0.0") + def test_server_host_value_rejects_non_string_values(self): + self.assertEqual(app.server_host_value(["127.0.0.1"]), "0.0.0.0") + self.assertEqual(app.server_host_value({"host": "127.0.0.1"}), "0.0.0.0") + self.assertEqual(app.server_host_value(127001), "0.0.0.0") + self.assertEqual(app.server_host_value(" 127.0.0.1 "), "127.0.0.1") + def test_parse_settings_form_keeps_blank_host_for_normalization(self): base_config = app.merge_configs(app.DEFAULT_CONFIG, { "server": {"port": 8080, "host": "127.0.0.1"},