[Author Prev][Author Next][Thread Prev][Thread Next][Author Index][Thread Index]

[or-cvs] [tor/master] allow countries and IP addresses in EntryNodes



Author: Roger Dingledine <arma@xxxxxxxxxxxxxx>
Date: Wed, 29 Sep 2010 01:10:20 -0400
Subject: allow countries and IP addresses in EntryNodes
Commit: 0ed8d5a537d1092f510342d07bd7970185995ebf

---
 changes/bug1982       |    5 +++++
 src/or/circuitbuild.c |   11 +++++------
 src/or/config.c       |    5 -----
 3 files changed, 10 insertions(+), 11 deletions(-)
 create mode 100644 changes/bug1982

diff --git a/changes/bug1982 b/changes/bug1982
new file mode 100644
index 0000000..30ce2df
--- /dev/null
+++ b/changes/bug1982
@@ -0,0 +1,5 @@
+  o Major features:
+    - Allow EntryNodes to include country codes like {de} or IP addresses
+      or network masks. Previously we had disallowed these options
+      because we didn't have an efficient way to keep the list up to
+      date. Resolves bug 1982.
diff --git a/src/or/circuitbuild.c b/src/or/circuitbuild.c
index 2b4540b..b798891 100644
--- a/src/or/circuitbuild.c
+++ b/src/or/circuitbuild.c
@@ -3820,12 +3820,11 @@ entry_guards_prepend_from_config(or_options_t *options)
 
   /* Split entry guards into those on the list and those not. */
 
-  /* XXXX022 Now that we allow countries and IP ranges in EntryNodes, this is
-   *  potentially an enormous list. For now, we disable such values for
-   *  EntryNodes in options_validate(); really, this wants a better solution.
-   *  Perhaps we should do this calculation once whenever the list of routers
-   *  changes or the entrynodes setting changes.
-   */
+  /* Now that we allow countries and IP ranges in EntryNodes, this is
+   * potentially an enormous list. It's not so bad though because we
+   * only call this function when a) we're making a new circuit, and b)
+   * we've called directory_info_has_arrived() or changed our EntryNodes
+   * since the last time we made a circuit. */
   routerset_get_all_routers(entry_routers, options->EntryNodes, 0);
   SMARTLIST_FOREACH(entry_routers, routerinfo_t *, ri,
                     smartlist_add(entry_fps,ri->cache_info.identity_digest));
diff --git a/src/or/config.c b/src/or/config.c
index 23cad92..e2b1b65 100644
--- a/src/or/config.c
+++ b/src/or/config.c
@@ -3088,11 +3088,6 @@ options_validate(or_options_t *old_options, or_options_t *options,
              "features to be broken in unpredictable ways.");
   }
 
-  if (options->EntryNodes && !routerset_is_list(options->EntryNodes)) {
-    /* XXXX fix this; see entry_guards_prepend_from_config(). */
-    REJECT("IPs or countries are not yet supported in EntryNodes.");
-  }
-
   if (options->AuthoritativeDir) {
     if (!options->ContactInfo && !options->TestingTorNetwork)
       REJECT("Authoritative directory servers must set ContactInfo");
-- 
1.7.1