p2p: ensure we don't dial ourself

addPeer doesn't allow self connects, but we can avoid opening
connections in the first place.
pull/292/head
Felix Lange 10 years ago
parent 7101f44998
commit 5cc1256fd6
  1. 5
      p2p/server.go

@ -289,10 +289,13 @@ func (srv *Server) dialLoop() {
go srv.findPeers() go srv.findPeers()
case dest := <-srv.peerConnect: case dest := <-srv.peerConnect:
// avoid dialing nodes that are already connected.
// there is another check for this in addPeer,
// which runs after the handshake.
srv.lock.Lock() srv.lock.Lock()
_, isconnected := srv.peers[dest.ID] _, isconnected := srv.peers[dest.ID]
srv.lock.Unlock() srv.lock.Unlock()
if isconnected || dialing[dest.ID] { if isconnected || dialing[dest.ID] || dest.ID == srv.ntab.Self() {
continue continue
} }

Loading…
Cancel
Save