mirror of
https://gitlab.torproject.org/tpo/core/tor.git
synced 2024-11-27 05:43:30 +01:00
don't build preemptive conflux circuits if no predicted ports
Conflux circuit building was ignoring the "predicted ports" feature,
which aims to make Tor stop building circuits if there have been
no user requests lately. This bug led to every idle Tor on the
network building and discarding circuits every 30 seconds, which
added overall load to the network, used bandwidth and battery from
clients that weren't actively using their Tor, and kept sockets open
on guards which added connection padding essentially forever.
Bug went in on commit 39c2927d
when we added preemptive conflux circuit
pools.
Fixes bug 40981; bugfix on 0.4.8.1-alpha.
This commit is contained in:
parent
6feaea8fa4
commit
7cca6dc1a3
9
changes/bug40981
Normal file
9
changes/bug40981
Normal file
@ -0,0 +1,9 @@
|
||||
o Major bugfixes (circuit building):
|
||||
- Conflux circuit building was ignoring the "predicted ports" feature,
|
||||
which aims to make Tor stop building circuits if there have been
|
||||
no user requests lately. This bug led to every idle Tor on the
|
||||
network building and discarding circuits every 30 seconds, which
|
||||
added overall load to the network, used bandwidth and battery from
|
||||
clients that weren't actively using their Tor, and kept sockets open
|
||||
on guards which added connection padding essentially forever. Fixes
|
||||
bug 40981; bugfix on 0.4.8.1-alpha;
|
@ -1202,8 +1202,13 @@ circuit_predict_and_launch_new(void)
|
||||
int flags = 0;
|
||||
|
||||
/* Attempt to launch predicted conflux circuits. This is outside the HS or
|
||||
* Exit preemptive circuit set. */
|
||||
conflux_predict_new(now);
|
||||
* Exit preemptive circuit set.
|
||||
* As with the other types of preemptive circuits, we only want to
|
||||
* launch them if we have predicted ports. (If we haven't needed a
|
||||
* circuit for a while, maybe we won't need one soon either.) */
|
||||
if (predicted_ports_prediction_time_remaining(now)) {
|
||||
conflux_predict_new(now);
|
||||
}
|
||||
|
||||
/* Count how many of each type of circuit we currently have. */
|
||||
SMARTLIST_FOREACH_BEGIN(circuit_get_global_list(), circuit_t *, circ) {
|
||||
|
Loading…
Reference in New Issue
Block a user