mirror of
https://gitlab.torproject.org/tpo/core/tor.git
synced 2024-11-24 04:13:28 +01:00
don't cache connect failures from our own circuits
The connect failure cache had a bad interaction with retrying connections to our guards or bridges when we go offline and then come back online -- while offline we would fail to connect and cache this result, and then when we return we would decline to even attempt to connect, because our failure cache said it wouldn't work. Now only cache connect failures for relays when we connected to them because of somebody else's EXTEND request. Fixes bug 40499; bugfix on 0.3.3.4-alpha.
This commit is contained in:
parent
89ba63a619
commit
5ad126a51b
7
changes/bug40499
Normal file
7
changes/bug40499
Normal file
@ -0,0 +1,7 @@
|
||||
o Major bugfixes (client):
|
||||
- Stop caching TCP connect failures to relays/bridges when we
|
||||
initiated the connection as a client. Now we only cache connect
|
||||
failures as a relay or bridge when we initiated them because
|
||||
of an EXTEND request. Declining to re-attempt the client-based
|
||||
connections could cause problems when we lose connectivity and
|
||||
try to reconnect. Fixes bug 40499; bugfix on 0.3.3.4-alpha.
|
@ -1316,6 +1316,13 @@ note_or_connect_failed(const or_connection_t *or_conn)
|
||||
|
||||
tor_assert(or_conn);
|
||||
|
||||
if (or_conn->potentially_used_for_bootstrapping) {
|
||||
/* Don't cache connection failures for connections we initiated ourself.
|
||||
* If these direct connections fail, we're supposed to recognize that
|
||||
* the destination is down and stop trying. See ticket 40499. */
|
||||
return;
|
||||
}
|
||||
|
||||
ocf = or_connect_failure_find(or_conn);
|
||||
if (ocf == NULL) {
|
||||
ocf = or_connect_failure_new(or_conn);
|
||||
|
Loading…
Reference in New Issue
Block a user