[tor-commits] [tor/master] Revert bug1074_launch_authconn* branch: needs more design, less crashing

nickm at torproject.org nickm at torproject.org
Mon Feb 28 22:07:26 UTC 2011


commit 42c1a47123cd6752435dd039e88c5760f7e18085
Author: Nick Mathewson <nickm at torproject.org>
Date:   Mon Feb 28 12:58:29 2011 -0500

    Revert bug1074_launch_authconn* branch: needs more design, less crashing
---
 changes/launch_authcon_on_skew |    7 ------
 src/or/command.c               |   42 ++++++++-------------------------------
 2 files changed, 9 insertions(+), 40 deletions(-)

diff --git a/changes/launch_authcon_on_skew b/changes/launch_authcon_on_skew
deleted file mode 100644
index 276e860..0000000
--- a/changes/launch_authcon_on_skew
+++ /dev/null
@@ -1,7 +0,0 @@
-  o Minor features
-    - When we get a connection from a non-authority that tells us our
-      clock is skewed, and we haven't heard about clock skew (or lack
-      thereof) from an authority, launch a connection to an authority
-      so we can find out whether we're really skewed.  Related to
-      bug 1074.  Patch from "AltF4".
-
diff --git a/src/or/command.c b/src/or/command.c
index bfcc1c9..4b70dee 100644
--- a/src/or/command.c
+++ b/src/or/command.c
@@ -45,13 +45,6 @@ uint64_t stats_n_destroy_cells_processed = 0;
 uint64_t stats_n_versions_cells_processed = 0;
 /** How many CELL_NETINFO cells have we received, ever? */
 uint64_t stats_n_netinfo_cells_processed = 0;
-/** Have we received a NETINFO cell from a trusted dir, ever? Used
- * to decide what to do about time skew.
- * 0 == No, and and we haven't tried asking an authority yet
- * 1 == No, we've launched a query but haven't heard back yet
- * 2 == Yes
- **/
-static int received_netinfo_from_trusted_dir = 0;
 
 /* These are the main functions for processing cells */
 static void command_process_create_cell(cell_t *cell, or_connection_t *conn);
@@ -628,16 +621,17 @@ command_process_netinfo_cell(cell_t *cell, or_connection_t *conn)
   }
 
   /* Act on apparent skew. */
-  /** Warn when we get a netinfo skew with at least this value.
-      Ignore if we've already received skew info from a trusted dir */
+  /** Warn when we get a netinfo skew with at least this value. */
 #define NETINFO_NOTICE_SKEW 3600
   if (labs(apparent_skew) > NETINFO_NOTICE_SKEW &&
-      router_get_by_id_digest(conn->identity_digest) &&
-      received_netinfo_from_trusted_dir != 2) {
+      router_get_by_id_digest(conn->identity_digest)) {
     char dbuf[64];
-
-    int severity = router_digest_is_trusted_dir(conn->identity_digest) ?
-                   LOG_WARN : LOG_INFO;
+    int severity;
+    /*XXXX be smarter about when everybody says we are skewed. */
+    if (router_digest_is_trusted_dir(conn->identity_digest))
+      severity = LOG_WARN;
+    else
+      severity = LOG_INFO;
     format_time_interval(dbuf, sizeof(dbuf), apparent_skew);
     log_fn(severity, LD_GENERAL, "Received NETINFO cell with skewed time from "
            "server at %s:%d.  It seems that our clock is %s by %s, or "
@@ -646,31 +640,13 @@ command_process_netinfo_cell(cell_t *cell, or_connection_t *conn)
            conn->_base.address, (int)conn->_base.port,
            apparent_skew>0 ? "ahead" : "behind", dbuf,
            apparent_skew>0 ? "behind" : "ahead");
-    if (severity == LOG_WARN) { /* only tell the controller if an authority */
+    if (severity == LOG_WARN) /* only tell the controller if an authority */
       control_event_general_status(LOG_WARN,
                           "CLOCK_SKEW SKEW=%ld SOURCE=OR:%s:%d",
                           apparent_skew,
                           conn->_base.address, conn->_base.port);
-      received_netinfo_from_trusted_dir = 2;
-    /* Connect to a trusted dir to trigger a NETINFO cell
-     * only if we haven't already */
-    } else if (received_netinfo_from_trusted_dir == 0) {
-      const routerstatus_t *any_trusted_dir =
-        router_pick_trusteddirserver(NO_AUTHORITY, 0);
-      tor_addr_t trusted_dir_addr;
-      tor_addr_from_ipv4h(&trusted_dir_addr, any_trusted_dir->addr);
-      connection_or_connect(&trusted_dir_addr,
-        any_trusted_dir->or_port,
-        any_trusted_dir->identity_digest);
-      received_netinfo_from_trusted_dir = 1;
-    }
   }
 
-  /* Note that we received a good netinfo cell from a trusted directory */
-  if (router_digest_is_trusted_dir(conn->identity_digest) &&
-      labs(apparent_skew) <= NETINFO_NOTICE_SKEW)
-    received_netinfo_from_trusted_dir = 2;
-
   /* XXX maybe act on my_apparent_addr, if the source is sufficiently
    * trustworthy. */
 



More information about the tor-commits mailing list