Ver código fonte

refactor: using get_uptime() (and reset_uptime()) consistently.

Using get_uptime() and reset_uptime() instead of
accessing stats_n_seconds_working directly.

stats_n_seconds_working is not extern anymore.

Ticket #25081
Caio Valente 6 anos atrás
pai
commit
a4c8531260
5 arquivos alterados com 17 adições e 10 exclusões
  1. 1 1
      src/or/dirserv.c
  2. 1 1
      src/or/hibernate.c
  3. 13 6
      src/or/main.c
  4. 1 1
      src/or/main.h
  5. 1 1
      src/or/router.c

+ 1 - 1
src/or/dirserv.c

@@ -1417,7 +1417,7 @@ dirserv_thinks_router_is_hs_dir(const routerinfo_t *router,
    * tests aren't instant. If we haven't been running long enough,
    * trust the relay. */
 
-  if (stats_n_seconds_working >
+  if (get_uptime() >
       get_options()->MinUptimeHidServDirectoryV2 * 1.1)
     uptime = MIN(rep_hist_get_uptime(router->cache_info.identity_digest, now),
                  real_uptime(router, now));

+ 1 - 1
src/or/hibernate.c

@@ -866,7 +866,7 @@ hibernate_end(hibernate_state_t new_state)
 
   hibernate_state = new_state;
   hibernate_end_time = 0; /* no longer hibernating */
-  stats_n_seconds_working = 0; /* reset published uptime */
+  reset_uptime(); /* reset published uptime */
 }
 
 /** A wrapper around hibernate_begin, for when we get SIGINT. */

+ 13 - 6
src/or/main.c

@@ -1094,7 +1094,7 @@ directory_all_unreachable(time_t now)
 {
   (void)now;
 
-  stats_n_seconds_working=0; /* reset it */
+  reset_uptime(); /* reset it */
 
   if (!directory_all_unreachable_cb_event) {
     directory_all_unreachable_cb_event =
@@ -2062,7 +2062,7 @@ check_for_reachability_bw_callback(time_t now, const or_options_t *options)
   if (server_mode(options) &&
       (have_completed_a_circuit() || !any_predicted_circuits(now)) &&
       !net_is_disabled()) {
-    if (stats_n_seconds_working < TIMEOUT_UNTIL_UNREACHABILITY_COMPLAINT) {
+    if (get_uptime() < TIMEOUT_UNTIL_UNREACHABILITY_COMPLAINT) {
       consider_testing_reachability(1, dirport_reachability_count==0);
       if (++dirport_reachability_count > 5)
         dirport_reachability_count = 0;
@@ -2319,8 +2319,8 @@ second_elapsed_callback(periodic_timer_t *timer, void *arg)
       !net_is_disabled() &&
       seconds_elapsed > 0 &&
       have_completed_a_circuit() &&
-      stats_n_seconds_working / TIMEOUT_UNTIL_UNREACHABILITY_COMPLAINT !=
-      (stats_n_seconds_working+seconds_elapsed) /
+      get_uptime() / TIMEOUT_UNTIL_UNREACHABILITY_COMPLAINT !=
+      (get_uptime()+seconds_elapsed) /
         TIMEOUT_UNTIL_UNREACHABILITY_COMPLAINT) {
     /* every 20 minutes, check and complain if necessary */
     const routerinfo_t *me = router_get_my_routerinfo();
@@ -2464,9 +2464,9 @@ ip_address_changed(int at_interface)
     }
   } else {
     if (server) {
-      if (stats_n_seconds_working > UPTIME_CUTOFF_FOR_NEW_BANDWIDTH_TEST)
+      if (get_uptime() > UPTIME_CUTOFF_FOR_NEW_BANDWIDTH_TEST)
         reset_bandwidth_test();
-      stats_n_seconds_working = 0;
+      reset_uptime();
       router_reset_reachability();
     }
   }
@@ -3004,6 +3004,13 @@ get_uptime,(void))
   return stats_n_seconds_working;
 }
 
+/** Reset Tor's uptime. */
+MOCK_IMPL(void,
+reset_uptime,(void))
+{
+  stats_n_seconds_working = 0;
+}
+
 /**
  * Write current memory usage information to the log.
  */

+ 1 - 1
src/or/main.h

@@ -63,6 +63,7 @@ void reschedule_descriptor_update_check(void);
 void reschedule_directory_downloads(void);
 
 MOCK_DECL(long,get_uptime,(void));
+MOCK_DECL(void,reset_uptime,(void));
 
 unsigned get_signewnym_epoch(void);
 
@@ -87,7 +88,6 @@ uint64_t get_main_loop_error_count(void);
 uint64_t get_main_loop_idle_count(void);
 
 extern time_t time_of_process_start;
-extern long stats_n_seconds_working;
 extern int quiet_level;
 extern int global_read_bucket;
 extern int global_write_bucket;

+ 1 - 1
src/or/router.c

@@ -2922,7 +2922,7 @@ router_dump_router_to_string(routerinfo_t *router,
     proto_line,
     published,
     fingerprint,
-    stats_n_seconds_working,
+    get_uptime(),
     (int) router->bandwidthrate,
     (int) router->bandwidthburst,
     (int) router->bandwidthcapacity,