diff options
-rw-r--r-- | ChangeLog | 3 | ||||
-rw-r--r-- | src/or/connection_edge.c | 4 |
2 files changed, 6 insertions, 1 deletions
@@ -51,6 +51,9 @@ Changes in version 0.2.1.1-alpha - 2008-??-?? servers. Fix for bug 652. - Authorities correctly free policies on bad servers on exit. Fixes bug 672. + - When tunneling an encrypted directory connection, and its first circuit + fails do not leave it unattached and ask the controller to deal. Fixes + the second part of bug 681. o Minor features: - Allow separate log levels to be configured for different logging diff --git a/src/or/connection_edge.c b/src/or/connection_edge.c index e059850df..06d1dacd1 100644 --- a/src/or/connection_edge.c +++ b/src/or/connection_edge.c @@ -549,7 +549,9 @@ connection_ap_detach_retriable(edge_connection_t *conn, origin_circuit_t *circ, { control_event_stream_status(conn, STREAM_EVENT_FAILED_RETRIABLE, reason); conn->_base.timestamp_lastread = time(NULL); - if (! get_options()->LeaveStreamsUnattached) { + if (!get_options()->LeaveStreamsUnattached || conn->use_begindir) { + /* If we're attaching streams ourself, or if this connection is + * a tunneled directory connection, then just attach it. */ conn->_base.state = AP_CONN_STATE_CIRCUIT_WAIT; circuit_detach_stream(TO_CIRCUIT(circ),conn); return connection_ap_handshake_attach_circuit(conn); |