Kademlia wait for result until time out.
This commit is contained in:
parent
52f8ce2b3d
commit
f0bb7375c3
1 changed files with 10 additions and 3 deletions
|
@ -442,9 +442,16 @@ struct MultiAddress** search_kademlia(char* peer_id, int timeout)
|
|||
char str[sizeof ipstr + 16];
|
||||
int c = 0;
|
||||
|
||||
// Wait for result or time out.
|
||||
while (to > 0 &&
|
||||
search_result->ipv4_count == 0 &&
|
||||
search_result->ipv6_count == 0) {
|
||||
to = search_kademlia_internal (id, 0, to); // Repeat search to collect result.
|
||||
if (to == 0) return NULL; // time out.
|
||||
if (to <= 0) return NULL; // time out.
|
||||
usleep(2000000); // Wait a few seconds for the result.
|
||||
to -= 2000000;
|
||||
}
|
||||
|
||||
ret = calloc(search_result->ipv4_count + search_result->ipv6_count + 1, // IPv4 + IPv6 itens and a NULL terminator.
|
||||
sizeof (struct MultiAddress*)); // array of pointer.
|
||||
if (!ret) {
|
||||
|
|
Loading…
Reference in a new issue