[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