[Author Prev][Author Next][Thread Prev][Thread Next][Author Index][Thread Index]

[or-cvs] r14934: Only warn when we fail to load the geoip file if we were pla (in tor/branches/tor-0_2_0-patches: . src/or)



Author: arma
Date: 2008-06-04 04:54:57 -0400 (Wed, 04 Jun 2008)
New Revision: 14934

Modified:
   tor/branches/tor-0_2_0-patches/ChangeLog
   tor/branches/tor-0_2_0-patches/src/or/config.c
   tor/branches/tor-0_2_0-patches/src/or/geoip.c
   tor/branches/tor-0_2_0-patches/src/or/or.h
   tor/branches/tor-0_2_0-patches/src/or/router.c
Log:
Only warn when we fail to load the geoip file if we were planning to
include geoip stats in our extrainfo document.


Modified: tor/branches/tor-0_2_0-patches/ChangeLog
===================================================================
--- tor/branches/tor-0_2_0-patches/ChangeLog	2008-06-04 08:39:02 UTC (rev 14933)
+++ tor/branches/tor-0_2_0-patches/ChangeLog	2008-06-04 08:54:57 UTC (rev 14934)
@@ -2,6 +2,8 @@
   o Minor fixes:
     - Bridge relays no longer print "xx=0" in their extrainfo document
       for every single country code in the geoip db.
+    - Only warn when we fail to load the geoip file if we were planning to
+      include geoip stats in our extrainfo document.
     - Fix unit tests in 0.2.0.27-rc.
     - Fix compile on Windows.
 

Modified: tor/branches/tor-0_2_0-patches/src/or/config.c
===================================================================
--- tor/branches/tor-0_2_0-patches/src/or/config.c	2008-06-04 08:39:02 UTC (rev 14933)
+++ tor/branches/tor-0_2_0-patches/src/or/config.c	2008-06-04 08:54:57 UTC (rev 14934)
@@ -1272,7 +1272,7 @@
       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. */

Modified: tor/branches/tor-0_2_0-patches/src/or/geoip.c
===================================================================
--- tor/branches/tor-0_2_0-patches/src/or/geoip.c	2008-06-04 08:39:02 UTC (rev 14933)
+++ tor/branches/tor-0_2_0-patches/src/or/geoip.c	2008-06-04 08:54:57 UTC (rev 14934)
@@ -122,6 +122,14 @@
     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.
  *
@@ -133,12 +141,13 @@
  * integers, and CC is a country code.
  */
 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();
@@ -239,7 +248,7 @@
 {
   or_options_t *options = get_options();
   clientmap_entry_t lookup, *ent;
-  if (!(options->BridgeRelay && options->BridgeRecordUsageByCountry))
+  if (!should_record_bridge_info(options))
     return;
   lookup.ipaddr = addr;
   ent = HT_FIND(clientmap, &client_history, &lookup);

Modified: tor/branches/tor-0_2_0-patches/src/or/or.h
===================================================================
--- tor/branches/tor-0_2_0-patches/src/or/or.h	2008-06-04 08:39:02 UTC (rev 14933)
+++ tor/branches/tor-0_2_0-patches/src/or/or.h	2008-06-04 08:54:57 UTC (rev 14934)
@@ -3268,7 +3268,8 @@
 #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);

Modified: tor/branches/tor-0_2_0-patches/src/or/router.c
===================================================================
--- tor/branches/tor-0_2_0-patches/src/or/router.c	2008-06-04 08:39:02 UTC (rev 14933)
+++ tor/branches/tor-0_2_0-patches/src/or/router.c	2008-06-04 08:54:57 UTC (rev 14934)
@@ -1821,7 +1821,7 @@
   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);