From 281622aa49097fcbb520bf34f3045ed832b2217a Mon Sep 17 00:00:00 2001 From: Kleissner Date: Tue, 14 Dec 2021 02:05:08 +0100 Subject: [PATCH] NodelistLookup function --- Kademlia.go | 4 +--- Peer ID.go | 11 +++++++++++ 2 files changed, 12 insertions(+), 3 deletions(-) diff --git a/Kademlia.go b/Kademlia.go index f0189be..3eb7cb7 100644 --- a/Kademlia.go +++ b/Kademlia.go @@ -182,9 +182,7 @@ func IsNodeContact(nodeID []byte) (node *dht.Node, peer *PeerInfo) { // FindNode finds a node via the DHT func FindNode(nodeID []byte, Timeout time.Duration) (node *dht.Node, peer *PeerInfo, err error) { // first check if in mirrored node list - var nodeID2 [protocol.HashSize]byte - copy(nodeID2[:], nodeID) - if peer, ok := nodeList[nodeID2]; ok { + if peer = NodelistLookup(nodeID); peer != nil { return nil, peer, nil } diff --git a/Peer ID.go b/Peer ID.go index b4786da..3499421 100644 --- a/Peer ID.go +++ b/Peer ID.go @@ -204,6 +204,17 @@ func PeerlistLookup(publicKey *btcec.PublicKey) (peer *PeerInfo) { return peerList[publicKey2Compressed(publicKey)] } +// NodelistLookup returns the peer from the list with the node ID +func NodelistLookup(nodeID []byte) (peer *PeerInfo) { + peerlistMutex.RLock() + defer peerlistMutex.RUnlock() + + var nodeID2 [protocol.HashSize]byte + copy(nodeID2[:], nodeID) + + return nodeList[nodeID2] +} + // PeerlistCount returns the current count of peers in the peer list func PeerlistCount() (count int) { peerlistMutex.RLock()