|  | @@ -1383,13 +1383,6 @@ options_act(const or_options_t *old_options)
 | 
	
		
			
				|  |  |    if (accounting_is_enabled(options))
 | 
	
		
			
				|  |  |      configure_accounting(time(NULL));
 | 
	
		
			
				|  |  |  
 | 
	
		
			
				|  |  | -  if (options->TokenBucketRefillInterval < 0
 | 
	
		
			
				|  |  | -      || options->TokenBucketRefillInterval > 1000) {
 | 
	
		
			
				|  |  | -    log_warn(LD_CONFIG, "Token bucket refill interval must be in the range "
 | 
	
		
			
				|  |  | -                        "of [0:1000]");
 | 
	
		
			
				|  |  | -    return -1;
 | 
	
		
			
				|  |  | -  }
 | 
	
		
			
				|  |  | -
 | 
	
		
			
				|  |  |  #ifdef USE_BUFFEREVENTS
 | 
	
		
			
				|  |  |    /* If we're using the bufferevents implementation and our rate limits
 | 
	
		
			
				|  |  |     * changed, we need to tell the rate-limiting system about it. */
 | 
	
	
		
			
				|  | @@ -3173,6 +3166,11 @@ options_validate(or_options_t *old_options, or_options_t *options,
 | 
	
		
			
				|  |  |      REJECT("TransPort and TransListenAddress are disabled in this build.");
 | 
	
		
			
				|  |  |  #endif
 | 
	
		
			
				|  |  |  
 | 
	
		
			
				|  |  | +  if (options->TokenBucketRefillInterval <= 0
 | 
	
		
			
				|  |  | +      || options->TokenBucketRefillInterval > 1000) {
 | 
	
		
			
				|  |  | +    REJECT("TokenBucketRefillInterval must be between 1 and 1000 inclusive.");
 | 
	
		
			
				|  |  | +  }
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  |    if (options->AccountingMax &&
 | 
	
		
			
				|  |  |        (is_listening_on_low_port(options->ORPort, options->ORListenAddress) ||
 | 
	
		
			
				|  |  |         is_listening_on_low_port(options->DirPort, options->DirListenAddress)))
 | 
	
	
		
			
				|  | @@ -3975,6 +3973,12 @@ options_transition_allowed(const or_options_t *old,
 | 
	
		
			
				|  |  |      return -1;
 | 
	
		
			
				|  |  |    }
 | 
	
		
			
				|  |  |  
 | 
	
		
			
				|  |  | +  if (old->TokenBucketRefillInterval != new_val->TokenBucketRefillInterval) {
 | 
	
		
			
				|  |  | +    *msg = tor_strdup("While Tor is running, changing TokenBucketRefill"
 | 
	
		
			
				|  |  | +                      "Interval is not allowed");
 | 
	
		
			
				|  |  | +    return -1;
 | 
	
		
			
				|  |  | +  }
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  |    if (old->DisableIOCP != new_val->DisableIOCP) {
 | 
	
		
			
				|  |  |      *msg = tor_strdup("While Tor is running, changing DisableIOCP "
 | 
	
		
			
				|  |  |                        "is not allowed.");
 |