summaryrefslogtreecommitdiff
path: root/src/or/rendclient.c
diff options
context:
space:
mode:
authorDavid Goulet <dgoulet@ev0ke.net>2015-01-19 10:23:58 -0500
committerDavid Goulet <dgoulet@ev0ke.net>2015-01-19 10:23:58 -0500
commitb5525476f5fea4b97d562247dbad117068eb4fbb (patch)
tree070b5a7a10009dad19988797b5ddcab5647f5c80 /src/or/rendclient.c
parentb3c1152bae9e021e10dd014970913114753ac74d (diff)
downloadtor-b5525476f5fea4b97d562247dbad117068eb4fbb.tar.gz
tor-b5525476f5fea4b97d562247dbad117068eb4fbb.zip
Fix: close intro circuit if no more intro points are usable
Once a NACK is received on the intro circuit, tor tries an other usable one by extending the current circuit to it. If no more intro points are usable, now close the circuit. Also, it's reason is changed before closing it so we don't report again an intro point failure and trigger an extra HS fetch. Fixes #14224 Signed-off-by: David Goulet <dgoulet@ev0ke.net>
Diffstat (limited to 'src/or/rendclient.c')
-rw-r--r--src/or/rendclient.c7
1 files changed, 5 insertions, 2 deletions
diff --git a/src/or/rendclient.c b/src/or/rendclient.c
index 1353ee38d5..31e220aca2 100644
--- a/src/or/rendclient.c
+++ b/src/or/rendclient.c
@@ -469,8 +469,11 @@ rend_client_introduction_acked(origin_circuit_t *circ,
* too? */
return result;
} else {
- /* Close circuit because no more intro points are usable thus this
- * circuit is not useful anymore. */
+ /* Close circuit because no more intro points are usable thus not
+ * useful anymore. Change it's purpose before so we don't report an
+ * intro point failure again triggering an extra descriptor fetch. */
+ circuit_change_purpose(TO_CIRCUIT(circ),
+ CIRCUIT_PURPOSE_C_INTRODUCE_ACKED);
circuit_mark_for_close(TO_CIRCUIT(circ), END_CIRC_REASON_FINISHED);
}
}