mirror of
https://github.com/ethereum/go-ethereum.git
synced 2026-03-17 00:20:39 +00:00
p2p/connmanager: avoid dropping trusted peers
Signed-off-by: Csaba Kiraly <csaba.kiraly@gmail.com>
This commit is contained in:
parent
7a49bf09c1
commit
91c1c30996
1 changed files with 4 additions and 2 deletions
|
|
@ -132,8 +132,10 @@ func (cm *connManager) numPeers() (int, int, int) {
|
|||
func (cm *connManager) dropRandomPeer() bool {
|
||||
peers := cm.peersFunc()
|
||||
|
||||
// only drop from dialed peers
|
||||
selectDroppable := func(p *Peer) bool { return !p.rw.is(inboundConn) }
|
||||
// Only drop from dyndialed peers. Avoid dropping trusted peers.
|
||||
selectDroppable := func(p *Peer) bool {
|
||||
return p.rw.is(dynDialedConn) && !p.rw.is(trustedConn)
|
||||
}
|
||||
droppable := filter(peers, selectDroppable)
|
||||
if len(droppable) > 0 {
|
||||
p := droppable[cm.rand.Intn(len(droppable))]
|
||||
|
|
|
|||
Loading…
Reference in a new issue