Move the "nowhereland" logic into geoip.c

This commit is contained in:
Nick Mathewson 2010-07-31 15:06:55 -04:00
parent 8fca6fb2aa
commit 4dd4d240b7
2 changed files with 5 additions and 8 deletions

View File

@ -228,9 +228,10 @@ geoip_load_file(const char *filename, or_options_t *options)
}
/** Given an IP address in host order, return a number representing the
* country to which that address belongs, or -1 for unknown. The return value
* will always be less than geoip_get_n_countries(). To decode it,
* call geoip_get_country_name().
* country to which that address belongs, -1 for "No geoip information
* available", or 0 for the 'unknown country'. The return value will always
* be less than geoip_get_n_countries(). To decode it, call
* geoip_get_country_name().
*/
int
geoip_get_country_by_ip(uint32_t ipaddr)
@ -239,7 +240,7 @@ geoip_get_country_by_ip(uint32_t ipaddr)
if (!geoip_entries)
return -1;
ent = smartlist_bsearch(geoip_entries, &ipaddr, _geoip_compare_key_to_entry);
return ent ? (int)ent->country : -1;
return ent ? (int)ent->country : 0;
}
/** Return the number of countries recognized by the GeoIP database. */

View File

@ -5335,10 +5335,6 @@ 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;