]> git.ipfire.org Git - thirdparty/tor.git/commitdiff
On win32, default to looking for the geoip file in the same directory as torrc. ...
authorNick Mathewson <nickm@torproject.org>
Thu, 29 May 2008 01:22:30 +0000 (01:22 +0000)
committerNick Mathewson <nickm@torproject.org>
Thu, 29 May 2008 01:22:30 +0000 (01:22 +0000)
svn:r14796

src/or/config.c

index 74c500d3456c13cb5a271a4d90f468078f744f99..8b45e8ca2e464d7a390f6048b50d545b775cd100 100644 (file)
@@ -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),
@@ -1259,7 +1264,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 &&