Merge branch 'maint-0.3.1' into release-0.3.1
This commit is contained in:
commit
05ca8ab5b6
|
@ -0,0 +1,7 @@
|
|||
o Minor features (directory cache, consensus diff):
|
||||
- Add a new MaxConsensusAgeForDiffs option to allow directory cache
|
||||
operators with low-resource environments to adjust the number of
|
||||
consensuses they'll store and generate diffs from. Most cache operators
|
||||
should leave it unchanged. Helps to work around bug 22883.
|
||||
|
||||
|
|
@ -2072,6 +2072,16 @@ details.)
|
|||
because clients connect via the ORPort by default. Setting either DirPort
|
||||
or BridgeRelay and setting DirCache to 0 is not supported. (Default: 1)
|
||||
|
||||
[[MaxConsensusAgeForDiffs]] **MaxConsensusAgeForDiffs** __N__ **minutes**|**hours**|**days**|**weeks**::
|
||||
When this option is nonzero, Tor caches will not try to generate
|
||||
consensus diffs for any consensus older than this amount of time.
|
||||
If this option is set to zero, Tor will pick a reasonable default from
|
||||
the current networkstatus document. You should not set this
|
||||
option unless your cache is severely low on disk space or CPU.
|
||||
If you need to set it, keeping it above 3 or 4 hours will help clients
|
||||
much more than setting it to zero.
|
||||
(Default: 0)
|
||||
|
||||
|
||||
DIRECTORY AUTHORITY SERVER OPTIONS
|
||||
----------------------------------
|
||||
|
|
|
@ -393,6 +393,7 @@ static config_var_t option_vars_[] = {
|
|||
V(MaxAdvertisedBandwidth, MEMUNIT, "1 GB"),
|
||||
V(MaxCircuitDirtiness, INTERVAL, "10 minutes"),
|
||||
V(MaxClientCircuitsPending, UINT, "32"),
|
||||
V(MaxConsensusAgeForDiffs, INTERVAL, "0 seconds"),
|
||||
VAR("MaxMemInQueues", MEMUNIT, MaxMemInQueues_raw, "0"),
|
||||
OBSOLETE("MaxOnionsPending"),
|
||||
V(MaxOnionQueueDelay, MSEC_INTERVAL, "1750 msec"),
|
||||
|
|
|
@ -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,
|
||||
|
|
|
@ -4558,6 +4558,11 @@ typedef struct {
|
|||
|
||||
/** Bool (default: 0): Tells if a %include was used on torrc */
|
||||
int IncludeUsed;
|
||||
|
||||
/** The seconds after expiration which we as a relay should keep old
|
||||
* consensuses around so that we can generate diffs from them. If 0,
|
||||
* use the default. */
|
||||
int MaxConsensusAgeForDiffs;
|
||||
} or_options_t;
|
||||
|
||||
/** Persistent state for an onion router, as saved to disk. */
|
||||
|
|
Loading…
Reference in New Issue