summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--changes/bug142244
-rw-r--r--src/or/rendclient.c7
2 files changed, 11 insertions, 0 deletions
diff --git a/changes/bug14224 b/changes/bug14224
new file mode 100644
index 0000000000..0608940449
--- /dev/null
+++ b/changes/bug14224
@@ -0,0 +1,4 @@
+ o Minor Bugfix
+ - Close the intro circuit once we don't have any more usable intro
+ points instead of making it timeout at some point. This also make sure
+ no extra HS descriptor fetch is triggered.
diff --git a/src/or/rendclient.c b/src/or/rendclient.c
index 4b7d85a5e0..0c02243828 100644
--- a/src/or/rendclient.c
+++ b/src/or/rendclient.c
@@ -451,6 +451,13 @@ rend_client_introduction_acked(origin_circuit_t *circ,
/* XXXX If that call failed, should we close the rend circuit,
* too? */
return result;
+ } else {
+ /* 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);
}
}
return 0;