Commit eafcd7b0 authored by Nick Mathewson's avatar Nick Mathewson 🤹
Browse files

Merge branch 'maint-0.2.8'

parents 59102925 7babf332
Loading
Loading
Loading
Loading

changes/bug18481

0 → 100644
+5 −0
Original line number Diff line number Diff line
  o Minor bugfixes (client):
    - Turn all TestingClientBootstrap* into non-testing torrc options. This
      changes simply renames them by removing "Testing" in front of them and
      they do not require TestingTorNetwork to be enabled anymore. Fixes
      #18481; bugfix on tor-0.2.8.1-alpha.

changes/bug18716

0 → 100644
+4 −0
Original line number Diff line number Diff line
  o Minor bugfixes (assert, portability):
    - Fix an assertion failure in memarea.c on systems where "long" is
      shorter than the size of a pointer.
      Fixes bug 18716; bugfix on 0.2.1.1-alpha
+47 −53
Original line number Diff line number Diff line
@@ -1558,6 +1558,45 @@ The following options are useful only for clients (that is, if
    Tor will use a default value chosen by the directory
    authorities. (Default: -1.)

[[ClientBootstrapConsensusAuthorityDownloadSchedule]] **ClientBootstrapConsensusAuthorityDownloadSchedule** __N__,__N__,__...__::
    Schedule for when clients should download consensuses from authorities
    if they are bootstrapping (that is, they don't have a usable, reasonably
    live consensus). Only used by clients fetching from a list of fallback
    directory mirrors. This schedule is advanced by (potentially concurrent)
    connection attempts, unlike other schedules, which are advanced by
    connection failures. (Default: 10, 11, 3600, 10800, 25200, 54000,
    111600, 262800)

[[ClientBootstrapConsensusFallbackDownloadSchedule]] **ClientBootstrapConsensusFallbackDownloadSchedule** __N__,__N__,__...__::
    Schedule for when clients should download consensuses from fallback
    directory mirrors if they are bootstrapping (that is, they don't have a
    usable, reasonably live consensus). Only used by clients fetching from a
    list of fallback directory mirrors. This schedule is advanced by
    (potentially concurrent) connection attempts, unlike other schedules,
    which are advanced by connection failures. (Default: 0, 1, 4, 11, 3600,
    10800, 25200, 54000, 111600, 262800)

[[ClientBootstrapConsensusAuthorityOnlyDownloadSchedule]] **ClientBootstrapConsensusAuthorityOnlyDownloadSchedule** __N__,__N__,__...__::
    Schedule for when clients should download consensuses from authorities
    if they are bootstrapping (that is, they don't have a usable, reasonably
    live consensus). Only used by clients which don't have or won't fetch
    from a list of fallback directory mirrors. This schedule is advanced by
    (potentially concurrent) connection attempts, unlike other schedules,
    which are advanced by connection failures. (Default: 0, 3, 7, 3600,
    10800, 25200, 54000, 111600, 262800)

[[ClientBootstrapConsensusMaxDownloadTries]] **ClientBootstrapConsensusMaxDownloadTries** __NUM__::
    Try this many times to download a consensus while bootstrapping using
    fallback directory mirrors before giving up. (Default: 7)

[[ClientBootstrapConsensusAuthorityOnlyMaxDownloadTries]] **ClientBootstrapConsensusAuthorityOnlyMaxDownloadTries** __NUM__::
    Try this many times to download a consensus while bootstrapping using
    authorities before giving up. (Default: 4)

[[ClientBootstrapConsensusMaxInProgressTries]] **ClientBootstrapConsensusMaxInProgressTries** __NUM__::
    Try this many simultaneous connections to download a consensus before
    waiting for one to complete, timeout, or error out. (Default: 4)

SERVER OPTIONS
--------------

@@ -2347,6 +2386,14 @@ The following options are used for running a testing Tor network.
       AssumeReachable 1
       AuthDirMaxServersPerAddr 0
       AuthDirMaxServersPerAuthAddr 0
       ClientBootstrapConsensusAuthorityDownloadSchedule 0, 2,
          4 (for 40 seconds), 8, 16, 32, 60
       ClientBootstrapConsensusFallbackDownloadSchedule 0, 1,
          4 (for 40 seconds), 8, 16, 32, 60
       ClientBootstrapConsensusAuthorityOnlyDownloadSchedule 0, 1,
          4 (for 40 seconds), 8, 16, 32, 60
       ClientBootstrapConsensusMaxDownloadTries 80
       ClientBootstrapConsensusAuthorityOnlyMaxDownloadTries 80
       ClientDNSRejectInternalAddresses 0
       ClientRejectInternalAddresses 0
       CountPrivateBandwidth 1
@@ -2365,18 +2412,10 @@ The following options are used for running a testing Tor network.
       TestingClientDownloadSchedule 0, 0, 5, 10, 15, 20, 30, 60
       TestingServerConsensusDownloadSchedule 0, 0, 5, 10, 15, 20, 30, 60
       TestingClientConsensusDownloadSchedule 0, 0, 5, 10, 15, 20, 30, 60
       TestingClientBootstrapConsensusAuthorityDownloadSchedule 0, 2,
           4 (for 40 seconds), 8, 16, 32, 60
       TestingClientBootstrapConsensusFallbackDownloadSchedule 0, 1,
           4 (for 40 seconds), 8, 16, 32, 60
       TestingClientBootstrapConsensusAuthorityOnlyDownloadSchedule 0, 1,
           4 (for 40 seconds), 8, 16, 32, 60
       TestingBridgeDownloadSchedule 60, 30, 30, 60
       TestingClientMaxIntervalWithoutRequest 5 seconds
       TestingDirConnectionMaxStall 30 seconds
       TestingConsensusMaxDownloadTries 80
       TestingClientBootstrapConsensusMaxDownloadTries 80
       TestingClientBootstrapConsensusAuthorityOnlyMaxDownloadTries 80
       TestingDescriptorMaxDownloadTries 80
       TestingMicrodescMaxDownloadTries 80
       TestingCertMaxDownloadTries 80
@@ -2437,36 +2476,6 @@ The following options are used for running a testing Tor network.
    requires that **TestingTorNetwork** is set. (Default: 0, 0, 60, 300, 600,
    1800, 3600, 3600, 3600, 10800, 21600, 43200)

[[TestingClientBootstrapConsensusAuthorityDownloadSchedule]] **TestingClientBootstrapConsensusAuthorityDownloadSchedule** __N__,__N__,__...__::
    Schedule for when clients should download consensuses from authorities if
    they are bootstrapping (that is, they don't have a usable, reasonably live
    consensus). Only used by clients fetching from a list of fallback
    directory mirrors. This schedule is advanced by (potentially concurrent)
    connection attempts, unlike other schedules, which are advanced by
    connection failures. Changing this schedule requires that
    **TestingTorNetwork** is set. (Default: 10, 11, 3600, 10800, 25200, 54000,
    111600, 262800)

[[TestingClientBootstrapConsensusFallbackDownloadSchedule]] **TestingClientBootstrapConsensusFallbackDownloadSchedule** __N__,__N__,__...__::
    Schedule for when clients should download consensuses from fallback
    directory mirrors if they are bootstrapping (that is, they don't have a
    usable, reasonably live consensus). Only used by clients fetching from a
    list of fallback directory mirrors.  This schedule is advanced by
    (potentially concurrent) connection attempts, unlike other schedules, which
    are advanced by connection failures. Changing this schedule requires that
    **TestingTorNetwork** is set. (Default: 0, 1, 4, 11, 3600, 10800, 25200,
    54000, 111600, 262800)

[[TestingClientBootstrapConsensusAuthorityOnlyDownloadSchedule]] **TestingClientBootstrapConsensusAuthorityOnlyDownloadSchedule** __N__,__N__,__...__::
    Schedule for when clients should download consensuses from authorities if
    they are bootstrapping (that is, they don't have a usable, reasonably live
    consensus). Only used by clients which don't have or won't fetch from a
    list of fallback directory mirrors. This schedule is advanced by
    (potentially concurrent) connection attempts, unlike other schedules,
    which are advanced by connection failures. Changing this schedule requires
    that **TestingTorNetwork** is set. (Default: 0, 3, 7, 3600, 10800, 25200,
    54000, 111600, 262800)

[[TestingBridgeDownloadSchedule]] **TestingBridgeDownloadSchedule** __N__,__N__,__...__::
    Schedule for when clients should download bridge descriptors. Changing this
    requires that **TestingTorNetwork** is set. (Default: 3600, 900, 900, 3600)
@@ -2486,21 +2495,6 @@ The following options are used for running a testing Tor network.
    Try this many times to download a consensus before giving up. Changing
    this requires that **TestingTorNetwork** is set. (Default: 8)

[[TestingClientBootstrapConsensusMaxDownloadTries]] **TestingClientBootstrapConsensusMaxDownloadTries** __NUM__::
    Try this many times to download a consensus while bootstrapping using
    fallback directory mirrors before giving up. Changing this requires that
    **TestingTorNetwork** is set. (Default: 7)

[[TestingClientBootstrapConsensusAuthorityOnlyMaxDownloadTries]] **TestingClientBootstrapConsensusAuthorityOnlyMaxDownloadTries** __NUM__::
    Try this many times to download a consensus while bootstrapping using
    authorities before giving up. Changing this requires that
    **TestingTorNetwork** is set. (Default: 4)

[[TestingClientBootstrapConsensusMaxInProgressTries]] **TestingClientBootstrapConsensusMaxInProgressTries** __NUM__::
    Try this many simultaneous connections to download a consensus before
    waiting for one to complete, timeout, or error out. Changing this
    requires that **TestingTorNetwork** is set. (Default: 4)

[[TestingDescriptorMaxDownloadTries]] **TestingDescriptorMaxDownloadTries** __NUM__::
    Try this often to download a server descriptor before giving up.
    Changing this requires that **TestingTorNetwork** is set. (Default: 8)
+2 −2
Original line number Diff line number Diff line
@@ -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
Original line number Diff line number Diff line
@@ -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.");
  }

Loading