aboutsummaryrefslogtreecommitdiffstats
path: root/p2p
diff options
context:
space:
mode:
authorSonic <sonic@dexon.org>2019-04-03 16:28:29 +0800
committerWei-Ning Huang <w@byzantine-lab.io>2019-06-15 22:09:55 +0800
commitc597b2ff15aefcc73d55a0a3f8c8e0f6e18f083c (patch)
treedef84e1c48925e637ff47bb9c8ee382666e4f752 /p2p
parentaff2c3533badc7415c223580c591a3274330185c (diff)
downloadgo-tangerine-c597b2ff15aefcc73d55a0a3f8c8e0f6e18f083c.tar.gz
go-tangerine-c597b2ff15aefcc73d55a0a3f8c8e0f6e18f083c.tar.zst
go-tangerine-c597b2ff15aefcc73d55a0a3f8c8e0f6e18f083c.zip
dex: remove node table (#330)
* dex: remove node table Node table is not so useful, go back to rely on kademlia * p2p: fix direct dial still have resolve delay
Diffstat (limited to 'p2p')
-rw-r--r--p2p/dial.go13
1 files changed, 6 insertions, 7 deletions
diff --git a/p2p/dial.go b/p2p/dial.go
index 583f02f6b..8bb39f9e8 100644
--- a/p2p/dial.go
+++ b/p2p/dial.go
@@ -226,7 +226,9 @@ func (s *dialstate) newTasks(nRunning int, peers map[enode.ID]*Peer, now time.Ti
delete(s.direct, t.dest.ID())
case nil:
s.dialing[id] = t.flags
- newtasks = append(newtasks, t)
+ // New a task instance with no lastResolved, resolveDelay here,
+ // so that we can pass the resolve delay check.
+ newtasks = append(newtasks, &dialTask{flags: t.flags, dest: t.dest})
}
}
@@ -363,12 +365,9 @@ func (t *dialTask) resolve(srv *Server) bool {
resolved := srv.ntab.Resolve(t.dest)
t.lastResolved = time.Now()
if resolved == nil {
- // Only backoff delay if this is not direct connection.
- if t.flags&directDialedConn == 0 {
- t.resolveDelay *= 2
- if t.resolveDelay > maxResolveDelay {
- t.resolveDelay = maxResolveDelay
- }
+ t.resolveDelay *= 2
+ if t.resolveDelay > maxResolveDelay {
+ t.resolveDelay = maxResolveDelay
}
log.Debug("Resolving node failed", "id", t.dest.ID(), "newdelay", t.resolveDelay)
return false