修复配置更新未写入配置文件的问题

This commit is contained in:
Alex Yang
2025-11-28 01:10:43 +08:00
parent 0e0ac8b016
commit 67c651c804
4 changed files with 163 additions and 31 deletions

View File

@@ -731,6 +731,14 @@ func (s *Server) handleShieldBlacklists(w http.ResponseWriter, r *http.Request)
blacklists[targetIndex].LastUpdateTime = time.Now().Format(time.RFC3339)
// 保存更新后的黑名单列表
s.shieldManager.UpdateBlacklist(blacklists)
// 更新全局配置中的黑名单
s.globalConfig.Shield.Blacklists = blacklists
// 保存配置到文件
if err := saveConfigToFile(s.globalConfig, "config.json"); err != nil {
logger.Error("保存配置文件失败", "error", err)
http.Error(w, "保存配置失败", http.StatusInternalServerError)
return
}
// 重新加载规则以获取最新的远程规则
s.shieldManager.LoadRules()
@@ -753,6 +761,14 @@ func (s *Server) handleShieldBlacklists(w http.ResponseWriter, r *http.Request)
}
s.shieldManager.UpdateBlacklist(newBlacklists)
// 更新全局配置中的黑名单
s.globalConfig.Shield.Blacklists = newBlacklists
// 保存配置到文件
if err := saveConfigToFile(s.globalConfig, "config.json"); err != nil {
logger.Error("保存配置文件失败", "error", err)
http.Error(w, "保存配置失败", http.StatusInternalServerError)
return
}
json.NewEncoder(w).Encode(map[string]string{"status": "success"})
return
}
@@ -800,6 +816,14 @@ func (s *Server) handleShieldBlacklists(w http.ResponseWriter, r *http.Request)
blacklists = append(blacklists, newEntry)
s.shieldManager.UpdateBlacklist(blacklists)
// 更新全局配置中的黑名单
s.globalConfig.Shield.Blacklists = blacklists
// 保存配置到文件
if err := saveConfigToFile(s.globalConfig, "config.json"); err != nil {
logger.Error("保存配置文件失败", "error", err)
http.Error(w, "保存配置失败", http.StatusInternalServerError)
return
}
// 重新加载规则以获取新添加的远程规则
s.shieldManager.LoadRules()
@@ -815,6 +839,14 @@ func (s *Server) handleShieldBlacklists(w http.ResponseWriter, r *http.Request)
}
s.shieldManager.UpdateBlacklist(blacklists)
// 更新全局配置中的黑名单
s.globalConfig.Shield.Blacklists = blacklists
// 保存配置到文件
if err := saveConfigToFile(s.globalConfig, "config.json"); err != nil {
logger.Error("保存配置文件失败", "error", err)
http.Error(w, "保存配置失败", http.StatusInternalServerError)
return
}
// 重新加载所有规则
s.shieldManager.LoadRules()