p2p/discover: fix bug in lookup

This commit is contained in:
Felix Lange 2025-09-05 14:15:09 +02:00
parent 4ed8f5ee2b
commit e58e7f7927

View file

@ -78,7 +78,8 @@ func (it *lookup) advance() bool {
select { select {
case nodes := <-it.replyCh: case nodes := <-it.replyCh:
it.queries-- it.queries--
if it.addNodes(nodes) { it.addNodes(nodes)
if !it.empty() {
return true return true
} }
case <-it.cancelCh: case <-it.cancelCh:
@ -88,7 +89,7 @@ func (it *lookup) advance() bool {
return false return false
} }
func (it *lookup) addNodes(nodes []*enode.Node) (done bool) { func (it *lookup) addNodes(nodes []*enode.Node) {
it.replyBuffer = it.replyBuffer[:0] it.replyBuffer = it.replyBuffer[:0]
for _, n := range nodes { for _, n := range nodes {
if n != nil && !it.seen[n.ID()] { if n != nil && !it.seen[n.ID()] {
@ -97,7 +98,6 @@ func (it *lookup) addNodes(nodes []*enode.Node) (done bool) {
it.replyBuffer = append(it.replyBuffer, n) it.replyBuffer = append(it.replyBuffer, n)
} }
} }
return len(it.replyBuffer) == 0
} }
func (it *lookup) shutdown() { func (it *lookup) shutdown() {