eth: hard disconnect if a peer is flaky
This commit is contained in:
		
							parent
							
								
									8951a03db3
								
							
						
					
					
						commit
						5235e01b8d
					
				| @ -93,14 +93,22 @@ func NewProtocolManager(protocolVersion, networkId int, mux *event.TypeMux, txpo | ||||
| } | ||||
| 
 | ||||
| func (pm *ProtocolManager) removePeer(id string) { | ||||
| 	// Unregister the peer from the downloader
 | ||||
| 	pm.downloader.UnregisterPeer(id) | ||||
| 	// Short circuit if the peer was already removed
 | ||||
| 	peer := pm.peers.Peer(id) | ||||
| 	if peer == nil { | ||||
| 		return | ||||
| 	} | ||||
| 	glog.V(logger.Debug).Infoln("Removing peer", id) | ||||
| 
 | ||||
| 	// Remove the peer from the Ethereum peer set too
 | ||||
| 	glog.V(logger.Detail).Infoln("Removing peer", id) | ||||
| 	// Unregister the peer from the downloader and Ethereum peer set
 | ||||
| 	pm.downloader.UnregisterPeer(id) | ||||
| 	if err := pm.peers.Unregister(id); err != nil { | ||||
| 		glog.V(logger.Error).Infoln("Removal failed:", err) | ||||
| 	} | ||||
| 	// Hard disconnect at the networking layer
 | ||||
| 	if peer != nil { | ||||
| 		peer.Peer.Disconnect(p2p.DiscUselessPeer) | ||||
| 	} | ||||
| } | ||||
| 
 | ||||
| func (pm *ProtocolManager) Start() { | ||||
|  | ||||
		Loading…
	
		Reference in New Issue
	
	Block a user