Preserve unreachable state and ping failures across node merges
Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
This commit is contained in:
12
ping.go
12
ping.go
@@ -138,6 +138,18 @@ func (pm *PingManager) Ping(ipStr string, timeout time.Duration) bool {
|
||||
}
|
||||
}
|
||||
|
||||
func (pm *PingManager) TransferFailures(fromID, toID string) {
|
||||
pm.mu.Lock()
|
||||
defer pm.mu.Unlock()
|
||||
|
||||
fromFailures := pm.failures[fromID]
|
||||
toFailures := pm.failures[toID]
|
||||
if fromFailures > toFailures {
|
||||
pm.failures[toID] = fromFailures
|
||||
}
|
||||
delete(pm.failures, fromID)
|
||||
}
|
||||
|
||||
func (t *Tendrils) pingNode(node *Node) {
|
||||
t.nodes.mu.RLock()
|
||||
if node.Avoid {
|
||||
|
||||
Reference in New Issue
Block a user