[Author Prev][Author Next][Thread Prev][Thread Next][Author Index][Thread Index]
[or-cvs] r17106: {tor} put in karsten's patch #1 for proposal 155, modified (in tor/trunk: . doc/spec/proposals src/or)
Author: arma
Date: 2008-10-14 20:36:09 -0400 (Tue, 14 Oct 2008)
New Revision: 17106
Modified:
tor/trunk/ChangeLog
tor/trunk/doc/spec/proposals/155-four-hidden-service-improvements.txt
tor/trunk/src/or/circuituse.c
Log:
put in karsten's patch #1 for proposal 155, modified
Modified: tor/trunk/ChangeLog
===================================================================
--- tor/trunk/ChangeLog 2008-10-15 00:27:04 UTC (rev 17105)
+++ tor/trunk/ChangeLog 2008-10-15 00:36:09 UTC (rev 17106)
@@ -3,6 +3,8 @@
- Now NodeFamily and MyFamily config options allow spaces in
identity fingerprints, so it's easier to paste them in.
Suggested by Lucky Green.
+ - Reduce extension timeout for introduction circuits from 60 to 30
+ seconds.
o Minor bugfixes:
- Minor fix in the warning messages when you're having problems
Modified: tor/trunk/doc/spec/proposals/155-four-hidden-service-improvements.txt
===================================================================
--- tor/trunk/doc/spec/proposals/155-four-hidden-service-improvements.txt 2008-10-15 00:27:04 UTC (rev 17105)
+++ tor/trunk/doc/spec/proposals/155-four-hidden-service-improvements.txt 2008-10-15 00:36:09 UTC (rev 17106)
@@ -18,7 +18,7 @@
in the network as well as connection establishment time. Some of these
design changes have side-effects on anonymity or overall network load
which had to be weighed up against individual performance gains. A
- discussion of seven possible design changes [2] has lead to a selection
+ discussion of seven possible design changes [2] has led to a selection
of four changes [3] that are proposed to be implemented here.
Design:
Modified: tor/trunk/src/or/circuituse.c
===================================================================
--- tor/trunk/src/or/circuituse.c 2008-10-15 00:27:04 UTC (rev 17105)
+++ tor/trunk/src/or/circuituse.c 2008-10-15 00:36:09 UTC (rev 17106)
@@ -251,11 +251,13 @@
circuit_expire_building(time_t now)
{
circuit_t *victim, *circ = global_circuitlist;
- time_t cutoff = now - get_options()->CircuitBuildTimeout;
- time_t begindir_cutoff = now - get_options()->CircuitBuildTimeout/2;
+ time_t general_cutoff = now - get_options()->CircuitBuildTimeout;
+ time_t begindir_cutoff = general_cutoff/2;
+ time_t introcirc_cutoff = general_cutoff/2;
cpath_build_state_t *build_state;
while (circ) {
+ time_t cutoff;
victim = circ;
circ = circ->next;
if (!CIRCUIT_IS_ORIGIN(victim) || /* didn't originate here */
@@ -263,13 +265,23 @@
continue;
build_state = TO_ORIGIN_CIRCUIT(victim)->build_state;
- if (victim->timestamp_created >
- ((build_state && build_state->onehop_tunnel) ?
- begindir_cutoff : cutoff))
+ if (build_state && build_state->onehop_tunnel)
+ cutoff = begindir_cutoff;
+ else if (victim->purpose == CIRCUIT_PURPOSE_C_INTRODUCING)
+ cutoff = introcirc_cutoff;
+ else
+ cutoff = general_cutoff;
+ if (victim->timestamp_created > cutoff)
continue; /* it's still young, leave it alone */
#if 0
/* some debug logs, to help track bugs */
+ if (victim->purpose == CIRCUIT_PURPOSE_C_INTRODUCING &&
+ victim->timestamp_created <= introcirc_cutoff &&
+ victim->timestamp_created > general_cutoff)
+ log_info(LD_REND|LD_CIRC, "Timing out introduction circuit which we "
+ "would not have done if it had been a general circuit.");
+
if (victim->purpose >= CIRCUIT_PURPOSE_C_INTRODUCING &&
victim->purpose <= CIRCUIT_PURPOSE_C_REND_READY_INTRO_ACKED) {
if (!victim->timestamp_dirty)