Browse Source

Fix part of bug 681: always reattach tunneled directory connections, regardless of the setting for LeaveStreamsUnattached

svn:r14750
Nick Mathewson 16 years ago
parent
commit
9975c4f6f8
2 changed files with 6 additions and 1 deletions
  1. 3 0
      ChangeLog
  2. 3 1
      src/or/connection_edge.c

+ 3 - 0
ChangeLog

@@ -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

+ 3 - 1
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);