[tor-commits] [tor/master] Use a macro to make our hs_opts checking terser.

dgoulet at torproject.org dgoulet at torproject.org
Mon Mar 30 17:37:37 UTC 2020


commit 0dc25a4b66aedc804360c10a6f710d69f0b17bfe
Author: Nick Mathewson <nickm at torproject.org>
Date:   Sun Mar 8 15:49:40 2020 -0400

    Use a macro to make our hs_opts checking terser.
---
 src/feature/hs/hs_config.c | 38 ++++++++++++++++++++------------------
 1 file changed, 20 insertions(+), 18 deletions(-)

diff --git a/src/feature/hs/hs_config.c b/src/feature/hs/hs_config.c
index c799eb208..0dad8dd6d 100644
--- a/src/feature/hs/hs_config.c
+++ b/src/feature/hs/hs_config.c
@@ -186,6 +186,13 @@ check_value_oob(int i, const char *name, int low, int high)
   return false;
 }
 
+/**
+ * Helper: check whether the integer value called <b>name</b> in <b>opts</b>
+ * is out-of-bounds.
+ **/
+#define CHECK_OOB(opts, name, low, high)      \
+  check_value_oob((opts)->name, #name, (low), (high))
+
 /** Helper function: Given a configuration option and its value, parse the
  * value as a hs_circuit_id_protocol_t. On success, ok is set to 1 and ret is
  * the parse value. On error, ok is set to 0 and the "none"
@@ -368,10 +375,9 @@ config_service_v3(const hs_opts_t *hs_opts,
   tor_assert(hs_opts);
 
   /* Number of introduction points. */
-  if (check_value_oob(hs_opts->HiddenServiceNumIntroductionPoints,
-                      "HiddenServiceNumIntroductionPoints",
-                      NUM_INTRO_POINTS_DEFAULT,
-                      HS_CONFIG_V3_MAX_INTRO_POINTS)) {
+  if (CHECK_OOB(hs_opts, HiddenServiceNumIntroductionPoints,
+                NUM_INTRO_POINTS_DEFAULT,
+                HS_CONFIG_V3_MAX_INTRO_POINTS)) {
     goto err;
   }
   config->num_intro_points = hs_opts->HiddenServiceNumIntroductionPoints;
@@ -393,10 +399,9 @@ config_service_v3(const hs_opts_t *hs_opts,
     hs_opts->HiddenServiceEnableIntroDoSDefense;
 
   /* Rate for DoS defense */
-  if (check_value_oob(hs_opts->HiddenServiceEnableIntroDoSRatePerSec,
-                      "HiddenServiceEnableIntroDoSRatePerSec",
-                      HS_CONFIG_V3_DOS_DEFENSE_RATE_PER_SEC_MIN,
-                      HS_CONFIG_V3_DOS_DEFENSE_RATE_PER_SEC_MAX)) {
+  if (CHECK_OOB(hs_opts, HiddenServiceEnableIntroDoSRatePerSec,
+                 HS_CONFIG_V3_DOS_DEFENSE_RATE_PER_SEC_MIN,
+                 HS_CONFIG_V3_DOS_DEFENSE_RATE_PER_SEC_MAX)) {
     goto err;
   }
   config->intro_dos_rate_per_sec =
@@ -404,10 +409,9 @@ config_service_v3(const hs_opts_t *hs_opts,
   log_info(LD_REND, "Service INTRO2 DoS defenses rate set to: %" PRIu32,
            config->intro_dos_rate_per_sec);
 
-  if (check_value_oob(hs_opts->HiddenServiceEnableIntroDoSBurstPerSec,
-                      "HiddenServiceEnableIntroDoSBurstPerSec",
-                      HS_CONFIG_V3_DOS_DEFENSE_BURST_PER_SEC_MIN,
-                      HS_CONFIG_V3_DOS_DEFENSE_BURST_PER_SEC_MAX)) {
+  if (CHECK_OOB(hs_opts, HiddenServiceEnableIntroDoSBurstPerSec,
+                HS_CONFIG_V3_DOS_DEFENSE_BURST_PER_SEC_MIN,
+                HS_CONFIG_V3_DOS_DEFENSE_BURST_PER_SEC_MAX)) {
     goto err;
   }
   config->intro_dos_burst_per_sec =
@@ -471,9 +475,8 @@ config_generic_service(const hs_opts_t *hs_opts,
   /* Protocol version for the service. */
   if (hs_opts->HiddenServiceVersion == -1) {
     /* No value was set; stay with the default. */
-  } else if (check_value_oob(hs_opts->HiddenServiceVersion,
-                             "HiddenServiceVersion",
-                             HS_VERSION_MIN, HS_VERSION_MAX)) {
+  } else if (CHECK_OOB(hs_opts, HiddenServiceVersion,
+                       HS_VERSION_MIN, HS_VERSION_MAX)) {
     goto err;
   } else {
     config->hs_version_explicitly_set = 1;
@@ -507,9 +510,8 @@ config_generic_service(const hs_opts_t *hs_opts,
   config->dir_group_readable = hs_opts->HiddenServiceDirGroupReadable;
 
   /* Maximum streams per circuit. */
-  if (check_value_oob(hs_opts->HiddenServiceMaxStreams,
-                      "HiddenServiceMaxStreams", 0,
-                      HS_CONFIG_MAX_STREAMS_PER_RDV_CIRCUIT)) {
+  if (CHECK_OOB(hs_opts, HiddenServiceMaxStreams,
+                0, HS_CONFIG_MAX_STREAMS_PER_RDV_CIRCUIT)) {
     goto err;
   }
   config->max_streams_per_rdv_circuit = hs_opts->HiddenServiceMaxStreams;





More information about the tor-commits mailing list