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 tor-8fca6fb2aa569cf4f09b6b4aaa887f3b434d759e.tar.gz |
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 eae927522..6bb76ae4d 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 5f98abe01..7be98bd1a 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; |