diff options
author | Nick Mathewson <nickm@torproject.org> | 2008-05-29 01:23:09 +0000 |
---|---|---|
committer | Nick Mathewson <nickm@torproject.org> | 2008-05-29 01:23:09 +0000 |
commit | c6f406a06ca133b28c92a2b4e72ce1d2d131864c (patch) | |
tree | e6c122d15630893e4018fd7f963c4fa9bada5764 | |
parent | d12b9965f9856b32a58791948653ac14eb0c7ba9 (diff) | |
download | tor-c6f406a06ca133b28c92a2b4e72ce1d2d131864c.tar.gz tor-c6f406a06ca133b28c92a2b4e72ce1d2d131864c.zip |
Backport: On win32, default to looking for the geoip file in the same directory as torrc.
svn:r14797
-rw-r--r-- | src/or/config.c | 22 |
1 files changed, 20 insertions, 2 deletions
diff --git a/src/or/config.c b/src/or/config.c index 5ad4bf20bf..b84b5fe27d 100644 --- a/src/or/config.c +++ b/src/or/config.c @@ -199,7 +199,12 @@ static config_var_t _option_vars[] = { V(FetchHidServDescriptors, BOOL, "1"), V(FetchUselessDescriptors, BOOL, "0"), V(GeoIPFile, STRING, - SHARE_DATADIR PATH_SEPARATOR "tor" PATH_SEPARATOR "geoip"), +#ifdef WIN32 + "<default>" +#else + SHARE_DATADIR PATH_SEPARATOR "tor" PATH_SEPARATOR "geoip" +#endif +), V(Group, STRING, NULL), V(HardwareAccel, BOOL, "0"), V(HashedControlPassword, LINELIST, NULL), @@ -1252,7 +1257,20 @@ options_act(or_options_t *old_options) if (options->GeoIPFile && ((!old_options || !opt_streq(old_options->GeoIPFile, options->GeoIPFile)) || !geoip_is_loaded())) { - geoip_load_file(options->GeoIPFile); + /* XXXX021 Don't use this "<default>" junk; make our filename options + * understand prefixes somehow. -NM */ + char *actual_fname = tor_strdup(options->GeoIPFile); +#ifdef WIN32 + if (!strcmp(actual_fname, "<default>")) { + const char *conf_root = get_windows_conf_root(); + size_t len = tor_malloc(strlen(conf_root)+16); + tor_free(actual_fname); + actual_fname = tor_malloc(len+1); + tor_snprintf(actual_fname, len, "%s\\geoip", conf_root); + } +#endif + geoip_load_file(actual_fname); + tor_free(actual_fname); } /* Check if we need to parse and add the EntryNodes config option. */ if (options->EntryNodes && |