1
0

lnpeer: do not drop channel updates if cannot send

This commit is contained in:
ThomasV
2020-02-29 16:38:33 +01:00
parent da67fda92a
commit d827aedd16
2 changed files with 3 additions and 9 deletions

View File

@@ -1268,10 +1268,7 @@ class Peer(Logger):
async def _fulfill_htlc(self, chan: Channel, htlc_id: int, preimage: bytes):
self.logger.info(f"_fulfill_htlc. chan {chan.short_channel_id}. htlc_id {htlc_id}")
if not chan.can_send_ctx_updates():
self.logger.info(f"dropping chan update (fulfill htlc {htlc_id}) for {chan.short_channel_id}. "
f"cannot send updates")
return
assert chan.can_send_ctx_updates(), f"cannot send updates: {chan.short_channel_id}"
chan.settle_htlc(preimage, htlc_id)
payment_hash = sha256(preimage)
self.lnworker.payment_received(payment_hash)
@@ -1285,10 +1282,7 @@ class Peer(Logger):
async def fail_htlc(self, chan: Channel, htlc_id: int, onion_packet: OnionPacket,
reason: OnionRoutingFailureMessage):
self.logger.info(f"fail_htlc. chan {chan.short_channel_id}. htlc_id {htlc_id}. reason: {reason}")
if not chan.can_send_ctx_updates():
self.logger.info(f"dropping chan update (fail htlc {htlc_id}) for {chan.short_channel_id}. "
f"cannot send updates")
return
assert chan.can_send_ctx_updates(), f"cannot send updates: {chan.short_channel_id}"
chan.fail_htlc(htlc_id)
remote_ctn = chan.get_latest_ctn(REMOTE)
error_packet = construct_onion_error(reason, onion_packet, our_onion_private_key=self.privkey)

View File

@@ -1332,7 +1332,7 @@ class LNWallet(LNWorker):
while True:
await asyncio.sleep(0.1)
for chan_id, chan in self.channels.items():
if chan.peer_state != peer_states.GOOD:
if not chan.can_send_ctx_updates():
continue
peer = self.peers[chan.node_id]
done = set()