aboutsummaryrefslogtreecommitdiffstats
path: root/p2p/discover/table_util_test.go
diff options
context:
space:
mode:
authorFelix Lange <fjl@users.noreply.github.com>2019-01-31 18:48:54 +0800
committerFelix Lange <fjl@twurst.com>2019-01-31 18:51:13 +0800
commit86ec742f975d825f42dd69ebf17b0adaa66542c0 (patch)
tree62093f7c5436664adc5d5db9aec65ed1a6e6bd0c /p2p/discover/table_util_test.go
parentd9a07fba67d2fc5944de9b62136233d367dc98b0 (diff)
downloadgo-tangerine-86ec742f975d825f42dd69ebf17b0adaa66542c0.tar.gz
go-tangerine-86ec742f975d825f42dd69ebf17b0adaa66542c0.tar.zst
go-tangerine-86ec742f975d825f42dd69ebf17b0adaa66542c0.zip
p2p/discover: improve table addition code (#18974)
This change clears up confusion around the two ways in which nodes can be added to the table. When a neighbors packet is received as a reply to findnode, the nodes contained in the reply are added as 'seen' entries if sufficient space is available. When a ping is received and the endpoint verification has taken place, the remote node is added as a 'verified' entry or moved to the front of the bucket if present. This also updates the node's IP address and port if they have changed.
Diffstat (limited to 'p2p/discover/table_util_test.go')
-rw-r--r--p2p/discover/table_util_test.go20
1 files changed, 1 insertions, 19 deletions
diff --git a/p2p/discover/table_util_test.go b/p2p/discover/table_util_test.go
index 3ce582b99..e61c9e6fc 100644
--- a/p2p/discover/table_util_test.go
+++ b/p2p/discover/table_util_test.go
@@ -86,17 +86,8 @@ func fillBucket(tab *Table, n *node) (last *node) {
// fillTable adds nodes the table to the end of their corresponding bucket
// if the bucket is not full. The caller must not hold tab.mutex.
func fillTable(tab *Table, nodes []*node) {
- tab.mutex.Lock()
- defer tab.mutex.Unlock()
-
for _, n := range nodes {
- if n.ID() == tab.self().ID() {
- continue // don't add self
- }
- b := tab.bucket(n.ID())
- if len(b.entries) < bucketSize {
- tab.bumpOrAdd(b, n)
- }
+ tab.addSeenNode(n)
}
}
@@ -154,15 +145,6 @@ func hasDuplicates(slice []*node) bool {
return false
}
-func contains(ns []*node, id enode.ID) bool {
- for _, n := range ns {
- if n.ID() == id {
- return true
- }
- }
- return false
-}
-
func sortedByDistanceTo(distbase enode.ID, slice []*node) bool {
var last enode.ID
for i, e := range slice {