summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--ChangeLog5
-rw-r--r--src/or/circuituse.c5
2 files changed, 9 insertions, 1 deletions
diff --git a/ChangeLog b/ChangeLog
index ab192a01aa..1c0b8ee52d 100644
--- a/ChangeLog
+++ b/ChangeLog
@@ -5,6 +5,11 @@ Changes in version 0.2.1.13-????? - 2009-0?-??
We previously did this from the startup script, but that was no
help to people who didn't use the startup script. Resolves
bug 863.
+ - When we had picked an exit node for a connection, but marked it as
+ "optional", and it turned out we had no onion key for the exit,
+ stop preferring the exit and try again. This situation may not be
+ possible now, but will probably become feasible with proposal 158.
+ Spotted by rovv. Fixes another case of bug 752.
o Minor features:
- On Linux, use the prctl call to re-enable core dumps when the user
diff --git a/src/or/circuituse.c b/src/or/circuituse.c
index 4bc6fcbe8f..a1c8d1c148 100644
--- a/src/or/circuituse.c
+++ b/src/or/circuituse.c
@@ -1165,7 +1165,10 @@ circuit_get_open_circ_or_launch(edge_connection_t *conn,
if (opt) {
conn->chosen_exit_optional = 0;
tor_free(conn->chosen_exit_name);
- return 0;
+ /* Try again with no requested exit */
+ return circuit_get_open_circ_or_launch(conn,
+ desired_circuit_purpose,
+ circp);
}
return -1;
}