@@ -4280,7 +4280,7 @@ where
4280
4280
unfunded_channels += 1 ;
4281
4281
}
4282
4282
}
4283
- if unfunded_channels > MAX_UNFUNDED_CHANS_PER_PEER {
4283
+ if unfunded_channels >= MAX_UNFUNDED_CHANS_PER_PEER {
4284
4284
return Err ( MsgHandleErrInternal :: send_err_msg_no_close (
4285
4285
format ! ( "Refusing more than {} unfunded channels." , MAX_UNFUNDED_CHANS_PER_PEER ) ,
4286
4286
msg. temporary_channel_id . clone ( ) ) ) ;
@@ -6239,15 +6239,18 @@ where
6239
6239
return Err ( ( ) ) ;
6240
6240
}
6241
6241
6242
- log_debug ! ( self . logger, "Generating channel_reestablish events for {}" , log_pubkey!( counterparty_node_id) ) ;
6243
-
6244
6242
let _persistence_guard = PersistenceNotifierGuard :: notify_on_drop ( & self . total_consistency_lock , & self . persistence_notifier ) ;
6245
6243
6246
6244
let mut peers_with_unfunded_channels = 0 ;
6245
+ let mut peer_has_channels = false ;
6247
6246
let best_block_height = self . best_block . read ( ) . unwrap ( ) . height ( ) ;
6248
6247
{
6249
6248
let peer_state_lock = self . per_peer_state . read ( ) . unwrap ( ) ;
6250
- for ( _, peer) in peer_state_lock. iter ( ) {
6249
+ for ( node_id, peer) in peer_state_lock. iter ( ) {
6250
+ if node_id == counterparty_node_id {
6251
+ peer_has_channels = true ;
6252
+ break ;
6253
+ }
6251
6254
let mut has_funded_channels = false ;
6252
6255
for ( _, chan) in peer. lock ( ) . unwrap ( ) . channel_by_id . iter ( ) {
6253
6256
if chan. get_funding_tx_confirmations ( best_block_height) != 0 || chan. minimum_depth ( ) == 0 {
@@ -6257,7 +6260,7 @@ where
6257
6260
if !has_funded_channels { peers_with_unfunded_channels += 1 }
6258
6261
}
6259
6262
}
6260
- if inbound && peers_with_unfunded_channels > MAX_NO_CHANNEL_PEERS {
6263
+ if !peer_has_channels && inbound && peers_with_unfunded_channels >= MAX_NO_CHANNEL_PEERS {
6261
6264
return Err ( ( ) ) ;
6262
6265
}
6263
6266
@@ -6281,8 +6284,9 @@ where
6281
6284
}
6282
6285
}
6283
6286
6284
- let per_peer_state = self . per_peer_state . read ( ) . unwrap ( ) ;
6287
+ log_debug ! ( self . logger , "Generating channel_reestablish events for {}" , log_pubkey! ( counterparty_node_id ) ) ;
6285
6288
6289
+ let per_peer_state = self . per_peer_state . read ( ) . unwrap ( ) ;
6286
6290
for ( _cp_id, peer_state_mutex) in per_peer_state. iter ( ) {
6287
6291
let mut peer_state_lock = peer_state_mutex. lock ( ) . unwrap ( ) ;
6288
6292
let peer_state = & mut * peer_state_lock;
0 commit comments