Browse Source

Explain why we only expire open connections

svn:r6015
Peter Palfrader 18 years ago
parent
commit
0bab094d5d
1 changed files with 7 additions and 0 deletions
  1. 7 0
      src/or/main.c

+ 7 - 0
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).",