chore(stdiscosrv): properly clean out old addresses from memory
This commit is contained in:
@@ -169,8 +169,16 @@ func (s *inMemoryStore) calculateStatistics() {
|
|||||||
n++
|
n++
|
||||||
|
|
||||||
addresses := expire(rec.Addresses, now)
|
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 {
|
switch {
|
||||||
case len(addresses) > 0:
|
case len(rec.Addresses) > 0:
|
||||||
current++
|
current++
|
||||||
seenIPv4, seenIPv6, seenIPv6GUA := false, false, false
|
seenIPv4, seenIPv6, seenIPv6GUA := false, false, false
|
||||||
for _, addr := range rec.Addresses {
|
for _, addr := range rec.Addresses {
|
||||||
@@ -428,6 +436,9 @@ func expire(addrs []DatabaseAddress, now time.Time) []DatabaseAddress {
|
|||||||
naddrs = append(naddrs, addrs[i])
|
naddrs = append(naddrs, addrs[i])
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
if len(naddrs) == 0 {
|
||||||
|
return nil
|
||||||
|
}
|
||||||
return naddrs
|
return naddrs
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
Reference in New Issue
Block a user