mirror of
https://gitlab.torproject.org/tpo/core/tor.git
synced 2024-09-20 13:06:20 +02:00
stop authority reachability check on startup
This commit is contained in:
parent
4f307e0382
commit
6952b445cc
6
changes/no_reachability_test_on_startup
Normal file
6
changes/no_reachability_test_on_startup
Normal file
@ -0,0 +1,6 @@
|
||||
o Minor features:
|
||||
- Directory authorities no longer launch a TLS connection to every
|
||||
relay as they startup. Now that we have 2k+ descriptors cached,
|
||||
the resulting network hiccup is becoming a burden. Besides,
|
||||
authorities already avoid voting about Running for the first half
|
||||
hour of their uptime.
|
@ -3108,8 +3108,7 @@ dirserv_single_reachability_test(time_t now, routerinfo_t *router)
|
||||
router->cache_info.identity_digest);
|
||||
}
|
||||
|
||||
/** Auth dir server only: if <b>try_all</b> is 1, launch connections to
|
||||
* all known routers; else we want to load balance such that we only
|
||||
/** Auth dir server only: load balance such that we only
|
||||
* try a few connections per call.
|
||||
*
|
||||
* The load balancing is such that if we get called once every ten
|
||||
@ -3117,7 +3116,7 @@ dirserv_single_reachability_test(time_t now, routerinfo_t *router)
|
||||
* bit over 20 minutes).
|
||||
*/
|
||||
void
|
||||
dirserv_test_reachability(time_t now, int try_all)
|
||||
dirserv_test_reachability(time_t now)
|
||||
{
|
||||
/* XXX decide what to do here; see or-talk thread "purging old router
|
||||
* information, revocation." -NM
|
||||
@ -3140,12 +3139,11 @@ dirserv_test_reachability(time_t now, int try_all)
|
||||
continue; /* bridge authorities only test reachability on bridges */
|
||||
// if (router->cache_info.published_on > cutoff)
|
||||
// continue;
|
||||
if (try_all || (((uint8_t)id_digest[0]) % 128) == ctr) {
|
||||
if ((((uint8_t)id_digest[0]) % 128) == ctr) {
|
||||
dirserv_single_reachability_test(now, router);
|
||||
}
|
||||
} SMARTLIST_FOREACH_END(router);
|
||||
if (!try_all) /* increment ctr */
|
||||
ctr = (ctr + 1) % 128;
|
||||
ctr = (ctr + 1) % 128; /* increment ctr */
|
||||
}
|
||||
|
||||
/** Given a fingerprint <b>fp</b> which is either set if we're looking for a
|
||||
|
@ -918,7 +918,7 @@ run_scheduled_events(time_t now)
|
||||
if (now % 10 == 0 && (authdir_mode_tests_reachability(options)) &&
|
||||
!we_are_hibernating()) {
|
||||
/* try to determine reachability of the other Tor relays */
|
||||
dirserv_test_reachability(now, 0);
|
||||
dirserv_test_reachability(now);
|
||||
}
|
||||
|
||||
/** 1d. Periodically, we discount older stability information so that new
|
||||
@ -1479,11 +1479,6 @@ do_main_loop(void)
|
||||
now = time(NULL);
|
||||
directory_info_has_arrived(now, 1);
|
||||
|
||||
if (authdir_mode_tests_reachability(get_options())) {
|
||||
/* the directory is already here, run startup things */
|
||||
dirserv_test_reachability(now, 1);
|
||||
}
|
||||
|
||||
if (server_mode(get_options())) {
|
||||
/* launch cpuworkers. Need to do this *after* we've read the onion key. */
|
||||
cpu_init();
|
||||
|
@ -3914,7 +3914,7 @@ void dirserv_orconn_tls_done(const char *address,
|
||||
const char *digest_rcvd,
|
||||
int as_advertised);
|
||||
void dirserv_single_reachability_test(time_t now, routerinfo_t *router);
|
||||
void dirserv_test_reachability(time_t now, int try_all);
|
||||
void dirserv_test_reachability(time_t now);
|
||||
int authdir_wants_to_reject_router(routerinfo_t *ri, const char **msg,
|
||||
int complain);
|
||||
int dirserv_would_reject_router(routerstatus_t *rs);
|
||||
|
Loading…
Reference in New Issue
Block a user