Merge upstream monitoring features preserving domain extensions and require fixed Go toolchain

This commit is contained in:
Codex committed 2026-10-22 23:50:03 +08:00
commit 71dd21269b
92 files changed
+8557 -874

No files matched your search

+12 -1
View File
@@ -204,7 +204,15 @@ func (s *NezhaHandler) ReportSystemState(stream pb.NezhaService_ReportSystemStat
return errors.New("server not found")
}
lease := server.AttachStateStream(stream)
defer lease.Clear()
defer func() {
// Persist while owning the lease; a replaced stream must never close a
// newer stream's session between Clear and RecordOffline.
lease.ClearWithSideEffect(func() {
if singleton.OnlineHistoryShared != nil {
singleton.OnlineHistoryShared.RecordOffline(clientID, time.Now())
}
})
}()
var state *pb.State
var stateCount uint64
for {
@@ -255,6 +263,9 @@ func (s *NezhaHandler) ReportSystemState(stream pb.NezhaService_ReportSystemStat
log.Printf("NEZHA>> Failed to write server metrics to TSDB: %v", err)
}
}
if singleton.OnlineHistoryShared != nil {
singleton.OnlineHistoryShared.RecordOnline(clientID, lastActive)
}
return nil
})
if !accepted {