Skip to content

Commit 9584400

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 7a7c6ae commit 9584400

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
@@ -5282,7 +5282,8 @@ static void peer_reconnect(struct peer *peer,
52825282
* indicate that we would like them to re-send
52835283
* commitment signatures */
52845284
/* DTODO: Add bolt reference */
5285-
send_next_commitment_number--;
5285+
if (!inflight->last_tx)
5286+
send_next_commitment_number--;
52865287
}
52875288
}
52885289

@@ -5415,7 +5416,7 @@ static void peer_reconnect(struct peer *peer,
54155416
status_info("Resuming splice negotation.");
54165417
resume_splice_negotiation(peer,
54175418
false,
5418-
true,
5419+
!inflight->last_tx,
54195420
false,
54205421
true);
54215422
} else if (bitcoin_txid_eq(remote_next_funding,
@@ -5428,8 +5429,8 @@ static void peer_reconnect(struct peer *peer,
54285429
if (local_next_funding)
54295430
assume_stfu_mode(peer);
54305431
resume_splice_negotiation(peer,
5431-
true,
5432-
local_next_funding,
5432+
next_commitment_number == peer->next_index[REMOTE] - 1,
5433+
local_next_funding && !inflight->last_tx,
54335434
true,
54345435
local_next_funding);
54355436
} else if (bitcoin_txid_eq(remote_next_funding,
@@ -5593,7 +5594,10 @@ static void peer_reconnect(struct peer *peer,
55935594
PRIu64,
55945595
next_commitment_number);
55955596

5596-
retransmit_commitment_signed = true;
5597+
if (!recv_tlvs || !recv_tlvs->next_funding)
5598+
retransmit_commitment_signed = true;
5599+
else
5600+
retransmit_commitment_signed = false;
55975601

55985602
/* BOLT #2:
55995603
*

0 commit comments

Comments
 (0)