Explorar el Código

Bug1789 cleanups suggested by arma

The significant one is that we look at RelayBandwidthRate if it is set.
Nick Mathewson hace 13 años
padre
commit
9cba61eb8c
Se han modificado 2 ficheros con 10 adiciones y 7 borrados
  1. 4 4
      changes/bug1789
  2. 6 3
      src/or/hibernate.c

+ 4 - 4
changes/bug1789

@@ -1,10 +1,10 @@
   o Minor features:
     - Be more generous with how much bandwidth we'd use up (with
       accounting enabled) before entering "soft hibernation".
-      Previously, we'd hibernate once we'd used up 95% of our allotment.
-      Now, we use up 95% of our allotment, AND make sure that we have
-      no more than 500MB/3 hours of traffic remaining before we enter
-      soft hibernation.
+      Previously, we'd hibernate once we'd used up 95% of our
+      allotment.  Now, we use up 95% of our allotment, AND make sure
+      that we have no more than 500MB (or 3 hours of expected traffic,
+      whichever is lower) remaining before we enter soft hibernation.
 
   o Minor bugfixes:
     - For bandwidth accounting, calculate our expected bandwidth rate

+ 6 - 3
src/or/hibernate.c

@@ -382,7 +382,10 @@ static void
 update_expected_bandwidth(void)
 {
   uint64_t expected;
-  uint64_t max_configured = (get_options()->BandwidthRate * 60);
+  or_options_t *options= get_options();
+  uint64_t max_configured = (options->RelayBandwidthRate > 0 ?
+                             options->RelayBandwidthRate :
+                             options->BandwidthRate) * 60;
 
 #define MIN_TIME_FOR_MEASUREMENT (1800)
 
@@ -628,7 +631,7 @@ read_bandwidth_usage(void)
   interval_start_time = state->AccountingIntervalStart;
   expected_bandwidth_usage = state->AccountingExpectedUsage;
 
-  /* Older versions of Tor (before 0.2.2.16-alpha) didn't generate these
+  /* Older versions of Tor (before 0.2.2.17-alpha or so) didn't generate these
    * fields. If you switch back and forth, you might get an
    * AccountingSoftLimitHitAt value from long before the most recent
    * interval_start_time.  If that's so, then ignore the softlimit-related
@@ -732,7 +735,7 @@ hibernate_begin(hibernate_state_t new_state, time_t now)
     soft_limit_hit_at = now;
     n_seconds_to_hit_soft_limit = n_seconds_active_in_interval;
     n_bytes_at_soft_limit = MAX(n_bytes_read_in_interval,
-                               n_bytes_written_in_interval);
+                                n_bytes_written_in_interval);
   }
 
   /* close listeners. leave control listener(s). */