[tor-commits] [ooni-probe/master] Do not fail if probes IP addres is not known data is not available.

art at torproject.org art at torproject.org
Sat Dec 8 19:24:43 UTC 2012


commit 39e613a7fbb2877d1f805b0289c757320643deca
Author: Arturo Filastò <art at fuffa.org>
Date:   Sat Dec 8 19:56:23 2012 +0100

    Do not fail if probes IP addres is not known data is not available.
---
 ooni/reporter.py      |   14 +++++++++-----
 ooni/utils/geodata.py |    1 +
 2 files changed, 10 insertions(+), 5 deletions(-)

diff --git a/ooni/reporter.py b/ooni/reporter.py
index e14f64d..b5de29f 100644
--- a/ooni/reporter.py
+++ b/ooni/reporter.py
@@ -112,10 +112,10 @@ def getTestDetails(options):
     from ooni import __version__ as software_version
 
     client_geodata = {}
-    if config.privacy.includeip or \
+    if config.probe_ip and (config.privacy.includeip or \
             config.privacy.includeasn or \
             config.privacy.includecountry or \
-            config.privacy.includecity:
+            config.privacy.includecity):
         log.msg("We will include some geo data in the report")
         client_geodata = geodata.IPToLocation(config.probe_ip)
 
@@ -128,16 +128,20 @@ def getTestDetails(options):
     # has been specified
     if client_geodata and not config.privacy.includeasn:
         client_geodata['asn'] = 'AS0'
-    else:
+    elif 'asn' in client_geodata:
         # XXX this regexp should probably go inside of geodata
         client_geodata['asn'] = \
                 re.search('AS\d+', client_geodata['asn']).group(0)
         log.msg("Your AS number is: %s" % client_geodata['asn'])
+    else:
+        client_geodata['asn'] = None
 
-    if client_geodata and not config.privacy.includecity:
+    if (client_geodata and not config.privacy.includecity) \
+            or ('city' not in client_geodata):
         client_geodata['city'] = None
 
-    if client_geodata and not config.privacy.includecountry:
+    if (client_geodata and not config.privacy.includecountry) \
+            or ('countrycode' not in client_geodata):
         client_geodata['countrycode'] = None
 
     test_details = {'start_time': otime.utcTimeNow(),
diff --git a/ooni/utils/geodata.py b/ooni/utils/geodata.py
index 5cad748..d9883ba 100644
--- a/ooni/utils/geodata.py
+++ b/ooni/utils/geodata.py
@@ -30,6 +30,7 @@ def IPToLocation(ipaddr):
 
         asn_dat = pygeoip.GeoIP(asn_file)
         location['asn'] = asn_dat.org_by_addr(ipaddr)
+
     except IOError:
         log.err("Could not find GeoIP data files. Go into data/ "
                 "and run make geoip")



More information about the tor-commits mailing list