From 905abf1388a89db2c7ae4ee7df422aaa19796964 Mon Sep 17 00:00:00 2001 From: Mehmet Gurevin Date: Sun, 11 Nov 2018 16:14:52 +0300 Subject: [PATCH] p2p: re-check after sleeps (#2664) * p2p: re-check after sleeps * use NodeInfo as an interface * Revert "use NodeInfo as an interface" This reverts commit 5f7d055e6c745ac8c8e5a9a7f0bd5ea5bc3d448c. * Revert "p2p: re-check after sleeps" This reverts commit 7f41070da070eadd3312efce1cc821aaf3e23771. * preserve dial to itself * ignore ensured connections while re-connecting * re-check after sleep * keep protocol definition on net addresses * decrease log level * Revert "preserve dial to itself" This reverts commit 0c6e0fc58da78c378c32bb9ded2dd04ad5e754a9. * correct func comment according to modification Co-Authored-By: mgurevin --- p2p/switch.go | 12 ++++++++++-- 1 file changed, 10 insertions(+), 2 deletions(-) diff --git a/p2p/switch.go b/p2p/switch.go index 47a42cd0..b70900ea 100644 --- a/p2p/switch.go +++ b/p2p/switch.go @@ -328,6 +328,11 @@ func (sw *Switch) reconnectToPeer(addr *NetAddress) { return } + if sw.IsDialingOrExistingAddress(addr) { + sw.Logger.Debug("Peer connection has been established or dialed while we waiting next try", "addr", addr) + return + } + err := sw.DialPeerWithAddress(addr, true) if err == nil { return // success @@ -415,12 +420,15 @@ func (sw *Switch) DialPeersAsync(addrBook AddrBook, peers []string, persistent b if addr.Same(ourAddr) { sw.Logger.Debug("Ignore attempt to connect to ourselves", "addr", addr, "ourAddr", ourAddr) return - } else if sw.IsDialingOrExistingAddress(addr) { + } + + sw.randomSleep(0) + + if sw.IsDialingOrExistingAddress(addr) { sw.Logger.Debug("Ignore attempt to connect to an existing peer", "addr", addr) return } - sw.randomSleep(0) err := sw.DialPeerWithAddress(addr, persistent) if err != nil { switch err.(type) {