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