diff options
-rw-r--r-- | ChangeLog | 5 | ||||
-rw-r--r-- | src/or/circuituse.c | 5 |
2 files changed, 9 insertions, 1 deletions
@@ -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; } |