summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorNick Mathewson <nickm@torproject.org>2008-05-27 20:26:40 +0000
committerNick Mathewson <nickm@torproject.org>2008-05-27 20:26:40 +0000
commit9975c4f6f8c54b150335a5cd6bb7e0e7defbca80 (patch)
tree2df0b3381e1782369cd74eb225dd1eb7a2228167
parent4f8bb87ac532ac50ccbdeab4a8c483fd41c754c6 (diff)
downloadtor-9975c4f6f8c54b150335a5cd6bb7e0e7defbca80.tar.gz
tor-9975c4f6f8c54b150335a5cd6bb7e0e7defbca80.zip
Fix part of bug 681: always reattach tunneled directory connections, regardless of the setting for LeaveStreamsUnattached
svn:r14750
-rw-r--r--ChangeLog3
-rw-r--r--src/or/connection_edge.c4
2 files changed, 6 insertions, 1 deletions
diff --git a/ChangeLog b/ChangeLog
index 2d722b9670..29b0160fc1 100644
--- a/ChangeLog
+++ b/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
diff --git a/src/or/connection_edge.c b/src/or/connection_edge.c
index e059850df1..06d1dacd1c 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);