diff --git a/cmd/stdiscosrv/database.go b/cmd/stdiscosrv/database.go index e4b64aaf5..d7ac96994 100644 --- a/cmd/stdiscosrv/database.go +++ b/cmd/stdiscosrv/database.go @@ -169,8 +169,16 @@ func (s *inMemoryStore) calculateStatistics() { n++ addresses := expire(rec.Addresses, now) + if len(addresses) == 0 { + rec.Addresses = nil + s.m.Store(key, rec) + } else if len(addresses) != len(rec.Addresses) { + rec.Addresses = addresses + s.m.Store(key, rec) + } + switch { - case len(addresses) > 0: + case len(rec.Addresses) > 0: current++ seenIPv4, seenIPv6, seenIPv6GUA := false, false, false for _, addr := range rec.Addresses { @@ -428,6 +436,9 @@ func expire(addrs []DatabaseAddress, now time.Time) []DatabaseAddress { naddrs = append(naddrs, addrs[i]) } } + if len(naddrs) == 0 { + return nil + } return naddrs }