Browse Source

p2p/discover: bond with seed nodes too (runs only if findnode failed)

Péter Szilágyi 10 years ago
parent
commit
612f01400f
1 changed files with 4 additions and 7 deletions
  1. 4 7
      p2p/discover/table.go

+ 4 - 7
p2p/discover/table.go

@@ -278,14 +278,11 @@ func (tab *Table) refresh() {
 		for _, seed := range seeds {
 			glog.V(logger.Debug).Infoln("Seeding network with", seed)
 		}
-		peers := append(tab.nursery, seeds...)
-
-		// Bootstrap the table with a self lookup
-		if len(peers) > 0 {
-			tab.mutex.Lock()
-			tab.add(peers)
-			tab.mutex.Unlock()
+		nodes := append(tab.nursery, seeds...)
 
+		// Bond with all the seed nodes (will pingpong only if failed recently)
+		bonded := tab.bondall(nodes)
+		if len(bonded) > 0 {
 			tab.Lookup(tab.self.ID)
 		}
 		// TODO: the Kademlia paper says that we're supposed to perform