From e9e6387d17d51ce1b794deb6bc6586d7d1438450 Mon Sep 17 00:00:00 2001 From: ZacharyZcR Date: Mon, 19 Jan 2026 15:05:22 +0800 Subject: [PATCH] =?UTF-8?q?fix:=20=E4=BF=AE=E5=A4=8D-u/-uf=E6=A8=A1?= =?UTF-8?q?=E5=BC=8F=E4=B8=8BURLs=E4=B8=A2=E5=A4=B1=E5=AF=BC=E8=87=B40?= =?UTF-8?q?=E7=9B=AE=E6=A0=87=E6=89=AB=E6=8F=8F=E7=9A=84=E9=97=AE=E9=A2=98?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Parse阶段将URLs设置到全局状态,但Initialize随后创建新状态 并覆盖了全局状态,导致URLs数据丢失。现在在创建新状态前 先保存并迁移Parse阶段设置的URLs和HostPorts数据。 --- common/initialize.go | 13 +++++++++++++ 1 file changed, 13 insertions(+) diff --git a/common/initialize.go b/common/initialize.go index 2d6aefe..71c2573 100644 --- a/common/initialize.go +++ b/common/initialize.go @@ -34,8 +34,21 @@ func Initialize(info *HostInfo) (*InitResult, error) { // 从 FlagVars 构建 Config(新架构) cfg := BuildConfigFromFlags(flagVars) + + // 关键修复:获取 Parse 阶段设置的全局状态数据 + // Parse 通过 updateGlobalVariables 将 URLs 和 HostPorts 设置到了全局状态 + // 需要保留这些数据到新状态中 + oldGlobalState := GetGlobalState() state := NewState() + // 迁移 Parse 阶段设置的目标数据 + if urls := oldGlobalState.GetURLs(); len(urls) > 0 { + state.SetURLs(urls) + } + if hostPorts := oldGlobalState.GetHostPorts(); len(hostPorts) > 0 { + state.SetHostPorts(hostPorts) + } + // 关键修复:应用 Parse 解析的凭据结果到新 Config // Parse 会根据 -user/-pwd/-usera/-pwda 等参数更新凭据 if len(parsedCreds.UserPassPairs) > 0 {