소스 검색

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


svn:r9652

Nick Mathewson 18 년 전
부모
커밋
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
       whether we have enough information to build circuits. (Fixes
       bug 373.)
+    - Put a lower-bound on MaxAdvertisedBandwidth.
 
 
 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");
     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)
     REJECT("BandwidthBurst must be at least equal to BandwidthRate.");