|  | @@ -14,6 +14,7 @@
 | 
	
		
			
				|  |  |  #define CONSDIFFMGR_PRIVATE
 | 
	
		
			
				|  |  |  
 | 
	
		
			
				|  |  |  #include "or.h"
 | 
	
		
			
				|  |  | +#include "config.h"
 | 
	
		
			
				|  |  |  #include "conscache.h"
 | 
	
		
			
				|  |  |  #include "consdiff.h"
 | 
	
		
			
				|  |  |  #include "consdiffmgr.h"
 | 
	
	
		
			
				|  | @@ -462,12 +463,22 @@ cdm_cache_lookup_consensus(consensus_flavor_t flavor, time_t valid_after)
 | 
	
		
			
				|  |  |  static int32_t
 | 
	
		
			
				|  |  |  get_max_age_to_cache(void)
 | 
	
		
			
				|  |  |  {
 | 
	
		
			
				|  |  | -  /* The parameter is in hours. */
 | 
	
		
			
				|  |  |    const int32_t DEFAULT_MAX_AGE_TO_CACHE = 8192;
 | 
	
		
			
				|  |  |    const int32_t MIN_MAX_AGE_TO_CACHE = 0;
 | 
	
		
			
				|  |  |    const int32_t MAX_MAX_AGE_TO_CACHE = 8192;
 | 
	
		
			
				|  |  |    const char MAX_AGE_TO_CACHE_NAME[] = "max-consensus-age-to-cache-for-diff";
 | 
	
		
			
				|  |  |  
 | 
	
		
			
				|  |  | +  const or_options_t *options = get_options();
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  | +  if (options->MaxConsensusAgeForDiffs) {
 | 
	
		
			
				|  |  | +    const int v = options->MaxConsensusAgeForDiffs;
 | 
	
		
			
				|  |  | +    if (v >= MAX_MAX_AGE_TO_CACHE * 3600)
 | 
	
		
			
				|  |  | +      return MAX_MAX_AGE_TO_CACHE;
 | 
	
		
			
				|  |  | +    else
 | 
	
		
			
				|  |  | +      return v;
 | 
	
		
			
				|  |  | +  }
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  | +  /* The parameter is in hours, so we multiply */
 | 
	
		
			
				|  |  |    return 3600 * networkstatus_get_param(NULL,
 | 
	
		
			
				|  |  |                                          MAX_AGE_TO_CACHE_NAME,
 | 
	
		
			
				|  |  |                                          DEFAULT_MAX_AGE_TO_CACHE,
 |