]> git.ipfire.org Git - thirdparty/freeswitch.git/commitdiff
FS-9775: correct ks_dhtrt_closest_nodes query results
authorcolm <colm@freeswitch1>
Mon, 12 Dec 2016 18:41:19 +0000 (13:41 -0500)
committerMike Jerris <mike@jerris.com>
Wed, 25 Jan 2017 20:59:35 +0000 (14:59 -0600)
libs/libks/src/dht/ks_dht_bucket.c

index 85fb0e84d6121daa45f36d53e9583c01e4988639..82784392260e84d3b7592f02b74330857a314bbe 100644 (file)
@@ -1030,9 +1030,12 @@ uint8_t ks_dhtrt_load_query(ks_dhtrt_querynodes_t *query, ks_dhtrt_sortedxors_t
                           ks_dhtrt_printableid(current->bheader->mask,buf), current->count);
 #endif
                int xorix = current->startix; 
-               for (uint8_t ix = 0; ix< current->count && loaded < query->max; ++ix ) {
+               for (uint8_t ix = 0;
+                               ix< current->count && loaded < query->max && xorix !=  KS_DHT_BUCKETSIZE;
+                               ++ix )   {
                        unsigned int z =  current->xort[xorix].ix;
                        query->nodes[ix] = current->bheader->bucket->entries[z].gptr;
+            xorix =  current->xort[xorix].nextix;
                        ++loaded;
                }                       
                if (loaded >= query->max) break;