mirror of
https://github.com/cwinfo/yggdrasil-go.git
synced 2024-11-22 03:40:28 +00:00
clean up node info immediately if it reaches the timeout or if it needs refreshing but won't be pinged due to being unimportant
This commit is contained in:
parent
f59852b1e1
commit
59093aa43b
@ -325,7 +325,15 @@ func (t *dht) doMaintenance() {
|
||||
}
|
||||
t.callbacks = newCallbacks
|
||||
for infoID, info := range t.table {
|
||||
if now.Sub(info.recv) > dht_timeout || info.pings > 6 {
|
||||
switch {
|
||||
case info.pings > 6:
|
||||
// It failed to respond to too many pings
|
||||
fallthrough
|
||||
case now.Sub(info.recv) > dht_timeout:
|
||||
// It's too old
|
||||
fallthrough
|
||||
case info.dirty && now.Sub(info.recv) > dht_max_delay_dirty && !t.isImportant(info):
|
||||
// We won't ping it to refresh it, so just drop it
|
||||
delete(t.table, infoID)
|
||||
t.imp = nil
|
||||
}
|
||||
|
Loading…
Reference in New Issue
Block a user