summaryrefslogtreecommitdiff
path: root/src/or/directory.c
diff options
context:
space:
mode:
authorNick Mathewson <nickm@torproject.org>2015-11-17 09:40:05 -0500
committerNick Mathewson <nickm@torproject.org>2015-11-17 09:40:05 -0500
commitdc0d2b59706d036b97451dc1f8addc86ed783c2e (patch)
treea0b3d42c4331fc6e5d373ee7145fb99ed5c97bc0 /src/or/directory.c
parentd3cb659541c7f5b0a0c9910e8f8c6b030c5f43f8 (diff)
downloadtor-dc0d2b59706d036b97451dc1f8addc86ed783c2e.tar.gz
tor-dc0d2b59706d036b97451dc1f8addc86ed783c2e.zip
Don't relaunch dir requests recursively if connection_connect() returns -1
Closes ticket 17589.
Diffstat (limited to 'src/or/directory.c')
-rw-r--r--src/or/directory.c5
1 files changed, 1 insertions, 4 deletions
diff --git a/src/or/directory.c b/src/or/directory.c
index 6f8edb5ad4..8d4c0a86d0 100644
--- a/src/or/directory.c
+++ b/src/or/directory.c
@@ -991,10 +991,7 @@ directory_initiate_command_rend(const tor_addr_t *_addr,
switch (connection_connect(TO_CONN(conn), conn->base_.address, &addr,
dir_port, &socket_error)) {
case -1:
- connection_dir_request_failed(conn); /* retry if we want */
- /* XXX we only pass 'conn' above, not 'resource', 'payload',
- * etc. So in many situations it can't retry! -RD */
- connection_free(TO_CONN(conn));
+ connection_mark_for_close(TO_CONN(conn));
return;
case 1:
/* start flushing conn */