backport candidate: when we have k non-v2 authorities in our

dirservers lines, we ignored as many as k v2 authorities while
updating our network-statuses.

(not a problem right now since we have zero non-v2 authorities.
but if we ever change that...)


svn:r10157
This commit is contained in:
Roger Dingledine 2007-05-10 10:01:53 +00:00
parent 4e9a008e66
commit de11011b1b

View File

@ -3176,14 +3176,14 @@ update_networkstatus_client_downloads(time_t now)
/* If no networkstatus was found, choose a dirserver at random as "most /* If no networkstatus was found, choose a dirserver at random as "most
* recent". */ * recent". */
if (most_recent_idx<0) if (most_recent_idx<0)
most_recent_idx = crypto_rand_int(n_dirservers); most_recent_idx = crypto_rand_int(smartlist_len(trusted_dir_servers));
if (fetch_latest) { if (fetch_latest) {
int i; int i;
int n_failed = 0; int n_failed = 0;
for (i = most_recent_idx + 1; 1; ++i) { for (i = most_recent_idx + 1; 1; ++i) {
trusted_dir_server_t *ds; trusted_dir_server_t *ds;
if (i >= n_dirservers) if (i >= smartlist_len(trusted_dir_servers))
i = 0; i = 0;
ds = smartlist_get(trusted_dir_servers, i); ds = smartlist_get(trusted_dir_servers, i);
if (!(ds->type & V2_AUTHORITY)) if (!(ds->type & V2_AUTHORITY))