summaryrefslogtreecommitdiff
path: root/src/or/circuituse.c
diff options
context:
space:
mode:
authorMike Perry <mikeperry-git@fscked.org>2012-12-08 14:16:29 -0800
committerMike Perry <mikeperry-git@fscked.org>2012-12-08 14:16:29 -0800
commitb599a6ed07fd588500a256ef815e87729449626a (patch)
treed93df6cfcc53251b520c9bea5406194598369ced /src/or/circuituse.c
parent5f733ccd7382e8bb8289e4f8adf07f8ac001c28a (diff)
downloadtor-b599a6ed07fd588500a256ef815e87729449626a.tar.gz
tor-b599a6ed07fd588500a256ef815e87729449626a.zip
Sadly, we can't safely count client intro circ success
Diffstat (limited to 'src/or/circuituse.c')
-rw-r--r--src/or/circuituse.c9
1 files changed, 7 insertions, 2 deletions
diff --git a/src/or/circuituse.c b/src/or/circuituse.c
index 9362e2420f..0b799b11ae 100644
--- a/src/or/circuituse.c
+++ b/src/or/circuituse.c
@@ -1402,11 +1402,16 @@ circuit_launch_by_extend_info(uint8_t purpose,
build_state_get_exit_nickname(circ->build_state), purpose,
circuit_purpose_to_string(purpose));
- if (purpose == CIRCUIT_PURPOSE_S_CONNECT_REND &&
+ if ((purpose == CIRCUIT_PURPOSE_S_CONNECT_REND ||
+ purpose == CIRCUIT_PURPOSE_C_INTRODUCING) &&
circ->path_state == PATH_STATE_BUILD_SUCCEEDED) {
/* Path bias: Cannibalized rends pre-emptively count as a
* successfully used circ. We don't wait until the extend,
- * because the rend point could be malicious. */
+ * because the rend point could be malicious.
+ *
+ * Same deal goes for client side introductions. Clients
+ * can be manipulated to connect repeatedly to them
+ * (especially web clients). */
circ->path_state = PATH_STATE_USE_SUCCEEDED;
/* This must be called before the purpose change */
pathbias_check_close(circ);