X-Git-Url: http://git.bitcoin.ninja/index.cgi?a=blobdiff_plain;f=lightning-invoice%2Fsrc%2Fpayment.rs;h=a1c187915b98a81cb6f78d582458bbc3e4524dd6;hb=087c0bdd8716d8fedde84cd793bcbd805a0f6c0e;hp=cbd760c37d02d045c82cbc942432c1f2c82dc419;hpb=8d8ee55463612dc5e1661657d7eb2b1a1e8271cc;p=rust-lightning diff --git a/lightning-invoice/src/payment.rs b/lightning-invoice/src/payment.rs index cbd760c3..a1c18791 100644 --- a/lightning-invoice/src/payment.rs +++ b/lightning-invoice/src/payment.rs @@ -562,7 +562,8 @@ where Err(e) => match e { PaymentSendFailure::ParameterError(_) => Err(e), PaymentSendFailure::PathParameterError(_) => Err(e), - PaymentSendFailure::AllFailedRetrySafe(_) => { + PaymentSendFailure::DuplicatePayment => Err(e), + PaymentSendFailure::AllFailedResendSafe(_) => { let mut payment_cache = self.payment_cache.lock().unwrap(); let payment_info = payment_cache.get_mut(&payment_hash).unwrap(); payment_info.attempts.count += 1; @@ -673,9 +674,13 @@ where log_trace!(self.logger, "Failed to retry for payment {} due to bogus route/payment data, not retrying.", log_bytes!(payment_hash.0)); Err(()) }, - Err(PaymentSendFailure::AllFailedRetrySafe(_)) => { + Err(PaymentSendFailure::AllFailedResendSafe(_)) => { self.retry_payment(payment_id, payment_hash, params) }, + Err(PaymentSendFailure::DuplicatePayment) => { + log_error!(self.logger, "Got a DuplicatePayment error when attempting to retry a payment, this shouldn't happen."); + Err(()) + } Err(PaymentSendFailure::PartialFailure { failed_paths_retry, results, .. }) => { // If a `PartialFailure` error contains a result that is an `Ok()`, it means that // part of our payment is retried. When we receive `MonitorUpdateInProgress`, it