Skip to content

Commit 32b021a

Browse files
committed
Update.
1 parent 4ca4c10 commit 32b021a

File tree

1 file changed

+28
-27
lines changed

1 file changed

+28
-27
lines changed

service/rpc/server.go

Lines changed: 28 additions & 27 deletions
Original file line numberDiff line numberDiff line change
@@ -771,35 +771,36 @@ 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 没有变化,跳过更新(但不记录日志,避免频繁输出)
776774
} else {
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)
800-
}
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 没有变化,跳过更新(但不记录日志,避免频繁输出)
801784
} else {
802-
log.Printf("服务器 %s (ID:%d) 获取DDNS配置时发生错误: %v", server.Name, clientID, err)
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)
803+
}
803804
}
804805
}
805806
}

0 commit comments

Comments
 (0)