diff options
author | Nick Mathewson <nickm@torproject.org> | 2016-11-26 09:22:04 -0500 |
---|---|---|
committer | Nick Mathewson <nickm@torproject.org> | 2016-12-16 11:06:16 -0500 |
commit | 039bd01767d42961cb16ff4914481332b52cf8db (patch) | |
tree | 52048c96bd405e8dbe544ae97889185cd048a3bb /src/or/networkstatus.c | |
parent | 2ea5aa71823f385e36f20e643a20996dcb164464 (diff) | |
download | tor-039bd01767d42961cb16ff4914481332b52cf8db.tar.gz tor-039bd01767d42961cb16ff4914481332b52cf8db.zip |
Add a wrapper for a common networkstatus param pattern
We frequently want to check a networkstatus parameter only when it
isn't overridden from the torrc file.
Diffstat (limited to 'src/or/networkstatus.c')
-rw-r--r-- | src/or/networkstatus.c | 19 |
1 files changed, 19 insertions, 0 deletions
diff --git a/src/or/networkstatus.c b/src/or/networkstatus.c index ec8f77fa42..ce23d67979 100644 --- a/src/or/networkstatus.c +++ b/src/or/networkstatus.c @@ -2304,6 +2304,25 @@ networkstatus_get_param(const networkstatus_t *ns, const char *param_name, } /** + * As networkstatus_get_param(), but check torrc_value before checking the + * consensus. If torrc_value is in-range, then return it instead of the + * value from the consensus. + */ +int32_t +networkstatus_get_overridable_param(const networkstatus_t *ns, + int32_t torrc_value, + const char *param_name, + int32_t default_val, + int32_t min_val, int32_t max_val) +{ + if (torrc_value >= min_val && torrc_value <= max_val) + return torrc_value; + else + return networkstatus_get_param( + ns, param_name, default_val, min_val, max_val); +} + +/** * Retrieve the consensus parameter that governs the * fixed-point precision of our network balancing 'bandwidth-weights' * (which are themselves integer consensus values). We divide them |