diff options
author | Nick Mathewson <nickm@torproject.org> | 2015-11-25 09:21:25 -0500 |
---|---|---|
committer | Nick Mathewson <nickm@torproject.org> | 2015-11-25 09:21:25 -0500 |
commit | fe8eb9b366d9dccf06d8d4ce117b67bbb3aeba60 (patch) | |
tree | 12c8d33f362544f0fee49a57df34821fe387ebfd | |
parent | 45caeec9a03d7caca13ef4d6caeda23f7bb3129e (diff) | |
parent | dc0d2b59706d036b97451dc1f8addc86ed783c2e (diff) | |
download | tor-fe8eb9b366d9dccf06d8d4ce117b67bbb3aeba60.tar.gz tor-fe8eb9b366d9dccf06d8d4ce117b67bbb3aeba60.zip |
Merge remote-tracking branch 'public/decouple_dir_request_failed'
-rw-r--r-- | changes/bug17589 | 7 | ||||
-rw-r--r-- | src/or/directory.c | 5 |
2 files changed, 8 insertions, 4 deletions
diff --git a/changes/bug17589 b/changes/bug17589 new file mode 100644 index 0000000000..91103276df --- /dev/null +++ b/changes/bug17589 @@ -0,0 +1,7 @@ + o Code simplificiation and refactoring: + - When a direct directory request fails immediately on launch, + instead of relaunching that request from inside the code that + launches it, instead mark the connection for teardown. This + change simplifies Tor's callback and prevents the directory- + request launching code from invoking itself recursively. + Closes ticket 17589.
\ No newline at end of file diff --git a/src/or/directory.c b/src/or/directory.c index ffe4708fca..0a09e833cd 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 */ |