Browse Source

i lied, that won't work at all. maybe this will.

svn:r6805
Roger Dingledine 18 years ago
parent
commit
2d6a4d283b
4 changed files with 14 additions and 8 deletions
  1. 1 2
      src/or/config.c
  2. 2 2
      src/or/main.c
  3. 1 0
      src/or/or.h
  4. 10 4
      src/or/rephist.c

+ 1 - 2
src/or/config.c

@@ -796,8 +796,7 @@ options_act(or_options_t *old_options)
           return -1;
         }
         server_has_changed_ip();
-        if (has_completed_circuit ||
-            rep_hist_circbuilding_dormant(time(NULL)))
+        if (has_completed_circuit || any_predicted_circuits(time(NULL)))
           inform_testing_reachability();
       }
       cpuworkers_rotate();

+ 2 - 2
src/or/main.c

@@ -569,7 +569,7 @@ directory_info_has_arrived(time_t now, int from_cache)
   }
 
   if (server_mode(options) && !we_are_hibernating() && !from_cache &&
-      (has_completed_circuit || rep_hist_circbuilding_dormant(now)))
+      (has_completed_circuit || any_predicted_circuits(now)))
     consider_testing_reachability();
 }
 
@@ -833,7 +833,7 @@ run_scheduled_events(time_t now)
     /* also, check religiously for reachability, if it's within the first
      * 20 minutes of our uptime. */
     if (server_mode(options) &&
-        (has_completed_circuit || rep_hist_circbuilding_dormant(now)) &&
+        (has_completed_circuit || any_predicted_circuits(now)) &&
         stats_n_seconds_working < TIMEOUT_UNTIL_UNREACHABILITY_COMPLAINT &&
         !we_are_hibernating())
       consider_testing_reachability();

+ 1 - 0
src/or/or.h

@@ -2141,6 +2141,7 @@ void rep_hist_note_used_internal(time_t now, int need_uptime,
 int rep_hist_get_predicted_internal(time_t now, int *need_uptime,
                                     int *need_capacity);
 
+int any_predicted_circuits(time_t now);
 int rep_hist_circbuilding_dormant(time_t now);
 
 void rep_hist_free_all(void);

+ 10 - 4
src/or/rephist.c

@@ -912,14 +912,20 @@ rep_hist_get_predicted_internal(time_t now, int *need_uptime,
   return 1;
 }
 
+/** Any ports used lately? These are pre-seeded if we just started
+ * up or if we're running a hidden service. */
+int
+any_predicted_circuits(time_t now)
+{
+  return smartlist_len(predicted_ports_list) ||
+         predicted_internal_time + PREDICTED_CIRCS_RELEVANCE_TIME >= now;
+}
+
 /** Return 1 if we have no need for circuits currently, else return 0. */
 int
 rep_hist_circbuilding_dormant(time_t now)
 {
-  /* Any ports used lately? These are pre-seeded if we just started
-   * up or if we're running a hidden service. */
-  if (smartlist_len(predicted_ports_list) ||
-      predicted_internal_time + PREDICTED_CIRCS_RELEVANCE_TIME >= now)
+  if (any_predicted_circuits(now))
     return 0;
 
   /* see if we'll still need to build testing circuits */