diff options
author | Matt Traudt <sirmatt@ksu.edu> | 2017-09-13 12:47:02 -0400 |
---|---|---|
committer | David Goulet <dgoulet@torproject.org> | 2017-09-15 11:40:59 -0400 |
commit | 7f1d6430833a15a1ec806f9d17babc7d653b08ac (patch) | |
tree | 4893f64bec50f88e70f23eb7663b469e05180708 /src/or | |
parent | 61fc9c41ad8241be06587f28d1542c0caba55d1b (diff) | |
download | tor-7f1d6430833a15a1ec806f9d17babc7d653b08ac.tar.gz tor-7f1d6430833a15a1ec806f9d17babc7d653b08ac.zip |
sched: validate KIST sched options
Diffstat (limited to 'src/or')
-rw-r--r-- | src/or/config.c | 13 | ||||
-rw-r--r-- | src/or/scheduler.h | 14 | ||||
-rw-r--r-- | src/or/scheduler_kist.c | 7 |
3 files changed, 27 insertions, 7 deletions
diff --git a/src/or/config.c b/src/or/config.c index 285d4952f2..f332ac97f8 100644 --- a/src/or/config.c +++ b/src/or/config.c @@ -3112,6 +3112,19 @@ options_validate(or_options_t *old_options, or_options_t *options, routerset_union(options->ExcludeExitNodesUnion_,options->ExcludeNodes); } + if (options->KISTSockBufSizeFactor < 0) { + REJECT("KISTSockBufSizeFactor must be at least 0"); + } + /* Don't need to validate that the Interval is less than anything because + * zero is valid and all negative values are valid. */ + if (options->KISTSchedRunInterval > KIST_SCHED_RUN_INTERVAL_MAX) { + char *buf = tor_calloc(80, sizeof(char)); + tor_snprintf(buf, 80, "KISTSchedRunInterval must not be more than %d (ms)", + KIST_SCHED_RUN_INTERVAL_MAX); + *msg = buf; + return -1; + } + if (options->NodeFamilies) { options->NodeFamilySets = smartlist_new(); for (cl = options->NodeFamilies; cl; cl = cl->next) { diff --git a/src/or/scheduler.h b/src/or/scheduler.h index 6cf75c585a..0d82352734 100644 --- a/src/or/scheduler.h +++ b/src/or/scheduler.h @@ -83,6 +83,20 @@ typedef struct scheduler_s { } scheduler_t; /***************************************************************************** + * Globally visible scheduler variables/values + * + * These are variables/constants that all of Tor should be able to see. + *****************************************************************************/ + +/* Default interval that KIST runs (in ms). */ +#define KIST_SCHED_RUN_INTERVAL_DEFAULT 10 +/* Minimum interval that KIST runs. This value disables KIST. */ +#define KIST_SCHED_RUN_INTERVAL_MIN 0 +/* Maximum interval that KIST runs (in ms). */ +#define KIST_SCHED_RUN_INTERVAL_MAX 100 + + +/***************************************************************************** * Globally visible scheduler functions * * These functions are how the rest of Tor communicates with the scheduling diff --git a/src/or/scheduler_kist.c b/src/or/scheduler_kist.c index d3b19fdd1d..3c3d26ad5a 100644 --- a/src/or/scheduler_kist.c +++ b/src/or/scheduler_kist.c @@ -623,13 +623,6 @@ get_kist_scheduler(void) return kist_scheduler; } -/* Default interval that KIST runs (in ms). */ -#define KIST_SCHED_RUN_INTERVAL_DEFAULT 10 -/* Minimum interval that KIST runs. This value disables KIST. */ -#define KIST_SCHED_RUN_INTERVAL_MIN 0 -/* Maximum interval that KIST runs (in ms). */ -#define KIST_SCHED_RUN_INTERVAL_MAX 100 - /* Check the torrc for the configured KIST scheduler run interval. * - If torrc < 0, then return the negative torrc value (shouldn't even be * using KIST) |