Skip to content

Commit 25e6f81

Browse files
committed
splice: Only send or recv commit sig if needed
Be more conservative about when we request of send commit sig for splice to match the Eclair behavior.
1 parent 13f8d15 commit 25e6f81

File tree

1 file changed

+9
-5
lines changed

1 file changed

+9
-5
lines changed

channeld/channeld.c

Lines changed: 9 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -5296,7 +5296,8 @@ static void peer_reconnect(struct peer *peer,
52965296
* indicate that we would like them to re-send
52975297
* commitment signatures */
52985298
/* DTODO: Add bolt reference */
5299-
send_next_commitment_number--;
5299+
if (!inflight->last_tx)
5300+
send_next_commitment_number--;
53005301
}
53015302
}
53025303

@@ -5437,7 +5438,7 @@ static void peer_reconnect(struct peer *peer,
54375438
status_info("Resuming splice negotation.");
54385439
resume_splice_negotiation(peer,
54395440
false,
5440-
true,
5441+
!inflight->last_tx,
54415442
false,
54425443
true);
54435444
} else if (bitcoin_txid_eq(remote_next_funding,
@@ -5450,8 +5451,8 @@ static void peer_reconnect(struct peer *peer,
54505451
if (local_next_funding)
54515452
assume_stfu_mode(peer);
54525453
resume_splice_negotiation(peer,
5453-
true,
5454-
local_next_funding,
5454+
next_commitment_number == peer->next_index[REMOTE] - 1,
5455+
local_next_funding && !inflight->last_tx,
54555456
true,
54565457
local_next_funding);
54575458
} else if (bitcoin_txid_eq(remote_next_funding,
@@ -5615,7 +5616,10 @@ static void peer_reconnect(struct peer *peer,
56155616
PRIu64,
56165617
next_commitment_number);
56175618

5618-
retransmit_commitment_signed = true;
5619+
if (!recv_tlvs || !recv_tlvs->next_funding)
5620+
retransmit_commitment_signed = true;
5621+
else
5622+
retransmit_commitment_signed = false;
56195623

56205624
/* BOLT #2:
56215625
*

0 commit comments

Comments
 (0)