p2p: ensure we don't dial ourself

addPeer doesn't allow self connects, but we can avoid opening
connections in the first place.
This commit is contained in:
Felix Lange 2015-02-13 14:50:14 +01:00
parent 7101f44998
commit 5cc1256fd6

View File

@ -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
} }