mirror of
https://gitlab.torproject.org/tpo/core/tor.git
synced 2024-11-20 02:09:24 +01:00
Change the condition on the nonlive timeout counting.
Try to clarify things in the comment too.
This commit is contained in:
parent
e2cc4e353a
commit
134266b984
@ -706,18 +706,24 @@ circuit_build_times_network_circ_success(circuit_build_times_t *cbt)
|
||||
* at all, but this circuit was launched back when we thought the network
|
||||
* was live, increment the number of "nonlive" circuit timeouts.
|
||||
*
|
||||
* Also distinguish between whether it failed before the first hop.
|
||||
* Also distinguish between whether it failed before the first hop
|
||||
* and record that in our history for later deciding if the network has
|
||||
* changed.
|
||||
*/
|
||||
static void
|
||||
circuit_build_times_network_timeout(circuit_build_times_t *cbt,
|
||||
int did_onehop, time_t start_time)
|
||||
{
|
||||
time_t now = approx_time();
|
||||
/* Only count this as a valid attempt if it was both started before
|
||||
* the network was dead and the network has been dead for at least
|
||||
* a full timeout interval. */
|
||||
if (cbt->liveness.network_last_live <= (now - cbt->timeout_ms/1000.0)
|
||||
&& cbt->liveness.network_last_live <= start_time) {
|
||||
time_t now = time(NULL);
|
||||
/*
|
||||
* Check if this is a timeout that was for a circuit that spent its
|
||||
* entire existence during a time where we have had no network activity.
|
||||
*
|
||||
* Also double check that it is a valid timeout after we have possibly
|
||||
* just recently reset cbt->timeout_ms.
|
||||
*/
|
||||
if (cbt->liveness.network_last_live <= start_time &&
|
||||
start_time <= (now - cbt->timeout_ms/1000.0)) {
|
||||
cbt->liveness.nonlive_timeouts++;
|
||||
}
|
||||
|
||||
|
@ -3525,11 +3525,13 @@ test_circuit_timeout(void)
|
||||
test_assert(!circuit_build_times_network_check_live(&final));
|
||||
|
||||
for ( ; i < NETWORK_NONLIVE_DISCARD_COUNT; i++) {
|
||||
if (circuit_build_times_add_timeout(&estimate, 0, approx_time()))
|
||||
if (circuit_build_times_add_timeout(&estimate, 0,
|
||||
approx_time()-estimate.timeout_ms/1000.0-1))
|
||||
estimate.have_computed_timeout = 1;
|
||||
|
||||
if (i < NETWORK_NONLIVE_DISCARD_COUNT-1) {
|
||||
if (circuit_build_times_add_timeout(&final, 0, approx_time()))
|
||||
if (circuit_build_times_add_timeout(&final, 0,
|
||||
approx_time()-final.timeout_ms/1000.0-1))
|
||||
final.have_computed_timeout = 1;
|
||||
}
|
||||
}
|
||||
|
Loading…
Reference in New Issue
Block a user