summaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
Diffstat (limited to 'src')
-rw-r--r--src/or/main.c7
1 files changed, 7 insertions, 0 deletions
diff --git a/src/or/main.c b/src/or/main.c
index 66f70396b3..83413da79f 100644
--- a/src/or/main.c
+++ b/src/or/main.c
@@ -637,6 +637,13 @@ run_connection_housekeeping(int i, time_t now)
if (best && best != conn &&
(conn->state == OR_CONN_STATE_OPEN ||
now > conn->timestamp_created + TLS_TIMEOUT)) {
+ /* We only mark as obsolete connections that already are in
+ * OR_CONN_STATE_OPEN, i.e. that have finished their TLS handshaking.
+ * This is necessay because authorities judge whether a router is
+ * reachable based on whether they were able to TLS handshake with it
+ * recently. Without this check we would expire connections too
+ * early for router->last_reachable to be updated.
+ */
log_info(LD_OR,
"Marking duplicate conn to %s:%d obsolete "
"(fd %d, %d secs old).",