mirror of
https://gitlab.torproject.org/tpo/core/tor.git
synced 2024-11-24 12:23:32 +01:00
Use cbt to tell when to launch parallel intro circuit
Implement feature from trac #2799
This commit is contained in:
parent
aa950e6c48
commit
65eb0e41ac
4
changes/cbt_parallel_intro
Normal file
4
changes/cbt_parallel_intro
Normal file
@ -0,0 +1,4 @@
|
||||
o Minor features
|
||||
- Use computed circuit-build timeouts to decide when to launch
|
||||
parallel introdution circuits. (Previously, we would retry
|
||||
after 15 seconds.)
|
@ -204,7 +204,7 @@ circuit_get_best(edge_connection_t *conn, int must_be_open, uint8_t purpose,
|
||||
int need_uptime, int need_internal)
|
||||
{
|
||||
circuit_t *circ, *best=NULL;
|
||||
time_t now = time(NULL);
|
||||
struct timeval now;
|
||||
int intro_going_on_but_too_old = 0;
|
||||
|
||||
tor_assert(conn);
|
||||
@ -213,17 +213,16 @@ circuit_get_best(edge_connection_t *conn, int must_be_open, uint8_t purpose,
|
||||
purpose == CIRCUIT_PURPOSE_C_INTRODUCE_ACK_WAIT ||
|
||||
purpose == CIRCUIT_PURPOSE_C_REND_JOINED);
|
||||
|
||||
tor_gettimeofday(&now);
|
||||
|
||||
for (circ=global_circuitlist;circ;circ = circ->next) {
|
||||
if (!circuit_is_acceptable(circ,conn,must_be_open,purpose,
|
||||
need_uptime,need_internal,now))
|
||||
need_uptime,need_internal,now.tv_sec))
|
||||
continue;
|
||||
|
||||
/* XXX022 make this 15 be a function of circuit finishing times we've
|
||||
* seen lately, a la Fallon Chen's GSoC work -RD */
|
||||
#define REND_PARALLEL_INTRO_DELAY 15
|
||||
if (purpose == CIRCUIT_PURPOSE_C_INTRODUCE_ACK_WAIT &&
|
||||
!must_be_open && circ->state != CIRCUIT_STATE_OPEN &&
|
||||
circ->timestamp_created.tv_sec + REND_PARALLEL_INTRO_DELAY < now) {
|
||||
!must_be_open && circ->state != CIRCUIT_STATE_OPEN &&
|
||||
tv_mdiff(&now, &circ->timestamp_created) > circ_times.timeout_ms) {
|
||||
intro_going_on_but_too_old = 1;
|
||||
continue;
|
||||
}
|
||||
|
Loading…
Reference in New Issue
Block a user