Don't reevaluate all the information from our consensus document
just because we've downloaded a v2 networkstatus that we intend to cache. Fixes bug 545. svn:r12479
This commit is contained in:
parent
49e9c6d96b
commit
7870964e0c
13
ChangeLog
13
ChangeLog
|
@ -10,15 +10,20 @@ Changes in version 0.2.0.11-alpha - 2007-11-??
|
||||||
- Fix a memory leak on exit relays; we were leaking a cached_resolve_t
|
- Fix a memory leak on exit relays; we were leaking a cached_resolve_t
|
||||||
on every successful resolve. Reported by Mike Perry.
|
on every successful resolve. Reported by Mike Perry.
|
||||||
|
|
||||||
o Minor features:
|
|
||||||
- Allow people to say PreferTunnelledDirConns rather than
|
|
||||||
PreferTunneledDirConns, for those alternate-spellers out there.
|
|
||||||
|
|
||||||
o Packaging fixes on 0.2.0.10-alpha:
|
o Packaging fixes on 0.2.0.10-alpha:
|
||||||
- We were including instructions about what to do with the
|
- We were including instructions about what to do with the
|
||||||
src/config/fallback-consensus file, but we weren't actually
|
src/config/fallback-consensus file, but we weren't actually
|
||||||
including it in the tarball. Disable all of that for now.
|
including it in the tarball. Disable all of that for now.
|
||||||
|
|
||||||
|
o Minor features:
|
||||||
|
- Allow people to say PreferTunnelledDirConns rather than
|
||||||
|
PreferTunneledDirConns, for those alternate-spellers out there.
|
||||||
|
|
||||||
|
o Minor bugfixes:
|
||||||
|
- Don't reevaluate all the information from our consensus document
|
||||||
|
just because we've downloaded a v2 networkstatus that we intend
|
||||||
|
to cache. Fixes bug 545.
|
||||||
|
|
||||||
|
|
||||||
Changes in version 0.2.0.10-alpha - 2007-11-10
|
Changes in version 0.2.0.10-alpha - 2007-11-10
|
||||||
o New directory authorities:
|
o New directory authorities:
|
||||||
|
|
|
@ -1448,7 +1448,8 @@ connection_dir_client_reached_eof(dir_connection_t *conn)
|
||||||
} else
|
} else
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
routers_update_all_from_networkstatus(now); /*launches router downloads*/
|
/* launches router downloads as needed */
|
||||||
|
routers_update_all_from_networkstatus(now, 2);
|
||||||
directory_info_has_arrived(now, 0);
|
directory_info_has_arrived(now, 0);
|
||||||
if (which) {
|
if (which) {
|
||||||
if (smartlist_len(which)) {
|
if (smartlist_len(which)) {
|
||||||
|
@ -1482,7 +1483,8 @@ connection_dir_client_reached_eof(dir_connection_t *conn)
|
||||||
networkstatus_consensus_download_failed(0);
|
networkstatus_consensus_download_failed(0);
|
||||||
return -1;
|
return -1;
|
||||||
}
|
}
|
||||||
routers_update_all_from_networkstatus(now); /*launches router downloads*/
|
/* launches router downloads as needed */
|
||||||
|
routers_update_all_from_networkstatus(now, 3);
|
||||||
directory_info_has_arrived(now, 0);
|
directory_info_has_arrived(now, 0);
|
||||||
log_info(LD_DIR, "Successfully loaded consensus.");
|
log_info(LD_DIR, "Successfully loaded consensus.");
|
||||||
}
|
}
|
||||||
|
|
|
@ -148,7 +148,7 @@ router_reload_v2_networkstatus(void)
|
||||||
SMARTLIST_FOREACH(entries, char *, fn, tor_free(fn));
|
SMARTLIST_FOREACH(entries, char *, fn, tor_free(fn));
|
||||||
smartlist_free(entries);
|
smartlist_free(entries);
|
||||||
networkstatus_v2_list_clean(time(NULL));
|
networkstatus_v2_list_clean(time(NULL));
|
||||||
routers_update_all_from_networkstatus(time(NULL));
|
routers_update_all_from_networkstatus(time(NULL), 2);
|
||||||
return 0;
|
return 0;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -202,7 +202,7 @@ router_reload_consensus_networkstatus(void)
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
routers_update_all_from_networkstatus(time(NULL));
|
routers_update_all_from_networkstatus(time(NULL), 3);
|
||||||
|
|
||||||
return 0;
|
return 0;
|
||||||
}
|
}
|
||||||
|
@ -1398,10 +1398,11 @@ networkstatus_note_certs_arrived(void)
|
||||||
|
|
||||||
/** If the network-status list has changed since the last time we called this
|
/** If the network-status list has changed since the last time we called this
|
||||||
* function, update the status of every routerinfo from the network-status
|
* function, update the status of every routerinfo from the network-status
|
||||||
* list.
|
* list. If <b>dir_version</b> is 2, it's a v2 networkstatus that changed.
|
||||||
|
* If <b>dir_version</b> is 3, it's a v3 consensus that changed.
|
||||||
*/
|
*/
|
||||||
void
|
void
|
||||||
routers_update_all_from_networkstatus(time_t now)
|
routers_update_all_from_networkstatus(time_t now, int dir_version)
|
||||||
{
|
{
|
||||||
routerinfo_t *me;
|
routerinfo_t *me;
|
||||||
routerlist_t *rl = router_get_routerlist();
|
routerlist_t *rl = router_get_routerlist();
|
||||||
|
@ -1410,7 +1411,7 @@ routers_update_all_from_networkstatus(time_t now)
|
||||||
if (networkstatus_v2_list_has_changed)
|
if (networkstatus_v2_list_has_changed)
|
||||||
download_status_map_update_from_v2_networkstatus();
|
download_status_map_update_from_v2_networkstatus();
|
||||||
|
|
||||||
if (!consensus)
|
if (!consensus || dir_version < 3) /* nothing more we should do */
|
||||||
return;
|
return;
|
||||||
|
|
||||||
/* More routers may be up or down now: we need to recalc whether there's
|
/* More routers may be up or down now: we need to recalc whether there's
|
||||||
|
|
|
@ -3268,7 +3268,7 @@ networkstatus_vote_t *networkstatus_get_reasonably_live_consensus(time_t now);
|
||||||
int networkstatus_set_current_consensus(const char *consensus, int from_cache,
|
int networkstatus_set_current_consensus(const char *consensus, int from_cache,
|
||||||
int was_waiting_for_certs);
|
int was_waiting_for_certs);
|
||||||
void networkstatus_note_certs_arrived(void);
|
void networkstatus_note_certs_arrived(void);
|
||||||
void routers_update_all_from_networkstatus(time_t now);
|
void routers_update_all_from_networkstatus(time_t now, dir_version);
|
||||||
void routerstatus_list_update_from_consensus_networkstatus(time_t now);
|
void routerstatus_list_update_from_consensus_networkstatus(time_t now);
|
||||||
void routers_update_status_from_consensus_networkstatus(smartlist_t *routers,
|
void routers_update_status_from_consensus_networkstatus(smartlist_t *routers,
|
||||||
int reset_failures);
|
int reset_failures);
|
||||||
|
|
|
@ -3986,10 +3986,10 @@ update_router_have_minimum_dir_info(void)
|
||||||
|
|
||||||
if (!consensus) {
|
if (!consensus) {
|
||||||
if (!networkstatus_get_latest_consensus())
|
if (!networkstatus_get_latest_consensus())
|
||||||
strlcpy(dir_info_status, "We have no network-status document.",
|
strlcpy(dir_info_status, "We have no network-status consensus.",
|
||||||
sizeof(dir_info_status));
|
sizeof(dir_info_status));
|
||||||
else
|
else
|
||||||
strlcpy(dir_info_status, "We have no recent network-status document.",
|
strlcpy(dir_info_status, "We have no recent network-status consensus.",
|
||||||
sizeof(dir_info_status));
|
sizeof(dir_info_status));
|
||||||
res = 0;
|
res = 0;
|
||||||
goto done;
|
goto done;
|
||||||
|
|
Loading…
Reference in New Issue