[tor-commits] [ooni-probe/master] Trap errors in importing dnspython
art at torproject.org
art at torproject.org
Tue Feb 7 19:46:32 UTC 2012
commit f63fc45985dae2f23ddf0453945b0f3d228bfbf3
Author: Arturo Filastò <hellais at gmail.com>
Date: Tue Feb 7 20:46:39 2012 +0100
Trap errors in importing dnspython
---
refactor/tests/dnstamper.py | 29 ++++++++++++++++-------------
refactor/tests/traceroute.py | 31 +++++++++++++++++--------------
2 files changed, 33 insertions(+), 27 deletions(-)
diff --git a/refactor/tests/dnstamper.py b/refactor/tests/dnstamper.py
index e68414d..987a948 100644
--- a/refactor/tests/dnstamper.py
+++ b/refactor/tests/dnstamper.py
@@ -1,4 +1,7 @@
-from dns import resolver
+try:
+ from dns import resolver
+except:
+ print "Error dnspython is not installed! (http://www.dnspython.org/)"
import gevent
import os
import plugoo
@@ -13,27 +16,27 @@ class DNST(Plugoo):
res = resolver.Resolver(configure=False)
res.nameservers = [ns]
answer = res.query(hostname)
-
- ret = []
-
+
+ ret = []
+
for data in answer:
ret.append(data.address)
-
+
return ret
-
- def experiment(self, *a, **kw):
+
+ def experiment(self, *a, **kw):
# this is just a dirty hack
address = kw['data'][0]
ns = kw['data'][1]
-
+
config = self.config
-
+
print "ADDRESS: %s" % address
print "NAMESERVER: %s" % ns
-
+
exp = self.lookup(address, ns)
control = self.lookup(address, config.tests.dns_control_server)
-
+
if len(set(exp) & set(control)) > 0:
print "%s : no tampering on %s" % (address, ns)
return (address, ns, False)
@@ -46,7 +49,7 @@ def run(ooni):
"""
config = ooni.config
urls = []
-
+
dns_experiment = DNSTAsset(os.path.join(config.main.assetdir, \
config.tests.dns_experiment))
dns_experiment_dns = DNSTAsset(os.path.join(config.main.assetdir, \
@@ -58,5 +61,5 @@ def run(ooni):
ooni.logger.info("starting test")
dnstest.run(assets)
ooni.logger.info("finished")
-
+
diff --git a/refactor/tests/traceroute.py b/refactor/tests/traceroute.py
index 13eb578..69f87e5 100644
--- a/refactor/tests/traceroute.py
+++ b/refactor/tests/traceroute.py
@@ -1,4 +1,7 @@
-from dns import resolver
+try:
+ from dns import resolver
+except:
+ print "Error dnspython is not installed (http://www.dnspython.org/)"
import gevent
import os
import plugoo
@@ -40,52 +43,52 @@ class Traceroute(Plugoo):
send_sock.connect((dst, dst_port))
except socket.timeout:
pass
-
+
except Exception, e:
print "Error doing connect %s" % e
else:
send_sock.sendto("", (dst, dst_port))
-
+
curr_addr = None
try:
print "receiving data..."
_, curr_addr = recv_sock.recvfrom(512)
curr_addr = curr_addr[0]
-
+
except socket.error, e:
print "SOCKET ERROR: %s" % e
-
+
except Exception, e:
print "ERROR: %s" % e
-
+
finally:
send_sock.close()
recv_sock.close()
-
+
if curr_addr is not None:
curr_host = "%s" % curr_addr
else:
curr_host = "*"
-
+
print "%d\t%s" % (ttl, curr_host)
if curr_addr == dest_addr or ttl > max_hops:
break
ttl += 1
-
-
- def experiment(self, *a, **kw):
+
+
+ def experiment(self, *a, **kw):
# this is just a dirty hack
address = kw['data'][0]
-
+
self.traceroute(address)
def run(ooni):
"""Run the test"""
config = ooni.config
urls = []
-
+
traceroute_experiment = TracerouteAsset(os.path.join(config.main.assetdir, \
config.tests.traceroute))
@@ -95,5 +98,5 @@ def run(ooni):
ooni.logger.info("starting traceroute test")
traceroute.run(assets)
ooni.logger.info("finished")
-
+
More information about the tor-commits
mailing list