多项更新优化
This commit is contained in:
@@ -751,7 +751,7 @@ func (s *Server) handleTopDomains(w http.ResponseWriter, r *http.Request) {
|
||||
// 合并并去重域名统计
|
||||
domainMap := make(map[string]int64)
|
||||
dnssecStatusMap := make(map[string]bool)
|
||||
|
||||
|
||||
for _, domain := range blockedDomains {
|
||||
domainMap[domain.Domain] += domain.Count
|
||||
dnssecStatusMap[domain.Domain] = domain.DNSSEC
|
||||
@@ -1233,18 +1233,40 @@ func (s *Server) handleConfig(w http.ResponseWriter, r *http.Request) {
|
||||
case http.MethodGet:
|
||||
// 返回当前配置(包括黑名单配置)
|
||||
config := map[string]interface{}{
|
||||
"shield": map[string]interface{}{
|
||||
"Shield": map[string]interface{}{
|
||||
"blockMethod": s.globalConfig.Shield.BlockMethod,
|
||||
"customBlockIP": s.globalConfig.Shield.CustomBlockIP,
|
||||
"blacklists": s.globalConfig.Shield.Blacklists,
|
||||
"updateInterval": s.globalConfig.Shield.UpdateInterval,
|
||||
},
|
||||
"DNSServer": map[string]interface{}{
|
||||
"port": s.globalConfig.DNS.Port,
|
||||
"UpstreamServers": s.globalConfig.DNS.UpstreamDNS,
|
||||
"DNSSECUpstreamServers": s.globalConfig.DNS.DNSSECUpstreamDNS,
|
||||
"timeout": s.globalConfig.DNS.Timeout,
|
||||
"saveInterval": s.globalConfig.DNS.SaveInterval,
|
||||
"enableIPv6": s.globalConfig.DNS.EnableIPv6,
|
||||
},
|
||||
"HTTPServer": map[string]interface{}{
|
||||
"port": s.globalConfig.HTTP.Port,
|
||||
},
|
||||
}
|
||||
json.NewEncoder(w).Encode(config)
|
||||
|
||||
case http.MethodPost:
|
||||
// 更新配置
|
||||
var req struct {
|
||||
DNSServer struct {
|
||||
Port int `json:"port"`
|
||||
UpstreamServers []string `json:"upstreamServers"`
|
||||
DnssecUpstreamServers []string `json:"dnssecUpstreamServers"`
|
||||
Timeout int `json:"timeout"`
|
||||
SaveInterval int `json:"saveInterval"`
|
||||
EnableIPv6 bool `json:"enableIPv6"`
|
||||
} `json:"dnsserver"`
|
||||
HTTPServer struct {
|
||||
Port int `json:"port"`
|
||||
} `json:"httpserver"`
|
||||
Shield struct {
|
||||
BlockMethod string `json:"blockMethod"`
|
||||
CustomBlockIP string `json:"customBlockIP"`
|
||||
@@ -1258,6 +1280,29 @@ func (s *Server) handleConfig(w http.ResponseWriter, r *http.Request) {
|
||||
return
|
||||
}
|
||||
|
||||
// 更新DNS配置
|
||||
if req.DNSServer.Port > 0 {
|
||||
s.globalConfig.DNS.Port = req.DNSServer.Port
|
||||
}
|
||||
if len(req.DNSServer.UpstreamServers) > 0 {
|
||||
s.globalConfig.DNS.UpstreamDNS = req.DNSServer.UpstreamServers
|
||||
}
|
||||
if len(req.DNSServer.DnssecUpstreamServers) > 0 {
|
||||
s.globalConfig.DNS.DNSSECUpstreamDNS = req.DNSServer.DnssecUpstreamServers
|
||||
}
|
||||
if req.DNSServer.Timeout > 0 {
|
||||
s.globalConfig.DNS.Timeout = req.DNSServer.Timeout
|
||||
}
|
||||
if req.DNSServer.SaveInterval > 0 {
|
||||
s.globalConfig.DNS.SaveInterval = req.DNSServer.SaveInterval
|
||||
}
|
||||
s.globalConfig.DNS.EnableIPv6 = req.DNSServer.EnableIPv6
|
||||
|
||||
// 更新HTTP配置
|
||||
if req.HTTPServer.Port > 0 {
|
||||
s.globalConfig.HTTP.Port = req.HTTPServer.Port
|
||||
}
|
||||
|
||||
// 更新屏蔽配置
|
||||
if req.Shield.BlockMethod != "" {
|
||||
// 验证屏蔽方法是否有效
|
||||
|
||||
Reference in New Issue
Block a user