Skip to content

Commit 01e63bf

Browse files
committed
Update.
1 parent 237dcd7 commit 01e63bf

File tree

2 files changed

+27
-29
lines changed

2 files changed

+27
-29
lines changed

service/rpc/server.go

Lines changed: 27 additions & 28 deletions
Original file line numberDiff line numberDiff line change
@@ -771,36 +771,35 @@ func (s *ServerHandler) ReportSystemInfo(c context.Context, r *pb.Host) (*pb.Rec
771771
log.Printf("服务器 %s (ID:%d) DDNS已启用但IP为空,跳过更新", server.Name, clientID)
772772
} else if len(server.DDNSProfiles) == 0 {
773773
log.Printf("服务器 %s (ID:%d) DDNS已启用但未配置DDNS配置文件", server.Name, clientID)
774+
} else if server.Host != nil && server.Host.IP == host.IP {
775+
// IP 没有变化,跳过更新(但不记录日志,避免频繁输出)
774776
} else {
775-
// 获取当前保存的IP地址
776-
currentIP := ""
777-
if server.Host != nil {
778-
currentIP = server.Host.IP
779-
}
780-
781-
// 检查IP是否实际发生了变化
782-
if currentIP == host.IP {
783-
// IP 没有变化,跳过更新(但不记录日志,避免频繁输出)
784-
} else {
785-
// IP 发生变化或首次设置,触发 DDNS 更新
786-
ipv4, ipv6, _ := utils.SplitIPAddr(host.IP)
787-
providers, err := singleton.GetDDNSProvidersFromProfilesWithServer(
788-
server.DDNSProfiles,
789-
&ddns.IP{Ipv4Addr: ipv4, Ipv6Addr: ipv6},
790-
server.Name,
791-
clientID,
792-
)
793-
if err == nil {
794-
log.Printf("服务器 %s (ID:%d) IP变化 (%s -> %s),触发DDNS更新,配置数量: %d",
795-
server.Name, clientID, currentIP, host.IP, len(providers))
796-
for _, provider := range providers {
797-
go func(provider *ddns.Provider) {
798-
provider.UpdateDomain(context.Background())
799-
}(provider)
800-
}
801-
} else {
802-
log.Printf("服务器 %s (ID:%d) 获取DDNS配置时发生错误: %v", server.Name, clientID, err)
777+
// IP 发生变化或首次设置,触发 DDNS 更新
778+
ipv4, ipv6, _ := utils.SplitIPAddr(host.IP)
779+
providers, err := singleton.GetDDNSProvidersFromProfilesWithServer(
780+
server.DDNSProfiles,
781+
&ddns.IP{Ipv4Addr: ipv4, Ipv6Addr: ipv6},
782+
server.Name,
783+
clientID,
784+
)
785+
if err == nil {
786+
log.Printf("服务器 %s (ID:%d) IP变化 (%s -> %s),触发DDNS更新,配置数量: %d",
787+
server.Name, clientID,
788+
func() string {
789+
if server.Host != nil {
790+
return server.Host.IP
791+
} else {
792+
return "无"
793+
}
794+
}(),
795+
host.IP, len(providers))
796+
for _, provider := range providers {
797+
go func(provider *ddns.Provider) {
798+
provider.UpdateDomain(context.Background())
799+
}(provider)
803800
}
801+
} else {
802+
log.Printf("服务器 %s (ID:%d) 获取DDNS配置时发生错误: %v", server.Name, clientID, err)
804803
}
805804
}
806805
}

service/singleton/server.go

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -123,7 +123,6 @@ func loadServers() {
123123
// 如果之前的Host对象有IP信息,需要保留
124124
if innerS.Host != nil && innerS.Host.IP != "" {
125125
host.IP = innerS.Host.IP
126-
log.Printf("服务器 %s (ID:%d) 恢复Host.IP字段: %s", innerS.Name, innerS.ID, host.IP)
127126
}
128127

129128
innerS.Host = host

0 commit comments

Comments
 (0)