diff options
author | Nick Mathewson <nickm@torproject.org> | 2004-08-15 20:14:44 +0000 |
---|---|---|
committer | Nick Mathewson <nickm@torproject.org> | 2004-08-15 20:14:44 +0000 |
commit | 416653271a7505e7a219240eaeeb379d4d22afac (patch) | |
tree | ce30e0fbd64468c8dcdc0496710e1b466457f83f /src/or/config.c | |
parent | ebf2d275bf37935ce5efff4f205d11eeb400d8c2 (diff) | |
download | tor-416653271a7505e7a219240eaeeb379d4d22afac.tar tor-416653271a7505e7a219240eaeeb379d4d22afac.tar.gz |
Implement strict{entry|exit}nodes config options
svn:r2236
Diffstat (limited to 'src/or/config.c')
-rw-r--r-- | src/or/config.c | 11 |
1 files changed, 11 insertions, 0 deletions
diff --git a/src/or/config.c b/src/or/config.c index ed9f0db39..067ab4ba6 100644 --- a/src/or/config.c +++ b/src/or/config.c @@ -204,6 +204,8 @@ static int config_assign(or_options_t *options, struct config_line_t *list) { config_compare(list, "ExitNodes", CONFIG_TYPE_STRING, &options->ExitNodes) || config_compare(list, "EntryNodes", CONFIG_TYPE_STRING, &options->EntryNodes) || + config_compare(list, "StrictExitNodes", CONFIG_TYPE_BOOL, &options->StrictExitNodes) || + config_compare(list, "StrictEntryNodes", CONFIG_TYPE_BOOL, &options->StrictEntryNodes) || config_compare(list, "ExitPolicy", CONFIG_TYPE_LINELIST, &options->ExitPolicy) || config_compare(list, "ExcludeNodes", CONFIG_TYPE_STRING, &options->ExcludeNodes) || @@ -529,6 +531,7 @@ static void init_options(or_options_t *options) { options->LogOptions = NULL; options->ExitNodes = tor_strdup(""); options->EntryNodes = tor_strdup(""); + options->StrictEntryNodes = options->StrictExitNodes = 0; options->ExcludeNodes = tor_strdup(""); options->RendNodes = tor_strdup(""); options->RendExcludeNodes = tor_strdup(""); @@ -713,6 +716,14 @@ int getconfig(int argc, char **argv, or_options_t *options) { result = -1; } + if(options->StrictExitNodes && !strlen(options->ExitNodes)) { + log(LOG_WARN,"StrictExitNodes set, but no ExitNodes listed."); + } + + if(options->StrictEntryNodes && !strlen(options->EntryNodes)) { + log(LOG_WARN,"StrictEntryNodes set, but no EntryNodes listed."); + } + if(options->AuthoritativeDir && options->RecommendedVersions == NULL) { log(LOG_WARN,"Directory servers must configure RecommendedVersions."); result = -1; |