@@ -1348,45 +1348,43 @@ where
1348
1348
& self , peer_state_lock : & mut MutexGuard < ' a , PeerState > , request_id : LSPSRequestId ,
1349
1349
counterparty_node_id : PublicKey , request : LSPS2Request ,
1350
1350
) -> ( 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 {
1353
1353
code : LSPS0_CLIENT_REJECTED_ERROR_CODE ,
1354
- message : "Reached maximum number of pending requests. Please try again later."
1355
- . to_string ( ) ,
1354
+ message : error_message. clone ( ) ,
1356
1355
data : None ,
1356
+ } ;
1357
+ let response = match & request {
1358
+ LSPS2Request :: GetInfo ( _) => LSPS2Response :: GetInfoError ( error_details) ,
1359
+ LSPS2Request :: Buy ( _) => LSPS2Response :: BuyError ( error_details) ,
1360
+ } ;
1361
+ let msg = Some ( LSPS2Message :: Response ( request_id. clone ( ) , response) . into ( ) ) ;
1362
+
1363
+ let result = Err ( LightningError {
1364
+ err : error_message,
1365
+ action : ErrorAction :: IgnoreAndLog ( Level :: Debug ) ,
1357
1366
} ) ;
1358
- let msg = Some ( LSPS2Message :: Response ( request_id, response) . into ( ) ) ;
1367
+ ( result, msg)
1368
+ } ;
1359
1369
1360
- let err = format ! (
1361
- "Peer {} reached maximum number of total pending requests: {}" ,
1370
+ if self . total_pending_requests . load ( Ordering :: Relaxed ) >= MAX_TOTAL_PENDING_REQUESTS {
1371
+ let error_message = format ! (
1372
+ "reached maximum number of total pending requests {}: {}" ,
1362
1373
counterparty_node_id, MAX_TOTAL_PENDING_REQUESTS
1363
1374
) ;
1364
- let result =
1365
- Err ( LightningError { err, action : ErrorAction :: IgnoreAndLog ( Level :: Debug ) } ) ;
1366
- return ( result, msg) ;
1375
+ return create_pending_request_limit_exceeded_response ( error_message) ;
1367
1376
}
1368
1377
1369
1378
if peer_state_lock. pending_requests_and_channels ( ) < MAX_PENDING_REQUESTS_PER_PEER {
1370
1379
peer_state_lock. pending_requests . insert ( request_id, request) ;
1371
1380
self . total_pending_requests . fetch_add ( 1 , Ordering :: Relaxed ) ;
1372
1381
( Ok ( ( ) ) , None )
1373
1382
} 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 ! (
1383
- "Peer {} reached maximum number of pending requests: {}" ,
1383
+ let error_message = format ! (
1384
+ "reached maximum number of pending requests for peer {}: {}" ,
1384
1385
counterparty_node_id, MAX_PENDING_REQUESTS_PER_PEER
1385
1386
) ;
1386
- let result =
1387
- Err ( LightningError { err, action : ErrorAction :: IgnoreAndLog ( Level :: Debug ) } ) ;
1388
-
1389
- ( result, msg)
1387
+ create_pending_request_limit_exceeded_response ( error_message)
1390
1388
}
1391
1389
}
1392
1390
0 commit comments