mirror of https://github.com/status-im/nim-eth.git
Fixed discovery busyloop when no bootnodes provided
This commit is contained in:
parent
b84c228364
commit
02843c0013
|
@ -420,18 +420,21 @@ proc bootstrap*(k: KademliaProtocol, bootstrapNodes: seq[Node], retries = 0) {.a
|
|||
## Bond with bootstrap nodes and do initial lookup. Retry `retries` times
|
||||
## in case of failure, or indefinitely if `retries` is 0.
|
||||
var numTries = 0
|
||||
if bootstrapNodes.len != 0:
|
||||
while true:
|
||||
let bonded = await all(bootstrapNodes.mapIt(k.bond(it)))
|
||||
if true notin bonded:
|
||||
info "Failed to bond with bootstrap nodes"
|
||||
inc numTries
|
||||
if retries == 0 or numTries < retries:
|
||||
info "Retrying"
|
||||
info "Failed to bond with bootstrap nodes, retrying"
|
||||
else:
|
||||
info "Failed to bond with bootstrap nodes"
|
||||
return
|
||||
else:
|
||||
break
|
||||
discard await k.lookupRandom()
|
||||
else:
|
||||
info "Skipping discovery bootstrap, no bootnodes provided"
|
||||
|
||||
proc recvPong*(k: KademliaProtocol, n: Node, token: seq[byte]) =
|
||||
trace "<<< pong from ", n
|
||||
|
|
Loading…
Reference in New Issue