mirror of
https://gitlab.torproject.org/tpo/core/tor.git
synced 2024-11-10 05:03:43 +01:00
r15287@tombo: nickm | 2008-04-22 17:09:25 -0400
Periodically launch requests for server/authority.z when it might help us learn our IP. Fix for bug 652. svn:r14418
This commit is contained in:
parent
d72b256f4f
commit
41929c2684
@ -40,6 +40,8 @@ Changes in version 0.2.1.1-alpha - 2008-??-??
|
||||
- When we choose to abandon a new entry guard because we think our
|
||||
older ones might be better, close any circuits pending on that
|
||||
new entry guard connection. Bugfix on 0.1.2.8-beta; found by lodger.
|
||||
- Detect address changes correctly on non-directory mirror
|
||||
servers. Fix for bug 652.
|
||||
|
||||
o Minor features:
|
||||
- Allow separate log levels to be configured for different logging
|
||||
|
@ -4013,17 +4013,37 @@ update_consensus_router_descriptor_downloads(time_t now)
|
||||
smartlist_free(no_longer_old);
|
||||
}
|
||||
|
||||
/** How often should we launch a server/authority request to be sure of getting
|
||||
* a guess for our IP? */
|
||||
/*XXXX021 this info should come from netinfo cells or something, or we should
|
||||
* do this only when we aren't seeing incoming data. see bug 652. */
|
||||
#define DUMMY_DOWNLOAD_INTERVAL (20*60)
|
||||
|
||||
/** Launch downloads for router status as needed. */
|
||||
void
|
||||
update_router_descriptor_downloads(time_t now)
|
||||
{
|
||||
or_options_t *options = get_options();
|
||||
static time_t last_dummy_download = 0;
|
||||
if (should_delay_dir_fetches(options))
|
||||
return;
|
||||
if (directory_fetches_dir_info_early(options)) {
|
||||
update_router_descriptor_cache_downloads_v2(now);
|
||||
}
|
||||
update_consensus_router_descriptor_downloads(now);
|
||||
|
||||
/* XXXX021 we could be smarter here; see notes on bug 652. */
|
||||
/* If we're a server that doesn't have a configured address, we rely on
|
||||
* directory fetches to learn when our address changes. So if we haven't
|
||||
* tried to get any routerdescs in a long time, try a dummy fetch now. */
|
||||
if (!options->Address &&
|
||||
server_mode(options) &&
|
||||
last_routerdesc_download_attempted + DUMMY_DOWNLOAD_INTERVAL < now &&
|
||||
last_dummy_download + DUMMY_DOWNLOAD_INTERVAL < now) {
|
||||
last_dummy_download = now;
|
||||
directory_get_from_dirserver(DIR_PURPOSE_FETCH_SERVERDESC,
|
||||
ROUTER_PURPOSE_GENERAL, "authority.z", 1);
|
||||
}
|
||||
}
|
||||
|
||||
/** Launch extrainfo downloads as needed. */
|
||||
|
Loading…
Reference in New Issue
Block a user