Browse Source

Bug1789 cleanups suggested by arma

The significant one is that we look at RelayBandwidthRate if it is set.
Nick Mathewson 13 years ago
parent
commit
9cba61eb8c
2 changed files with 10 additions and 7 deletions
  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). */