diff --git a/swarm_dial.go b/swarm_dial.go index 970cf0105e8bfc6e55a75e493654de541d218ea1..cae4110c01ff548426bbdfafccb9394918f257c0 100644 --- a/swarm_dial.go +++ b/swarm_dial.go @@ -196,7 +196,11 @@ func (db *DialBackoff) cleanup() { for p, e := range db.entries { good := false for _, backoff := range e { - if now.Before(backoff.until) { + backoffTime := BackoffBase + BackoffCoef*time.Duration(backoff.tries*backoff.tries) + if backoffTime > BackoffMax { + backoffTime = BackoffMax + } + if now.Before(backoff.until.Add(backoffTime)) { good = true break }