*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.");