@@ -532,12 +532,15 @@ where
532
532
HashMap :: new ( )
533
533
}
534
534
} ;
535
- let scorer = AccountForInFlightHtlcs { scorer : & mut self . scorer . lock ( ) , inflight_htlcs } ;
536
535
537
- let route = self . router . find_route (
538
- & payer, params, & payment_hash, Some ( & first_hops. iter ( ) . collect :: < Vec < _ > > ( ) ) ,
539
- & scorer
540
- ) . map_err ( |e| PaymentError :: Routing ( e) ) ?;
536
+ let route = {
537
+ let scorer = AccountForInFlightHtlcs { scorer : & mut self . scorer . lock ( ) , inflight_htlcs } ;
538
+
539
+ self . router . find_route (
540
+ & payer, & params, & payment_hash, Some ( & first_hops. iter ( ) . collect :: < Vec < _ > > ( ) ) ,
541
+ & scorer
542
+ ) . map_err ( |e| PaymentError :: Routing ( e) ) ?
543
+ } ;
541
544
542
545
match send_payment ( & route) {
543
546
Ok ( payment_id) => {
@@ -691,18 +694,23 @@ where
691
694
HashMap :: new ( )
692
695
}
693
696
} ;
694
- let scorer = AccountForInFlightHtlcs { scorer : & mut self . scorer . lock ( ) , inflight_htlcs } ;
695
697
696
- let route = self . router . find_route (
697
- & payer, & params, & payment_hash, Some ( & first_hops. iter ( ) . collect :: < Vec < _ > > ( ) ) ,
698
- & scorer
699
- ) ;
698
+ let route = {
699
+ let scorer = AccountForInFlightHtlcs { scorer : & mut self . scorer . lock ( ) , inflight_htlcs } ;
700
+
701
+ self . router . find_route (
702
+ & payer, & params, & payment_hash, Some ( & first_hops. iter ( ) . collect :: < Vec < _ > > ( ) ) ,
703
+ & scorer
704
+ )
705
+ } ;
706
+
700
707
701
708
if route. is_err ( ) {
702
709
log_trace ! ( self . logger, "Failed to find a route for payment {}; not retrying ({:})" , log_bytes!( payment_hash. 0 ) , attempts) ;
703
710
return Err ( ( ) ) ;
704
711
}
705
712
713
+
706
714
match self . payer . retry_payment ( & route. unwrap ( ) , payment_id) {
707
715
Ok ( ( ) ) => Ok ( ( ) ) ,
708
716
Err ( PaymentSendFailure :: ParameterError ( _) ) |
0 commit comments