@@ -1348,45 +1348,44 @@ where
13481348 & self , peer_state_lock : & mut MutexGuard < ' a , PeerState > , request_id : LSPSRequestId ,
13491349 counterparty_node_id : PublicKey , request : LSPS2Request ,
13501350 ) -> ( Result < ( ) , LightningError > , Option < LSPSMessage > ) {
1351- if self . total_pending_requests . load ( Ordering :: Relaxed ) >= MAX_TOTAL_PENDING_REQUESTS {
1352- let response = LSPS2Response :: BuyError ( LSPSResponseError {
1351+ let create_pending_request_limit_exceeded_response = | error_message : String | {
1352+ let error_details = LSPSResponseError {
13531353 code : LSPS0_CLIENT_REJECTED_ERROR_CODE ,
13541354 message : "Reached maximum number of pending requests. Please try again later."
13551355 . to_string ( ) ,
13561356 data : None ,
1357+ } ;
1358+ let response = match & request {
1359+ LSPS2Request :: GetInfo ( _) => LSPS2Response :: GetInfoError ( error_details) ,
1360+ LSPS2Request :: Buy ( _) => LSPS2Response :: BuyError ( error_details) ,
1361+ } ;
1362+ let msg = Some ( LSPS2Message :: Response ( request_id. clone ( ) , response) . into ( ) ) ;
1363+
1364+ let result = Err ( LightningError {
1365+ err : error_message,
1366+ action : ErrorAction :: IgnoreAndLog ( Level :: Debug ) ,
13571367 } ) ;
1358- let msg = Some ( LSPS2Message :: Response ( request_id, response) . into ( ) ) ;
1368+ ( result, msg)
1369+ } ;
13591370
1360- let err = format ! (
1361- "Peer {} reached maximum number of total pending requests: {}" ,
1362- counterparty_node_id, MAX_TOTAL_PENDING_REQUESTS
1371+ if self . total_pending_requests . load ( Ordering :: Relaxed ) >= MAX_TOTAL_PENDING_REQUESTS {
1372+ let error_message = format ! (
1373+ "Reached maximum number of total pending requests: {}" ,
1374+ MAX_TOTAL_PENDING_REQUESTS
13631375 ) ;
1364- let result =
1365- Err ( LightningError { err, action : ErrorAction :: IgnoreAndLog ( Level :: Debug ) } ) ;
1366- return ( result, msg) ;
1376+ return create_pending_request_limit_exceeded_response ( error_message) ;
13671377 }
13681378
13691379 if peer_state_lock. pending_requests_and_channels ( ) < MAX_PENDING_REQUESTS_PER_PEER {
13701380 peer_state_lock. pending_requests . insert ( request_id, request) ;
13711381 self . total_pending_requests . fetch_add ( 1 , Ordering :: Relaxed ) ;
13721382 ( Ok ( ( ) ) , None )
13731383 } else {
1374- let response = LSPS2Response :: BuyError ( LSPSResponseError {
1375- code : LSPS0_CLIENT_REJECTED_ERROR_CODE ,
1376- message : "Reached maximum number of pending requests. Please try again later."
1377- . to_string ( ) ,
1378- data : None ,
1379- } ) ;
1380- let msg = Some ( LSPS2Message :: Response ( request_id, response) . into ( ) ) ;
1381-
1382- let err = format ! (
1384+ let error_message = format ! (
13831385 "Peer {} reached maximum number of pending requests: {}" ,
13841386 counterparty_node_id, MAX_PENDING_REQUESTS_PER_PEER
13851387 ) ;
1386- let result =
1387- Err ( LightningError { err, action : ErrorAction :: IgnoreAndLog ( Level :: Debug ) } ) ;
1388-
1389- ( result, msg)
1388+ create_pending_request_limit_exceeded_response ( error_message)
13901389 }
13911390 }
13921391
0 commit comments