forked from cwtch.im/cwtch
contact retry force disconnect internally any connecting over 2xcircut timeout
This commit is contained in:
parent
6b212beb00
commit
1f2617e4ae
|
@ -212,6 +212,16 @@ func (cr *contactRetry) run() {
|
|||
}
|
||||
cr.lastCheck = time.Now()
|
||||
}
|
||||
// regardless of if we're up, run manual force deconnectiong of timed out connections
|
||||
cr.connections.Range(func(k, v interface{}) bool {
|
||||
p := v.(*contact)
|
||||
if p.state == connections.CONNECTING && time.Since(p.lastAttempt) > time.Duration(circuitTimeoutSecs)*time.Second*2 {
|
||||
// we have been "connecting" for twice the circuttimeout so it's failed, we just didn't learn about it, manually disconnect
|
||||
cr.handleEvent(p.id, connections.DISCONNECTED, p.ctype)
|
||||
log.Errorf("had to manually set peer %v of profile %v to DISCONNECTED due to assumed circuit timeout (%v) seconds", p.id, cr.onion, circuitTimeoutSecs*2)
|
||||
}
|
||||
return true
|
||||
})
|
||||
|
||||
select {
|
||||
case e := <-cr.queue.OutChan():
|
||||
|
|
Loading…
Reference in New Issue