p2p/discover: using slices.Contains (#29395)

This commit is contained in:
cui 2024-04-04 18:24:49 +08:00 committed by GitHub
parent 8bd0334168
commit 9dfe728909
No known key found for this signature in database
GPG Key ID: B5690EEEBB952194
2 changed files with 3 additions and 11 deletions

@ -285,7 +285,7 @@ func (tn *preminedTestnet) neighborsAtDistances(base *enode.Node, distances []ui
for i := range lookupTestnet.dists[d] { for i := range lookupTestnet.dists[d] {
n := lookupTestnet.node(d, i) n := lookupTestnet.node(d, i)
d := enode.LogDist(base.ID(), n.ID()) d := enode.LogDist(base.ID(), n.ID())
if containsUint(uint(d), distances) { if slices.Contains(distances, uint(d)) {
result = append(result, n) result = append(result, n)
if len(result) >= elems { if len(result) >= elems {
return result return result

@ -25,6 +25,7 @@ import (
"fmt" "fmt"
"io" "io"
"net" "net"
"slices"
"sync" "sync"
"time" "time"
@ -437,7 +438,7 @@ func (t *UDPv5) verifyResponseNode(c *callV5, r *enr.Record, distances []uint, s
} }
if distances != nil { if distances != nil {
nd := enode.LogDist(c.id, node.ID()) nd := enode.LogDist(c.id, node.ID())
if !containsUint(uint(nd), distances) { if !slices.Contains(distances, uint(nd)) {
return nil, errors.New("does not match any requested distance") return nil, errors.New("does not match any requested distance")
} }
} }
@ -448,15 +449,6 @@ func (t *UDPv5) verifyResponseNode(c *callV5, r *enr.Record, distances []uint, s
return node, nil return node, nil
} }
func containsUint(x uint, xs []uint) bool {
for _, v := range xs {
if x == v {
return true
}
}
return false
}
// callToNode sends the given call and sets up a handler for response packets (of message // callToNode sends the given call and sets up a handler for response packets (of message
// type responseType). Responses are dispatched to the call's response channel. // type responseType). Responses are dispatched to the call's response channel.
func (t *UDPv5) callToNode(n *enode.Node, responseType byte, req v5wire.Packet) *callV5 { func (t *UDPv5) callToNode(n *enode.Node, responseType byte, req v5wire.Packet) *callV5 {