mirror of
https://gitlab.torproject.org/tpo/core/tor.git
synced 2024-12-06 19:41:15 +01:00
forward-port r14934
svn:r14936
This commit is contained in:
+1
-1
@@ -1282,7 +1282,7 @@ options_act(or_options_t *old_options)
|
||||
tor_snprintf(actual_fname, len, "%s\\geoip", conf_root);
|
||||
}
|
||||
#endif
|
||||
geoip_load_file(actual_fname);
|
||||
geoip_load_file(actual_fname, options);
|
||||
tor_free(actual_fname);
|
||||
}
|
||||
/* Check if we need to parse and add the EntryNodes config option. */
|
||||
|
||||
+11
-2
@@ -122,6 +122,14 @@ _geoip_compare_key_to_entry(const void *_key, const void **_member)
|
||||
return 0;
|
||||
}
|
||||
|
||||
/** Return 1 if we should collect geoip stats on bridge users, and
|
||||
* include them in our extrainfo descriptor. Else return 0. */
|
||||
int
|
||||
should_record_bridge_info(or_options_t *options)
|
||||
{
|
||||
return options->BridgeRelay && options->BridgeRecordUsageByCountry;
|
||||
}
|
||||
|
||||
/** Clear the GeoIP database and reload it from the file
|
||||
* <b>filename</b>. Return 0 on success, -1 on failure.
|
||||
*
|
||||
@@ -136,12 +144,13 @@ _geoip_compare_key_to_entry(const void *_key, const void **_member)
|
||||
* with '#' (comments).
|
||||
*/
|
||||
int
|
||||
geoip_load_file(const char *filename)
|
||||
geoip_load_file(const char *filename, or_options_t *options)
|
||||
{
|
||||
FILE *f;
|
||||
int severity = should_record_bridge_info(options) ? LOG_WARN : LOG_INFO;
|
||||
clear_geoip_db();
|
||||
if (!(f = fopen(filename, "r"))) {
|
||||
log_warn(LD_GENERAL, "Failed to open GEOIP file %s.", filename);
|
||||
log_fn(severity, LD_GENERAL, "Failed to open GEOIP file %s.", filename);
|
||||
return -1;
|
||||
}
|
||||
geoip_countries = smartlist_create();
|
||||
|
||||
+2
-1
@@ -3294,7 +3294,8 @@ int dnsserv_launch_request(const char *name, int is_reverse);
|
||||
#ifdef GEOIP_PRIVATE
|
||||
int geoip_parse_entry(const char *line);
|
||||
#endif
|
||||
int geoip_load_file(const char *filename);
|
||||
int should_record_bridge_info(or_options_t *options);
|
||||
int geoip_load_file(const char *filename, or_options_t *options);
|
||||
int geoip_get_country_by_ip(uint32_t ipaddr);
|
||||
int geoip_get_n_countries(void);
|
||||
const char *geoip_get_country_name(int num);
|
||||
|
||||
+1
-1
@@ -1822,7 +1822,7 @@ extrainfo_dump_to_string(char *s, size_t maxlen, extrainfo_t *extrainfo,
|
||||
if (result<0)
|
||||
return -1;
|
||||
|
||||
if (options->BridgeRelay && options->BridgeRecordUsageByCountry) {
|
||||
if (should_record_bridge_info(options)) {
|
||||
static time_t last_purged_at = 0;
|
||||
char *geoip_summary;
|
||||
time_t now = time(NULL);
|
||||
|
||||
Reference in New Issue
Block a user