mirror of
https://github.com/lightningnetwork/lnd.git
synced 2025-09-18 19:41:21 +02:00
htlcswitch: add new LinkFailureDisconnect action
In this commit, we add a new LinkFailureDisconnect action that'll be
used if we detect that the remote party hasn't sent a revoke and ack
when it actually should.
Before this commit, we would log our action, tear down the link, but
then not actually force a connection recycle, as we assumed that if the
TCP connection was actually stale, then the read/write timeout would
expire.
In practice this doesn't always seem to be the case, so we make a strong
action here to actually force a disconnection in hopes that either side
will reconnect and keep the good times rollin' 🕺.
This commit is contained in:
@@ -3142,6 +3142,13 @@ func (p *Brontide) handleLinkFailure(failure linkFailureReport) {
|
||||
"remote peer: %v", err)
|
||||
}
|
||||
}
|
||||
|
||||
// If the failure action is disconnect, then we'll execute that now. If
|
||||
// we had to send an error above, it was a sync call, so we expect the
|
||||
// message to be flushed on the wire by now.
|
||||
if failure.linkErr.FailureAction == htlcswitch.LinkFailureDisconnect {
|
||||
p.Disconnect(fmt.Errorf("link requested disconnect"))
|
||||
}
|
||||
}
|
||||
|
||||
// tryLinkShutdown attempts to fetch a target link from the switch, calls
|
||||
|
Reference in New Issue
Block a user