@@ -565,36 +565,38 @@ where
565
565
} ,
566
566
}
567
567
} ,
568
- LSPSMessage :: LSPS5 ( msg @ LSPS5Message :: Request ( .. ) ) => {
568
+ LSPSMessage :: LSPS5 ( ref msg @ LSPS5Message :: Request ( _ , ref req ) ) => {
569
569
match & self . lsps5_service_handler {
570
570
Some ( lsps5_service_handler) => {
571
- let lsps2_has_active_requests = self
572
- . lsps2_service_handler
573
- . as_ref ( )
574
- . map_or ( false , |h| h. has_active_requests ( sender_node_id) ) ;
575
- #[ cfg( lsps1_service) ]
576
- let lsps1_has_active_requests = self
577
- . lsps1_service_handler
578
- . as_ref ( )
579
- . map_or ( false , |h| h. has_active_requests ( sender_node_id) ) ;
580
- #[ cfg( not( lsps1_service) ) ]
581
- let lsps1_has_active_requests = false ;
582
-
583
- if !lsps5_service_handler. can_accept_request (
584
- sender_node_id,
585
- lsps2_has_active_requests,
586
- lsps1_has_active_requests,
587
- ) {
588
- return Err ( LightningError {
589
- err : format ! (
590
- "Rejecting LSPS5 request from {:?} without prior activity (requires open channel or active LSPS1 or LSPS2 flow)" ,
591
- sender_node_id
592
- ) ,
593
- action : ErrorAction :: IgnoreAndLog ( Level :: Debug ) ,
594
- } ) ;
571
+ if req. is_state_allocating ( ) {
572
+ let lsps2_has_active_requests = self
573
+ . lsps2_service_handler
574
+ . as_ref ( )
575
+ . map_or ( false , |h| h. has_active_requests ( sender_node_id) ) ;
576
+ #[ cfg( lsps1_service) ]
577
+ let lsps1_has_active_requests = self
578
+ . lsps1_service_handler
579
+ . as_ref ( )
580
+ . map_or ( false , |h| h. has_active_requests ( sender_node_id) ) ;
581
+ #[ cfg( not( lsps1_service) ) ]
582
+ let lsps1_has_active_requests = false ;
583
+
584
+ if !lsps5_service_handler. can_accept_request (
585
+ sender_node_id,
586
+ lsps2_has_active_requests,
587
+ lsps1_has_active_requests,
588
+ ) {
589
+ return Err ( LightningError {
590
+ err : format ! (
591
+ "Rejecting LSPS5 request from {:?} without prior activity (requires open channel or active LSPS1 or LSPS2 flow)" ,
592
+ sender_node_id
593
+ ) ,
594
+ action : ErrorAction :: IgnoreAndLog ( Level :: Debug ) ,
595
+ } ) ;
596
+ }
595
597
}
596
598
597
- lsps5_service_handler. handle_message ( msg, sender_node_id) ?;
599
+ lsps5_service_handler. handle_message ( msg. clone ( ) , sender_node_id) ?;
598
600
} ,
599
601
None => {
600
602
return Err ( LightningError { err : format ! ( "Received LSPS5 request message without LSPS5 service handler configured. From node = {:?}" , sender_node_id) , action : ErrorAction :: IgnoreAndLog ( Level :: Debug ) } ) ;
0 commit comments