diff options
author | Nick Mathewson <nickm@torproject.org> | 2009-09-15 13:41:36 -0400 |
---|---|---|
committer | Nick Mathewson <nickm@torproject.org> | 2010-07-31 15:00:06 -0400 |
commit | 8fca6fb2aa569cf4f09b6b4aaa887f3b434d759e (patch) | |
tree | b0c948478cf99030710d5c7bcb9008d891847c3f /src/or | |
parent | 15424bf800a56007d802db3a9d3fe40fbdf2bee5 (diff) | |
download | tor-8fca6fb2aa569cf4f09b6b4aaa887f3b434d759e.tar.gz tor-8fca6fb2aa569cf4f09b6b4aaa887f3b434d759e.zip |
Make "Nowhere" explicitly listable in torrc.
We already had the country code ?? indicating an unknown country, so all we
needed to do to make unknown countries excludable was to make the ?? code
discoverable.
Diffstat (limited to 'src/or')
-rw-r--r-- | src/or/geoip.c | 1 | ||||
-rw-r--r-- | src/or/routerlist.c | 4 |
2 files changed, 5 insertions, 0 deletions
diff --git a/src/or/geoip.c b/src/or/geoip.c index eae927522a..6bb76ae4da 100644 --- a/src/or/geoip.c +++ b/src/or/geoip.c @@ -200,6 +200,7 @@ geoip_load_file(const char *filename, or_options_t *options) sizeof(geoip_unresolved->countrycode)); smartlist_add(geoip_countries, geoip_unresolved); country_idxplus1_by_lc_code = strmap_new(); + strmap_set_lc(country_idxplus1_by_lc_code, "??", (void*)(1)); } if (geoip_entries) { SMARTLIST_FOREACH(geoip_entries, geoip_entry_t *, e, tor_free(e)); diff --git a/src/or/routerlist.c b/src/or/routerlist.c index 5f98abe01b..7be98bd1a5 100644 --- a/src/or/routerlist.c +++ b/src/or/routerlist.c @@ -5335,6 +5335,10 @@ routerset_contains(const routerset_t *set, const tor_addr_t *addr, if (country < 0 && addr) country = geoip_get_country_by_ip(tor_addr_to_ipv4h(addr)); + /* XXXX can we safely move this into geoip_get_country_by_ip? */ + if (country < 0) + country = 0; + if (country >= 0 && country < set->n_countries && bitarray_is_set(set->countries, country)) return 2; |