Browse Source

Make NETINFO clock skew detection work on clients

An unnecessary routerlist check in the NETINFO clock skew detection in
channel_tls_process_netinfo_cell() was preventing clients from
reporting NETINFO clock skew to controllers.
Taylor Yu 6 years ago
parent
commit
e31a7be161
2 changed files with 8 additions and 2 deletions
  1. 5 0
      changes/bug23532
  2. 3 2
      src/or/channeltls.c

+ 5 - 0
changes/bug23532

@@ -0,0 +1,5 @@
+  o Minor bugfixes (usability, control port):
+    - Stop making an unnecessary routerlist check in NETINFO clock
+      skew detection; this was preventing clients from reporting
+      NETINFO clock skew to controllers.  Fixes bug 23532; bugfix on
+      0.2.4.4-alpha.

+ 3 - 2
src/or/channeltls.c

@@ -1827,8 +1827,9 @@ channel_tls_process_netinfo_cell(cell_t *cell, channel_tls_t *chan)
   /** 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(chan->conn->identity_digest)) {
-    int trusted = router_digest_is_trusted_dir(chan->conn->identity_digest);
+      (started_here ||
+       connection_or_digest_is_known_relay(identity_digest))) {
+    int trusted = router_digest_is_trusted_dir(identity_digest);
     clock_skew_warning(TO_CONN(chan->conn), apparent_skew, trusted, LD_GENERAL,
                        "NETINFO cell", "OR");
   }