添加重启endpoint
This commit is contained in:
@@ -71,6 +71,7 @@ func (s *Server) Start() error {
|
||||
mux.HandleFunc("/api/query", s.handleQuery)
|
||||
mux.HandleFunc("/api/status", s.handleStatus)
|
||||
mux.HandleFunc("/api/config", s.handleConfig)
|
||||
mux.HandleFunc("/api/config/restart", s.handleRestart)
|
||||
// 添加统计相关接口
|
||||
mux.HandleFunc("/api/top-blocked", s.handleTopBlockedDomains)
|
||||
mux.HandleFunc("/api/top-resolved", s.handleTopResolvedDomains)
|
||||
@@ -1062,3 +1063,37 @@ func isValidIP(ip string) bool {
|
||||
}
|
||||
return true
|
||||
}
|
||||
|
||||
// handleRestart 处理重启服务请求
|
||||
func (s *Server) handleRestart(w http.ResponseWriter, r *http.Request) {
|
||||
if r.Method != http.MethodPost {
|
||||
http.Error(w, "Method not allowed", http.StatusMethodNotAllowed)
|
||||
return
|
||||
}
|
||||
|
||||
logger.Info("收到重启服务请求")
|
||||
|
||||
// 停止DNS服务器
|
||||
s.dnsServer.Stop()
|
||||
|
||||
// 重新加载屏蔽规则
|
||||
if err := s.shieldManager.LoadRules(); err != nil {
|
||||
logger.Error("重新加载屏蔽规则失败", "error", err)
|
||||
}
|
||||
|
||||
// 重新启动DNS服务器
|
||||
go func() {
|
||||
if err := s.dnsServer.Start(); err != nil {
|
||||
logger.Error("DNS服务器重启失败", "error", err)
|
||||
}
|
||||
}()
|
||||
|
||||
// 重新启动定时更新任务
|
||||
s.shieldManager.StopAutoUpdate()
|
||||
s.shieldManager.StartAutoUpdate()
|
||||
|
||||
// 返回成功响应
|
||||
w.Header().Set("Content-Type", "application/json")
|
||||
json.NewEncoder(w).Encode(map[string]string{"status": "success", "message": "服务已重启"})
|
||||
logger.Info("服务重启成功")
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user