[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