mirror of
https://gitlab.torproject.org/tpo/core/tor.git
synced 2025-02-22 14:23:04 +01:00
Possible fix for broken country settings in ExcludeExitNodes.
It turns out that we weren't updating the _ExcludeExitNodesUnion set's country numbers when we reloaded (or first loaded!) the IP-to-country file. Spotted by Lark. Bugfix on 0.2.1.6-alpha. svn:r18575
This commit is contained in:
parent
2d147509d6
commit
b13496b62a
5 changed files with 31 additions and 11 deletions
|
@ -1,4 +1,9 @@
|
|||
Changes in version 0.2.1.13-????? - 2009-02-??
|
||||
o Major bugfixes:
|
||||
- Correctly update the list of countries to exclude as exits when
|
||||
the GeoIP file is loaded or reloaded. Diagnosed by lark. Bugfix
|
||||
on 0.2.1.6-alpha.
|
||||
|
||||
o Minor bugfixes:
|
||||
- Automatically detect MacOSX versions earlier than 10.4.0, and
|
||||
disable kqueue from inside Tor when running with these versions.
|
||||
|
|
|
@ -1372,17 +1372,6 @@ options_act(or_options_t *old_options)
|
|||
#endif
|
||||
geoip_load_file(actual_fname, options);
|
||||
tor_free(actual_fname);
|
||||
|
||||
/* XXXX Would iterating through all option_var's routersets be better? */
|
||||
if (options->EntryNodes)
|
||||
routerset_refresh_countries(options->EntryNodes);
|
||||
if (options->ExitNodes)
|
||||
routerset_refresh_countries(options->ExitNodes);
|
||||
if (options->ExcludeNodes)
|
||||
routerset_refresh_countries(options->ExcludeNodes);
|
||||
if (options->ExcludeExitNodes)
|
||||
routerset_refresh_countries(options->ExcludeExitNodes);
|
||||
routerlist_refresh_countries();
|
||||
}
|
||||
/* Check if we need to parse and add the EntryNodes config option. */
|
||||
if (options->EntryNodes &&
|
||||
|
|
|
@ -206,6 +206,11 @@ geoip_load_file(const char *filename, or_options_t *options)
|
|||
fclose(f);
|
||||
|
||||
smartlist_sort(geoip_entries, _geoip_compare_entries);
|
||||
|
||||
/* Okay, now we need to maybe change our mind about what is in which
|
||||
* country. */
|
||||
refresh_all_country_info();
|
||||
|
||||
return 0;
|
||||
}
|
||||
|
||||
|
|
|
@ -4514,6 +4514,7 @@ int routerset_equal(const routerset_t *old, const routerset_t *new);
|
|||
void routerset_free(routerset_t *routerset);
|
||||
void routerinfo_set_country(routerinfo_t *ri);
|
||||
void routerlist_refresh_countries(void);
|
||||
void refresh_all_country_info(void);
|
||||
|
||||
int hid_serv_get_responsible_directories(smartlist_t *responsible_dirs,
|
||||
const char *id);
|
||||
|
|
|
@ -5020,6 +5020,26 @@ routerset_parse(routerset_t *target, const char *s, const char *description)
|
|||
return r;
|
||||
}
|
||||
|
||||
/** DOCDOC */
|
||||
void
|
||||
refresh_all_country_info(void)
|
||||
{
|
||||
or_options_t *options = get_options();
|
||||
|
||||
if (options->EntryNodes)
|
||||
routerset_refresh_countries(options->EntryNodes);
|
||||
if (options->ExitNodes)
|
||||
routerset_refresh_countries(options->ExitNodes);
|
||||
if (options->ExcludeNodes)
|
||||
routerset_refresh_countries(options->ExcludeNodes);
|
||||
if (options->ExcludeExitNodes)
|
||||
routerset_refresh_countries(options->ExcludeExitNodes);
|
||||
if (options->_ExcludeExitNodesUnion)
|
||||
routerset_refresh_countries(options->_ExcludeExitNodesUnion);
|
||||
|
||||
routerlist_refresh_countries();
|
||||
}
|
||||
|
||||
/** Add all members of the set <b>source</b> to <b>target</b>. */
|
||||
void
|
||||
routerset_union(routerset_t *target, const routerset_t *source)
|
||||
|
|
Loading…
Add table
Reference in a new issue