From 8d796470185adf7ecd903d0acc7325204f5d7e46 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E7=A8=8B=E5=B9=BF?= Date: Mon, 13 Jul 2026 09:49:34 +0800 Subject: [PATCH] =?UTF-8?q?```=20fix(server):=20=E4=BF=AE=E5=A4=8DURL?= =?UTF-8?q?=E4=B8=BB=E6=9C=BA=E5=8C=B9=E9=85=8D=E9=80=BB=E8=BE=91=E5=B9=B6?= =?UTF-8?q?=E6=B7=BB=E5=8A=A0=E6=B5=8B=E8=AF=95=E7=94=A8=E4=BE=8B?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit 服务器管理器中的makeMatcher函数现在仅检查URL.Host而不是同时检查req.Host和req.URL.Host, 这解决了无效类型请求的处理问题。同时为strings模块添加了新的测试用例以验证前缀匹配功能, 包括对无效类型输入的测试场景。 ``` --- model/names_test.go | 6 ++++++ server/manager.go | 3 ++- 2 files changed, 8 insertions(+), 1 deletion(-) diff --git a/model/names_test.go b/model/names_test.go index 6b1521d..6d53fbf 100644 --- a/model/names_test.go +++ b/model/names_test.go @@ -69,6 +69,12 @@ func TestStrings_HasOrContainPrefix(t *testing.T) { value: "a", want: true, }, + { + name: "invalid type", + input: `"git.kingecg.top"`, + value: "www.o69iay0p.o69iay0p.wwwgit.kingecg.top/kingecg/rustlings/blame/commit/3bcea675ccac7c58cbdf5775c51ea8097fa57c8c/.idea/rustlings.iml", + want: false, + }, } for _, tt := range tests { s := &Strings{} diff --git a/server/manager.go b/server/manager.go index e0fde1b..f2ff0a0 100644 --- a/server/manager.go +++ b/server/manager.go @@ -28,7 +28,8 @@ func makeMatcher(name model.Strings, s *ServerListener) cmux.Matcher { return false } // l.Debug("Request Host:", req.Host, "URL Host:", req.URL.Host, "Name:", name) - return name.HasOrContainPrefix(req.Host) || name.HasOrContainPrefix(req.URL.Host) + //name.HasOrContainPrefix(req.Host) || + return name.HasOrContainPrefix(req.URL.Host) } }