Просмотр исходного кода

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


svn:r9652

Nick Mathewson 19 лет назад
Родитель
Сommit
333bf44471
2 измененных файлов с 21 добавлено и 9 удалено
  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.");