Skip to content

Commit 8e5c81e

Browse files
f set max path length for async payments
1 parent 5abdf23 commit 8e5c81e

File tree

1 file changed

+7
-3
lines changed

1 file changed

+7
-3
lines changed

lightning/src/ln/outbound_payment.rs

Lines changed: 7 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -972,22 +972,26 @@ impl OutboundPayments {
972972
IH: Fn() -> InFlightHtlcs,
973973
SP: Fn(SendAlongPathArgs) -> Result<(), APIError>,
974974
{
975-
let (payment_hash, route_params) =
975+
let (payment_hash, keysend_preimage, mut route_params) =
976976
match self.pending_outbound_payments.lock().unwrap().entry(payment_id) {
977977
hash_map::Entry::Occupied(entry) => match entry.get() {
978978
PendingOutboundPayment::StaticInvoiceReceived {
979-
payment_hash, payment_release_secret: release_secret, route_params, ..
979+
payment_hash, payment_release_secret: release_secret, keysend_preimage, route_params, ..
980980
} => {
981981
if payment_release_secret != *release_secret {
982982
return Err(Bolt12PaymentError::UnexpectedInvoice)
983983
}
984-
(*payment_hash, route_params.clone())
984+
(*payment_hash, *keysend_preimage, route_params.clone())
985985
},
986986
_ => return Err(Bolt12PaymentError::DuplicateInvoice),
987987
},
988988
hash_map::Entry::Vacant(_) => return Err(Bolt12PaymentError::UnexpectedInvoice),
989989
};
990990

991+
onion_utils::set_max_path_length(
992+
&mut route_params, &RecipientOnionFields::spontaneous_empty(), Some(keysend_preimage), best_block_height
993+
).map_err(|()| Bolt12PaymentError::SendingFailed(RetryableSendFailure::OnionPacketSizeExceeded))?;
994+
991995
self.find_route_and_send_payment(
992996
payment_hash, payment_id, route_params, router, first_hops, &inflight_htlcs,
993997
entropy_source, node_signer, best_block_height, logger, pending_events,

0 commit comments

Comments
 (0)