@@ -403,6 +403,12 @@ where TBehaviour: NetworkBehaviour<ProtocolsHandler = THandler>,
403
403
return Err ( error)
404
404
}
405
405
}
406
+ } else {
407
+ log:: debug!(
408
+ "New dialing attempt to disconnected peer {:?} failed: no address." ,
409
+ peer_id
410
+ ) ;
411
+ me. behaviour . inject_dial_failure ( & peer_id) ;
406
412
}
407
413
Ok ( false )
408
414
} ,
@@ -419,6 +425,12 @@ where TBehaviour: NetworkBehaviour<ProtocolsHandler = THandler>,
419
425
return Err ( error)
420
426
}
421
427
}
428
+ } else {
429
+ log:: debug!(
430
+ "New dialing attempt to disconnected peer {:?} failed: no address." ,
431
+ peer_id
432
+ ) ;
433
+ me. behaviour . inject_dial_failure ( & peer_id) ;
422
434
}
423
435
Ok ( false )
424
436
}
@@ -427,6 +439,7 @@ where TBehaviour: NetworkBehaviour<ProtocolsHandler = THandler>,
427
439
Ok ( false )
428
440
} ,
429
441
Peer :: Local => {
442
+ me. behaviour . inject_dial_failure ( & peer_id) ;
430
443
Err ( ConnectionLimit { current : 0 , limit : 0 } )
431
444
}
432
445
}
@@ -701,34 +714,25 @@ where TBehaviour: NetworkBehaviour<ProtocolsHandler = THandler>,
701
714
if this. banned_peers . contains ( & peer_id) {
702
715
this. behaviour . inject_dial_failure ( & peer_id) ;
703
716
} else {
704
- let result = match condition {
717
+ let condition_matched = match condition {
705
718
DialPeerCondition :: Disconnected
706
- if this. network . is_disconnected ( & peer_id) =>
707
- {
708
- ExpandedSwarm :: dial ( this, & peer_id)
709
- }
719
+ if this. network . is_disconnected ( & peer_id) => true ,
710
720
DialPeerCondition :: NotDialing
711
- if !this. network . is_dialing ( & peer_id) =>
712
- {
713
- ExpandedSwarm :: dial ( this, & peer_id)
714
- }
715
- _ => {
716
- log:: trace!( "Condition for new dialing attempt to {:?} not met: {:?}" ,
717
- peer_id, condition) ;
718
- if let Some ( mut peer) = this. network . peer ( peer_id. clone ( ) ) . into_dialing ( ) {
719
- let addrs = this. behaviour . addresses_of_peer ( peer. id ( ) ) ;
720
- peer. connection ( ) . add_addresses ( addrs) ;
721
- }
722
- Ok ( false )
723
- }
721
+ if !this. network . is_dialing ( & peer_id) => true ,
722
+ _ => false
724
723
} ;
725
- match result {
726
- Ok ( false ) => { } ,
727
- Ok ( true ) => return Poll :: Ready ( SwarmEvent :: Dialing ( peer_id) ) ,
728
- Err ( err) => {
729
- log:: debug!( "Initiating dialing attempt to {:?} failed: {:?}" ,
730
- & peer_id, err) ;
731
- this. behaviour . inject_dial_failure ( & peer_id) ;
724
+
725
+ if condition_matched {
726
+ if let Ok ( true ) = ExpandedSwarm :: dial ( this, & peer_id) {
727
+ return Poll :: Ready ( SwarmEvent :: Dialing ( peer_id) ) ;
728
+ }
729
+
730
+ } else {
731
+ log:: trace!( "Condition for new dialing attempt to {:?} not met: {:?}" ,
732
+ peer_id, condition) ;
733
+ if let Some ( mut peer) = this. network . peer ( peer_id. clone ( ) ) . into_dialing ( ) {
734
+ let addrs = this. behaviour . addresses_of_peer ( peer. id ( ) ) ;
735
+ peer. connection ( ) . add_addresses ( addrs) ;
732
736
}
733
737
}
734
738
}
0 commit comments