Browse Source

r11944@catbus: nickm | 2007-02-25 14:43:18 -0500
Add a lower-bound on MaxAdvertisedBandwidth.


svn:r9652

Nick Mathewson 19 years ago
parent
commit
333bf44471
2 changed files with 21 additions and 9 deletions
  1. 1 0
      ChangeLog
  2. 20 9
      src/or/config.c

+ 1 - 0
ChangeLog

@@ -102,6 +102,7 @@ Changes in version 0.1.2.8-rc - 2007-02-??
     - Always remove expired routers and networkstatus docs before checking
     - Always remove expired routers and networkstatus docs before checking
       whether we have enough information to build circuits. (Fixes
       whether we have enough information to build circuits. (Fixes
       bug 373.)
       bug 373.)
+    - Put a lower-bound on MaxAdvertisedBandwidth.
 
 
 
 
 Changes in version 0.1.2.7-alpha - 2007-02-06
 Changes in version 0.1.2.7-alpha - 2007-02-06

+ 20 - 9
src/or/config.c

@@ -2647,16 +2647,27 @@ options_validate(or_options_t *old_options, or_options_t *options,
     *msg = tor_strdup(r >= 0 ? buf : "internal error");
     *msg = tor_strdup(r >= 0 ? buf : "internal error");
     return -1;
     return -1;
   }
   }
-  if (server_mode(options) &&
-      options->BandwidthRate < ROUTER_REQUIRED_MIN_BANDWIDTH*2) {
-    r = tor_snprintf(buf, sizeof(buf),
-                     "BandwidthRate is set to %d bytes/second. "
-                     "For servers, it must be at least %d.",
-                     (int)options->BandwidthRate,
-                     ROUTER_REQUIRED_MIN_BANDWIDTH*2);
-    *msg = tor_strdup(r >= 0 ? buf : "internal error");
-    return -1;
+  if (server_mode(options)) {
+    if (options->BandwidthRate < ROUTER_REQUIRED_MIN_BANDWIDTH*2) {
+      r = tor_snprintf(buf, sizeof(buf),
+                       "BandwidthRate is set to %d bytes/second. "
+                       "For servers, it must be at least %d.",
+                       (int)options->BandwidthRate,
+                       ROUTER_REQUIRED_MIN_BANDWIDTH*2);
+      *msg = tor_strdup(r >= 0 ? buf : "internal error");
+      return -1;
+    } else if (options->MaxAdvertisedBandwidth <
+               ROUTER_REQUIRED_MIN_BANDWIDTH) {
+      r = tor_snprintf(buf, sizeof(buf),
+                       "MaxAdvertisedBandwidth is set to %d bytes/second. "
+                       "For servers, it must be at least %d.",
+                       (int)options->MaxAdvertisedBandwidth,
+                       ROUTER_REQUIRED_MIN_BANDWIDTH);
+      *msg = tor_strdup(r >= 0 ? buf : "internal error");
+      return -1;
+    }
   }
   }
+
   if (options->BandwidthRate > options->BandwidthBurst)
   if (options->BandwidthRate > options->BandwidthBurst)
     REJECT("BandwidthBurst must be at least equal to BandwidthRate.");
     REJECT("BandwidthBurst must be at least equal to BandwidthRate.");