[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