@@ -1226,45 +1226,43 @@ where
1226
1226
& self , peer_state_lock : & mut MutexGuard < ' a , PeerState > , request_id : LSPSRequestId ,
1227
1227
counterparty_node_id : PublicKey , request : LSPS2Request ,
1228
1228
) -> ( Result < ( ) , LightningError > , Option < LSPSMessage > ) {
1229
- if self . total_pending_requests . load ( Ordering :: Relaxed ) >= MAX_TOTAL_PENDING_REQUESTS {
1230
- let response = LSPS2Response :: BuyError ( LSPSResponseError {
1229
+ let create_pending_request_limit_exceeded_response = | error_message : String | {
1230
+ let error_details = LSPSResponseError {
1231
1231
code : LSPS0_CLIENT_REJECTED_ERROR_CODE ,
1232
- message : "Reached maximum number of pending requests. Please try again later."
1233
- . to_string ( ) ,
1232
+ message : error_message. clone ( ) ,
1234
1233
data : None ,
1234
+ } ;
1235
+ let response = match & request {
1236
+ LSPS2Request :: GetInfo ( _) => LSPS2Response :: GetInfoError ( error_details) ,
1237
+ LSPS2Request :: Buy ( _) => LSPS2Response :: BuyError ( error_details) ,
1238
+ } ;
1239
+ let msg = Some ( LSPS2Message :: Response ( request_id. clone ( ) , response) . into ( ) ) ;
1240
+
1241
+ let result = Err ( LightningError {
1242
+ err : error_message,
1243
+ action : ErrorAction :: IgnoreAndLog ( Level :: Debug ) ,
1235
1244
} ) ;
1236
- let msg = Some ( LSPS2Message :: Response ( request_id, response) . into ( ) ) ;
1245
+ ( result, msg)
1246
+ } ;
1237
1247
1238
- let err = format ! (
1239
- "Peer {} reached maximum number of total pending requests: {}" ,
1248
+ if self . total_pending_requests . load ( Ordering :: Relaxed ) >= MAX_TOTAL_PENDING_REQUESTS {
1249
+ let error_message = format ! (
1250
+ "reached maximum number of total pending requests {}: {}" ,
1240
1251
counterparty_node_id, MAX_TOTAL_PENDING_REQUESTS
1241
1252
) ;
1242
- let result =
1243
- Err ( LightningError { err, action : ErrorAction :: IgnoreAndLog ( Level :: Debug ) } ) ;
1244
- return ( result, msg) ;
1253
+ return create_pending_request_limit_exceeded_response ( error_message) ;
1245
1254
}
1246
1255
1247
1256
if peer_state_lock. pending_requests_and_channels ( ) < MAX_PENDING_REQUESTS_PER_PEER {
1248
1257
peer_state_lock. pending_requests . insert ( request_id, request) ;
1249
1258
self . total_pending_requests . fetch_add ( 1 , Ordering :: Relaxed ) ;
1250
1259
( Ok ( ( ) ) , None )
1251
1260
} else {
1252
- let response = LSPS2Response :: BuyError ( LSPSResponseError {
1253
- code : LSPS0_CLIENT_REJECTED_ERROR_CODE ,
1254
- message : "Reached maximum number of pending requests. Please try again later."
1255
- . to_string ( ) ,
1256
- data : None ,
1257
- } ) ;
1258
- let msg = Some ( LSPS2Message :: Response ( request_id, response) . into ( ) ) ;
1259
-
1260
- let err = format ! (
1261
- "Peer {} reached maximum number of pending requests: {}" ,
1261
+ let error_message = format ! (
1262
+ "reached maximum number of pending requests for peer {}: {}" ,
1262
1263
counterparty_node_id, MAX_PENDING_REQUESTS_PER_PEER
1263
1264
) ;
1264
- let result =
1265
- Err ( LightningError { err, action : ErrorAction :: IgnoreAndLog ( Level :: Debug ) } ) ;
1266
-
1267
- ( result, msg)
1265
+ create_pending_request_limit_exceeded_response ( error_message)
1268
1266
}
1269
1267
}
1270
1268
0 commit comments