aboutsummaryrefslogtreecommitdiff
path: root/src/or/config.c
diff options
context:
space:
mode:
authorNick Mathewson <nickm@torproject.org>2004-08-15 20:14:44 +0000
committerNick Mathewson <nickm@torproject.org>2004-08-15 20:14:44 +0000
commit416653271a7505e7a219240eaeeb379d4d22afac (patch)
treece30e0fbd64468c8dcdc0496710e1b466457f83f /src/or/config.c
parentebf2d275bf37935ce5efff4f205d11eeb400d8c2 (diff)
downloadtor-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.c11
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;