Browse Source

Merge remote-tracking branch 'public/bug12170_024_v2'

Nick Mathewson 10 years ago
parent
commit
723894f114
2 changed files with 15 additions and 2 deletions
  1. 11 0
      changes/bug12170
  2. 4 2
      src/or/nodelist.c

+ 11 - 0
changes/bug12170

@@ -0,0 +1,11 @@
+  o Major bugfixes (performance):
+    - Do not recompute whether we have sufficient information to build
+      circuits every time we make a successful connection. Previously,
+      we would forget our cached value for this flag every time we
+      successfully opened a channel (or marked a router as running or not
+      running for any
+      other reason), regardless of whether we had
+      previously believed the router to be running. This forced us to
+      run a fairly expensive update operation with relatively
+      high frequency.
+      Fixes bug 12170; bugfix on 0.1.2.1-alpha.

+ 4 - 2
src/or/nodelist.c

@@ -1249,10 +1249,12 @@ router_set_status(const char *digest, int up)
     if (!up && node_is_me(node) && !net_is_disabled())
       log_warn(LD_NET, "We just marked ourself as down. Are your external "
                "addresses reachable?");
+
+    if (bool_neq(node->is_running, up))
+      router_dir_info_changed();
+
     node->is_running = up;
   }
-
-  router_dir_info_changed();
 }
 
 /** True iff, the last time we checked whether we had enough directory info