From: Nick Mathewson Date: Fri, 29 Apr 2011 00:36:38 +0000 (-0400) Subject: Merge remote-tracking branches 'rransom/bug2722' and 'rransom/bug2722b' into maint... X-Git-Tag: tor-0.2.2.25-alpha~7^2~3 X-Git-Url: http://git.ipfire.org/gitweb.cgi?a=commitdiff_plain;h=6b9aadd557de171f0de7b700ba427a9a37a545fa;p=thirdparty%2Ftor.git Merge remote-tracking branches 'rransom/bug2722' and 'rransom/bug2722b' into maint-0.2.2 --- 6b9aadd557de171f0de7b700ba427a9a37a545fa diff --cc src/or/routerlist.c index d9f099b4f8,5e9c82a1df,4deff53a3c..f567ccdf3c --- a/src/or/routerlist.c +++ b/src/or/routerlist.c @@@@ -506,36 -463,37 -506,36 +506,36 @@@@ authority_certs_fetch_missing(networkst !digestmap_get(pending, voter->identity_digest)) { log_notice(LD_DIR, "We're missing a certificate from authority " "with signing key %s: launching request.", - hex_str(voter->signing_key_digest, DIGEST_LEN)); - smartlist_add(missing_digests, voter->identity_digest); + hex_str(sig->signing_key_digest, DIGEST_LEN)); + smartlist_add(missing_digests, sig->identity_digest); } - }); + } SMARTLIST_FOREACH_END(sig); + } SMARTLIST_FOREACH_END(voter); } - SMARTLIST_FOREACH(trusted_dir_servers, trusted_dir_server_t *, ds, - { - int found = 0; - if (!(ds->type & V3_AUTHORITY)) - continue; - if (smartlist_digest_isin(missing_digests, ds->v3_identity_digest)) - continue; - cl = get_cert_list(ds->v3_identity_digest); - SMARTLIST_FOREACH(cl->certs, authority_cert_t *, cert, - { - if (!ftime_definitely_after(now, cert->expires)) { - /* It's not expired, and we weren't looking for something to - * verify a consensus with. Call it done. */ - download_status_reset(&cl->dl_status); - found = 1; - break; - } - }); - if (!found && - download_status_is_ready(&cl->dl_status, now,MAX_CERT_DL_FAILURES) && - !digestmap_get(pending, ds->v3_identity_digest)) { - log_notice(LD_DIR, "No current certificate known for authority %s; " - "launching request.", ds->nickname); - smartlist_add(missing_digests, ds->v3_identity_digest); + SMARTLIST_FOREACH_BEGIN(trusted_dir_servers, trusted_dir_server_t *, ds) { + int found = 0; + if (!(ds->type & V3_AUTHORITY)) + continue; + if (smartlist_digest_isin(missing_digests, ds->v3_identity_digest)) + continue; + cl = get_cert_list(ds->v3_identity_digest); + SMARTLIST_FOREACH(cl->certs, authority_cert_t *, cert, { + if (now < cert->expires) { + /* It's not expired, and we weren't looking for something to + * verify a consensus with. Call it done. */ + download_status_reset(&cl->dl_status); + found = 1; + break; } }); + if (!found && + download_status_is_ready(&cl->dl_status, now,MAX_CERT_DL_FAILURES) && + !digestmap_get(pending, ds->v3_identity_digest)) { - log_notice(LD_DIR, "No current certificate known for authority %s; " - "launching request.", ds->nickname); ++ log_info(LD_DIR, "No current certificate known for authority %s; " ++ "launching request.", ds->nickname); + smartlist_add(missing_digests, ds->v3_identity_digest); + } + } SMARTLIST_FOREACH_END(ds); if (!smartlist_len(missing_digests)) { goto done; @@@@ -5594,14 -5192,9 -5550,13 +5594,14 @@@@ routerset_get_all_routers(smartlist_t * } } - /** Add to target every routerinfo_t from source that is in - * include, but not excluded in a more specific fashion by - * exclude. If running_only, only include running routers. ++#if 0 + /** Add to target every routerinfo_t from source except: + * + * 1) Don't add it if include is non-empty and the relay isn't in + * include; and + * 2) Don't add it if exclude is non-empty and the relay is + * excluded in a more specific fashion by exclude. + * 3) If running_only, don't add non-running routers. */ void routersets_get_disjunction(smartlist_t *target,