@@ -568,30 +568,34 @@ where
568568			LSPSMessage :: LSPS5 ( msg @ LSPS5Message :: Request ( ..) )  => { 
569569				match  & self . lsps5_service_handler  { 
570570					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  let  LSPS5Message :: Request ( _,  ref  req)  = msg { 
572+ 							if  req. is_state_allocating ( )  { 
573+ 								let  lsps2_has_active_requests = self 
574+ 									. lsps2_service_handler 
575+ 									. as_ref ( ) 
576+ 									. map_or ( false ,  |h| h. has_active_requests ( sender_node_id) ) ; 
577+ 								#[ cfg( lsps1_service) ]  
578+ 								let  lsps1_has_active_requests = self 
579+ 									. lsps1_service_handler 
580+ 									. as_ref ( ) 
581+ 									. map_or ( false ,  |h| h. has_active_requests ( sender_node_id) ) ; 
582+ 								#[ cfg( not( lsps1_service) ) ]  
583+ 								let  lsps1_has_active_requests = false ; 
584+ 
585+ 								if  !lsps5_service_handler. can_accept_request ( 
586+ 									sender_node_id, 
587+ 									lsps2_has_active_requests, 
588+ 									lsps1_has_active_requests, 
589+ 								)  { 
590+ 									return  Err ( LightningError  { 
591+ 										err :  format ! ( 
592+ 											"Rejecting LSPS5 request from {:?} without prior activity (requires open channel or active LSPS1 or LSPS2 flow)" , 
593+ 											sender_node_id
594+ 										) , 
595+ 										action :  ErrorAction :: IgnoreAndLog ( Level :: Debug ) , 
596+ 									} ) ; 
597+ 								} 
598+ 							} 
595599						} 
596600
597601						lsps5_service_handler. handle_message ( msg,  sender_node_id) ?; 
0 commit comments