pool: fix potential infinite loop with addrman.

This commit is contained in:
Christopher Jeffrey 2016-12-21 15:04:43 -08:00
parent bb1bf9f138
commit cc4dd23c83
No known key found for this signature in database
GPG Key ID: 8962AB9DE6666BBD

View File

@ -2337,24 +2337,27 @@ HostList.prototype.isBanned = function isBanned(host) {
};
/**
* Allocate a new loader host.
* Allocate a new host.
* @returns {HostEntry}
*/
HostList.prototype.getHost = function getHost() {
var now = this.network.now();
var buckets = this.fresh;
var buckets = null;
var factor = 1;
var index, key, bucket, entry, num;
if (this.size() === 0)
return;
if (this.totalFresh > 0)
buckets = this.fresh;
if (this.totalUsed > 0) {
if (this.totalFresh === 0 || util.random(0, 2) === 0)
buckets = this.used;
}
if (!buckets)
return;
for (;;) {
index = util.random(0, buckets.length);
bucket = buckets[index];