mirror of
https://github.com/signalwire/freeswitch.git
synced 2025-03-13 12:40:17 +00:00
FS-9775: DHT find closest nodes not completing search
This commit is contained in:
parent
421f13e6e5
commit
f7027cd343
@ -701,15 +701,17 @@ uint8_t ks_dhtrt_findclosest_locked_nodes(ks_dhtrt_routetable_t *table, ks_dhtrt
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
if (!lheader && !rheader) break;
|
if (!lheader && !rheader) {
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
|
||||||
++insanity;
|
++insanity;
|
||||||
|
|
||||||
if (insanity > 159) {
|
if (insanity > 159) {
|
||||||
assert(insanity <= 159);
|
assert(insanity <= 159);
|
||||||
}
|
}
|
||||||
|
|
||||||
} while (max < query->count);
|
} while (max < query->max);
|
||||||
|
|
||||||
|
|
||||||
ks_dhtrt_load_query(query, &xort0);
|
ks_dhtrt_load_query(query, &xort0);
|
||||||
@ -796,7 +798,7 @@ KS_DECLARE(void) ks_dhtrt_process_table(ks_dhtrt_routetable_t *table)
|
|||||||
}
|
}
|
||||||
|
|
||||||
if (e->flags == DHTPEER_SUSPECT) {
|
if (e->flags == DHTPEER_SUSPECT) {
|
||||||
ks_dhtrt_ping(e);
|
ks_dhtrt_ping(e);
|
||||||
continue;
|
continue;
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -1217,9 +1219,10 @@ uint8_t ks_dhtrt_findclosest_bucketnodes(ks_dhtrt_nodeid_t id,
|
|||||||
|
|
||||||
for (uint8_t ix=0; ix<KS_DHT_BUCKETSIZE; ++ix) {
|
for (uint8_t ix=0; ix<KS_DHT_BUCKETSIZE; ++ix) {
|
||||||
|
|
||||||
if ( bucket->entries[ix].inuse == 1 &&
|
if ( bucket->entries[ix].inuse == 1 && /* in use */
|
||||||
(family == ifboth || bucket->entries[ix].family == family) &&
|
bucket->entries[ix].flags != DHTPEER_EXPIRED && /* not expired */
|
||||||
(bucket->entries[ix].type & type) &&
|
(family == ifboth || bucket->entries[ix].family == family) && /* match if family */
|
||||||
|
(bucket->entries[ix].type & type) && /* match type */
|
||||||
ks_dhtrt_isactive( &(bucket->entries[ix])) ) {
|
ks_dhtrt_isactive( &(bucket->entries[ix])) ) {
|
||||||
|
|
||||||
/* calculate xor value */
|
/* calculate xor value */
|
||||||
@ -1323,6 +1326,8 @@ void ks_dhtrt_ping(ks_dhtrt_bucket_entry_t *entry) {
|
|||||||
/* @todo */
|
/* @todo */
|
||||||
/* set the appropriate command in the node and queue if for processing */
|
/* set the appropriate command in the node and queue if for processing */
|
||||||
/*ks_dht_node_t *node = entry->gptr; */
|
/*ks_dht_node_t *node = entry->gptr; */
|
||||||
|
/* ++entry->outstanding_pings; */
|
||||||
|
|
||||||
#ifdef KS_DHT_DEBUGPRINTF_
|
#ifdef KS_DHT_DEBUGPRINTF_
|
||||||
char buf[100];
|
char buf[100];
|
||||||
printf(" ping queued for nodeid %s count %d\n",
|
printf(" ping queued for nodeid %s count %d\n",
|
||||||
|
Loading…
x
Reference in New Issue
Block a user