From 333bf44471acbccf896774e6cfe6041356da5879 Mon Sep 17 00:00:00 2001 From: Nick Mathewson Date: Sun, 25 Feb 2007 19:43:23 +0000 Subject: [PATCH] r11944@catbus: nickm | 2007-02-25 14:43:18 -0500 Add a lower-bound on MaxAdvertisedBandwidth. svn:r9652 --- ChangeLog | 1 + src/or/config.c | 29 ++++++++++++++++++++--------- 2 files changed, 21 insertions(+), 9 deletions(-) diff --git a/ChangeLog b/ChangeLog index 1d8c09251e..03732be340 100644 --- a/ChangeLog +++ b/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 diff --git a/src/or/config.c b/src/or/config.c index 98922ebc6a..70b4dc598d 100644 --- a/src/or/config.c +++ b/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."); -- 2.11.4.GIT