Merge branch 'maint-0.2.8'

This commit is contained in:
Nick Mathewson
2016-04-12 13:02:37 -04:00
9 changed files with 100 additions and 103 deletions
+2 -2
View File
@@ -24,9 +24,9 @@
/** A value which, when masked out of a pointer, produces a maximally aligned
* pointer. */
#if MEMAREA_ALIGN == 4
#define MEMAREA_ALIGN_MASK 3lu
#define MEMAREA_ALIGN_MASK ((uintptr_t)3)
#elif MEMAREA_ALIGN == 8
#define MEMAREA_ALIGN_MASK 7lu
#define MEMAREA_ALIGN_MASK ((uintptr_t)7)
#else
#error "void* is neither 4 nor 8 bytes long. I don't know how to align stuff."
#endif
+27 -33
View File
@@ -480,7 +480,7 @@ static config_var_t option_vars_[] = {
V(TestingClientConsensusDownloadSchedule, CSV_INTERVAL, "0, 0, 60, "
"300, 600, 1800, 3600, 3600, 3600, "
"10800, 21600, 43200"),
/* With the TestingClientBootstrapConsensus*Download* below:
/* With the ClientBootstrapConsensus*Download* below:
* Clients with only authorities will try:
* - 3 authorities over 10 seconds, then wait 60 minutes.
* Clients with authorities and fallbacks will try:
@@ -493,27 +493,27 @@ static config_var_t option_vars_[] = {
*
* When clients have authorities and fallbacks available, they use these
* schedules: (we stagger the times to avoid thundering herds) */
V(TestingClientBootstrapConsensusAuthorityDownloadSchedule, CSV_INTERVAL,
V(ClientBootstrapConsensusAuthorityDownloadSchedule, CSV_INTERVAL,
"10, 11, 3600, 10800, 25200, 54000, 111600, 262800" /* 3 days + 1 hour */),
V(TestingClientBootstrapConsensusFallbackDownloadSchedule, CSV_INTERVAL,
V(ClientBootstrapConsensusFallbackDownloadSchedule, CSV_INTERVAL,
"0, 1, 4, 11, 3600, 10800, 25200, 54000, 111600, 262800"),
/* When clients only have authorities available, they use this schedule: */
V(TestingClientBootstrapConsensusAuthorityOnlyDownloadSchedule, CSV_INTERVAL,
V(ClientBootstrapConsensusAuthorityOnlyDownloadSchedule, CSV_INTERVAL,
"0, 3, 7, 3600, 10800, 25200, 54000, 111600, 262800"),
/* We don't want to overwhelm slow networks (or mirrors whose replies are
* blocked), but we also don't want to fail if only some mirrors are
* blackholed. Clients will try 3 directories simultaneously.
* (Relays never use simultaneous connections.) */
V(TestingClientBootstrapConsensusMaxInProgressTries, UINT, "3"),
V(ClientBootstrapConsensusMaxInProgressTries, UINT, "3"),
V(TestingBridgeDownloadSchedule, CSV_INTERVAL, "3600, 900, 900, 3600"),
V(TestingClientMaxIntervalWithoutRequest, INTERVAL, "10 minutes"),
V(TestingDirConnectionMaxStall, INTERVAL, "5 minutes"),
V(TestingConsensusMaxDownloadTries, UINT, "8"),
/* Since we try connections rapidly and simultaneously, we can afford
* to give up earlier. (This protects against overloading directories.) */
V(TestingClientBootstrapConsensusMaxDownloadTries, UINT, "7"),
V(ClientBootstrapConsensusMaxDownloadTries, UINT, "7"),
/* We want to give up much earlier if we're only using authorities. */
V(TestingClientBootstrapConsensusAuthorityOnlyMaxDownloadTries, UINT, "4"),
V(ClientBootstrapConsensusAuthorityOnlyMaxDownloadTries, UINT, "4"),
V(TestingDescriptorMaxDownloadTries, UINT, "8"),
V(TestingMicrodescMaxDownloadTries, UINT, "8"),
V(TestingCertMaxDownloadTries, UINT, "8"),
@@ -537,6 +537,14 @@ static const config_var_t testing_tor_network_defaults[] = {
V(AssumeReachable, BOOL, "1"),
V(AuthDirMaxServersPerAddr, UINT, "0"),
V(AuthDirMaxServersPerAuthAddr,UINT, "0"),
V(ClientBootstrapConsensusAuthorityDownloadSchedule, CSV_INTERVAL,
"0, 2, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 8, 16, 32, 60"),
V(ClientBootstrapConsensusFallbackDownloadSchedule, CSV_INTERVAL,
"0, 1, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 8, 16, 32, 60"),
V(ClientBootstrapConsensusAuthorityOnlyDownloadSchedule, CSV_INTERVAL,
"0, 1, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 8, 16, 32, 60"),
V(ClientBootstrapConsensusMaxDownloadTries, UINT, "80"),
V(ClientBootstrapConsensusAuthorityOnlyMaxDownloadTries, UINT, "80"),
V(ClientDNSRejectInternalAddresses, BOOL,"0"),
V(ClientRejectInternalAddresses, BOOL, "0"),
V(CountPrivateBandwidth, BOOL, "1"),
@@ -560,18 +568,10 @@ static const config_var_t testing_tor_network_defaults[] = {
"15, 20, 30, 60"),
V(TestingClientConsensusDownloadSchedule, CSV_INTERVAL, "0, 0, 5, 10, "
"15, 20, 30, 60"),
V(TestingClientBootstrapConsensusAuthorityDownloadSchedule, CSV_INTERVAL,
"0, 2, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 8, 16, 32, 60"),
V(TestingClientBootstrapConsensusFallbackDownloadSchedule, CSV_INTERVAL,
"0, 1, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 8, 16, 32, 60"),
V(TestingClientBootstrapConsensusAuthorityOnlyDownloadSchedule, CSV_INTERVAL,
"0, 1, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 8, 16, 32, 60"),
V(TestingBridgeDownloadSchedule, CSV_INTERVAL, "60, 30, 30, 60"),
V(TestingClientMaxIntervalWithoutRequest, INTERVAL, "5 seconds"),
V(TestingDirConnectionMaxStall, INTERVAL, "30 seconds"),
V(TestingConsensusMaxDownloadTries, UINT, "80"),
V(TestingClientBootstrapConsensusMaxDownloadTries, UINT, "80"),
V(TestingClientBootstrapConsensusAuthorityOnlyMaxDownloadTries, UINT, "80"),
V(TestingDescriptorMaxDownloadTries, UINT, "80"),
V(TestingMicrodescMaxDownloadTries, UINT, "80"),
V(TestingCertMaxDownloadTries, UINT, "80"),
@@ -3864,16 +3864,10 @@ options_validate(or_options_t *old_options, or_options_t *options,
CHECK_DEFAULT(TestingClientDownloadSchedule);
CHECK_DEFAULT(TestingServerConsensusDownloadSchedule);
CHECK_DEFAULT(TestingClientConsensusDownloadSchedule);
CHECK_DEFAULT(TestingClientBootstrapConsensusAuthorityDownloadSchedule);
CHECK_DEFAULT(TestingClientBootstrapConsensusFallbackDownloadSchedule);
CHECK_DEFAULT(TestingClientBootstrapConsensusAuthorityOnlyDownloadSchedule);
CHECK_DEFAULT(TestingBridgeDownloadSchedule);
CHECK_DEFAULT(TestingClientMaxIntervalWithoutRequest);
CHECK_DEFAULT(TestingDirConnectionMaxStall);
CHECK_DEFAULT(TestingConsensusMaxDownloadTries);
CHECK_DEFAULT(TestingClientBootstrapConsensusMaxDownloadTries);
CHECK_DEFAULT(TestingClientBootstrapConsensusAuthorityOnlyMaxDownloadTries);
CHECK_DEFAULT(TestingClientBootstrapConsensusMaxInProgressTries);
CHECK_DEFAULT(TestingDescriptorMaxDownloadTries);
CHECK_DEFAULT(TestingMicrodescMaxDownloadTries);
CHECK_DEFAULT(TestingCertMaxDownloadTries);
@@ -3953,33 +3947,33 @@ options_validate(or_options_t *old_options, or_options_t *options,
COMPLAIN("TestingConsensusMaxDownloadTries is insanely high.");
}
if (options->TestingClientBootstrapConsensusMaxDownloadTries < 2) {
REJECT("TestingClientBootstrapConsensusMaxDownloadTries must be greater "
if (options->ClientBootstrapConsensusMaxDownloadTries < 2) {
REJECT("ClientBootstrapConsensusMaxDownloadTries must be greater "
"than 2."
);
} else if (options->TestingClientBootstrapConsensusMaxDownloadTries > 800) {
COMPLAIN("TestingClientBootstrapConsensusMaxDownloadTries is insanely "
} else if (options->ClientBootstrapConsensusMaxDownloadTries > 800) {
COMPLAIN("ClientBootstrapConsensusMaxDownloadTries is insanely "
"high.");
}
if (options->TestingClientBootstrapConsensusAuthorityOnlyMaxDownloadTries
if (options->ClientBootstrapConsensusAuthorityOnlyMaxDownloadTries
< 2) {
REJECT("TestingClientBootstrapConsensusAuthorityOnlyMaxDownloadTries must "
REJECT("ClientBootstrapConsensusAuthorityOnlyMaxDownloadTries must "
"be greater than 2."
);
} else if (
options->TestingClientBootstrapConsensusAuthorityOnlyMaxDownloadTries
options->ClientBootstrapConsensusAuthorityOnlyMaxDownloadTries
> 800) {
COMPLAIN("TestingClientBootstrapConsensusAuthorityOnlyMaxDownloadTries is "
COMPLAIN("ClientBootstrapConsensusAuthorityOnlyMaxDownloadTries is "
"insanely high.");
}
if (options->TestingClientBootstrapConsensusMaxInProgressTries < 1) {
REJECT("TestingClientBootstrapConsensusMaxInProgressTries must be greater "
if (options->ClientBootstrapConsensusMaxInProgressTries < 1) {
REJECT("ClientBootstrapConsensusMaxInProgressTries must be greater "
"than 0.");
} else if (options->TestingClientBootstrapConsensusMaxInProgressTries
} else if (options->ClientBootstrapConsensusMaxInProgressTries
> 100) {
COMPLAIN("TestingClientBootstrapConsensusMaxInProgressTries is insanely "
COMPLAIN("ClientBootstrapConsensusMaxInProgressTries is insanely "
"high.");
}
+3 -3
View File
@@ -3896,17 +3896,17 @@ find_dl_schedule(download_status_t *dls, const or_options_t *options)
if (!use_fallbacks) {
/* A bootstrapping client without extra fallback directories */
return
options->TestingClientBootstrapConsensusAuthorityOnlyDownloadSchedule;
options->ClientBootstrapConsensusAuthorityOnlyDownloadSchedule;
} else if (dls->want_authority) {
/* A bootstrapping client with extra fallback directories, but
* connecting to an authority */
return
options->TestingClientBootstrapConsensusAuthorityDownloadSchedule;
options->ClientBootstrapConsensusAuthorityDownloadSchedule;
} else {
/* A bootstrapping client connecting to extra fallback directories
*/
return
options->TestingClientBootstrapConsensusFallbackDownloadSchedule;
options->ClientBootstrapConsensusFallbackDownloadSchedule;
}
} else {
return options->TestingClientConsensusDownloadSchedule;
+3 -3
View File
@@ -802,10 +802,10 @@ consensus_max_download_tries(const or_options_t *options,
if (we_are_bootstrapping) {
if (use_fallbacks) {
return options->TestingClientBootstrapConsensusMaxDownloadTries;
return options->ClientBootstrapConsensusMaxDownloadTries;
} else {
return
options->TestingClientBootstrapConsensusAuthorityOnlyMaxDownloadTries;
options->ClientBootstrapConsensusAuthorityOnlyMaxDownloadTries;
}
}
@@ -850,7 +850,7 @@ update_consensus_networkstatus_downloads(time_t now)
/* Check if we already have enough connections in progress */
if (we_are_bootstrapping) {
max_in_progress_conns =
options->TestingClientBootstrapConsensusMaxInProgressTries;
options->ClientBootstrapConsensusMaxInProgressTries;
}
if (connection_dir_count_by_purpose_and_resource(
DIR_PURPOSE_FETCH_CONSENSUS,
+6 -6
View File
@@ -4193,7 +4193,7 @@ typedef struct {
* This schedule is incremented by (potentially concurrent) connection
* attempts, unlike other schedules, which are incremented by connection
* failures. Only altered on testing networks. */
smartlist_t *TestingClientBootstrapConsensusAuthorityDownloadSchedule;
smartlist_t *ClientBootstrapConsensusAuthorityDownloadSchedule;
/** Schedule for when clients should download consensuses from fallback
* directory mirrors if they are bootstrapping (that is, they don't have a
@@ -4203,7 +4203,7 @@ typedef struct {
* This schedule is incremented by (potentially concurrent) connection
* attempts, unlike other schedules, which are incremented by connection
* failures. Only altered on testing networks. */
smartlist_t *TestingClientBootstrapConsensusFallbackDownloadSchedule;
smartlist_t *ClientBootstrapConsensusFallbackDownloadSchedule;
/** Schedule for when clients should download consensuses from authorities
* if they are bootstrapping (that is, they don't have a usable, reasonably
@@ -4213,7 +4213,7 @@ typedef struct {
* This schedule is incremented by (potentially concurrent) connection
* attempts, unlike other schedules, which are incremented by connection
* failures. Only altered on testing networks. */
smartlist_t *TestingClientBootstrapConsensusAuthorityOnlyDownloadSchedule;
smartlist_t *ClientBootstrapConsensusAuthorityOnlyDownloadSchedule;
/** Schedule for when clients should download bridge descriptors. Only
* altered on testing networks. */
@@ -4235,17 +4235,17 @@ typedef struct {
/** How many times will a client try to fetch a consensus while
* bootstrapping using a list of fallback directories, before it gives up?
* Only altered on testing networks. */
int TestingClientBootstrapConsensusMaxDownloadTries;
int ClientBootstrapConsensusMaxDownloadTries;
/** How many times will a client try to fetch a consensus while
* bootstrapping using only a list of authorities, before it gives up?
* Only altered on testing networks. */
int TestingClientBootstrapConsensusAuthorityOnlyMaxDownloadTries;
int ClientBootstrapConsensusAuthorityOnlyMaxDownloadTries;
/** How many simultaneous in-progress connections will we make when trying
* to fetch a consensus before we wait for one to complete, timeout, or
* error out? Only altered on testing networks. */
int TestingClientBootstrapConsensusMaxInProgressTries;
int ClientBootstrapConsensusMaxInProgressTries;
/** How many times will we try to download a router's descriptor before
* giving up? Only altered on testing networks. */
+3 -3
View File
@@ -307,9 +307,9 @@ fixed_get_uname(void)
}
#define TEST_OPTIONS_OLD_VALUES "TestingV3AuthInitialVotingInterval 1800\n" \
"TestingClientBootstrapConsensusMaxDownloadTries 7\n" \
"TestingClientBootstrapConsensusAuthorityOnlyMaxDownloadTries 4\n" \
"TestingClientBootstrapConsensusMaxInProgressTries 3\n" \
"ClientBootstrapConsensusMaxDownloadTries 7\n" \
"ClientBootstrapConsensusAuthorityOnlyMaxDownloadTries 4\n" \
"ClientBootstrapConsensusMaxInProgressTries 3\n" \
"TestingV3AuthInitialVoteDelay 300\n" \
"TestingV3AuthInitialDistDelay 300\n" \
"TestingClientMaxIntervalWithoutRequest 600\n" \