Commit 4413b030 authored by Nick Mathewson's avatar Nick Mathewson 🤹
Browse files

Simplify CHECK_DEFAULT() logic a little further.

Since each of these tests only applies to testing networks, put them
all into a single block that checks for testing networks.

(I recommend reviewing with the "diff -b" option, since the change
is mostly indentation.)
parent 8d84e10e
Loading
Loading
Loading
Loading
+29 −28
Original line number Diff line number Diff line
@@ -4487,20 +4487,20 @@ options_validate(or_options_t *old_options, or_options_t *options,
           "AlternateDirAuthority and AlternateBridgeAuthority configured.");
  }

  /* Check for options that can only be changed from the defaults in testing
     networks.  */
  or_options_t *dflt_options = options_new();
  options_init(dflt_options);
#define CHECK_DEFAULT(arg)                                              \
  STMT_BEGIN                                                            \
    if (!options->TestingTorNetwork &&                                  \
        !options->UsingTestNetworkDefaults_ &&                          \
        !config_is_same(get_options_mgr(),options,                      \
    if (!config_is_same(get_options_mgr(),options,                      \
                        dflt_options,#arg)) {                           \
      or_options_free(dflt_options);                                    \
      REJECT(#arg " may only be changed in testing Tor "                \
             "networks!");                                              \
  } STMT_END

  /* Check for options that can only be changed from the defaults in testing
     networks.  */
  if (! options->TestingTorNetwork && !options->UsingTestNetworkDefaults_) {
    or_options_t *dflt_options = options_new();
    options_init(dflt_options);
    CHECK_DEFAULT(TestingV3AuthInitialVotingInterval);
    CHECK_DEFAULT(TestingV3AuthInitialVoteDelay);
    CHECK_DEFAULT(TestingV3AuthInitialDistDelay);
@@ -4520,8 +4520,9 @@ options_validate(or_options_t *old_options, or_options_t *options,
    CHECK_DEFAULT(TestingSigningKeySlop);
    CHECK_DEFAULT(TestingAuthKeySlop);
    CHECK_DEFAULT(TestingLinkKeySlop);
#undef CHECK_DEFAULT
    or_options_free(dflt_options);
  }
#undef CHECK_DEFAULT

  if (!options->ClientDNSRejectInternalAddresses &&
      !(options->DirAuthorities ||