Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
21 changes: 21 additions & 0 deletions bin/ooniprobequeue
Original file line number Diff line number Diff line change
@@ -0,0 +1,21 @@
#!/usr/bin/env python
import sys
import copy_reg
from twisted.internet import reactor

# This is a hack to overcome a bug in python
from ooni.utils.hacks import patched_reduce_ex
copy_reg._reduce_ex = patched_reduce_ex

code=0

from ooni.oonicli import runWithDaemonDirector
d = runWithDaemonDirector()
@d.addBoth
def cb(result):
global code
if result is not None:
code=1
reactor.stop()
reactor.run()
sys.exit(code)
2 changes: 1 addition & 1 deletion ooni/director.py
Original file line number Diff line number Diff line change
Expand Up @@ -132,7 +132,7 @@ def start(self, start_tor=False, check_incoherences=True):
yield config.check_tor()
if config.advanced.start_tor:
yield self.startTor()
elif config.tor.control_port:
elif config.tor.control_port and config.tor_state is None:
log.msg("Connecting to Tor Control Port...")
yield self.getTorState()

Expand Down
57 changes: 30 additions & 27 deletions ooni/geoip.py
Original file line number Diff line number Diff line change
Expand Up @@ -190,34 +190,37 @@ def resolveGeodata(self):

@defer.inlineCallbacks
def lookup(self):
try:
yield self.askTor()
log.msg("Found your IP via Tor %s" % self.address)
self.resolveGeodata()
if self.address:
defer.returnValue(self.address)
except errors.TorStateNotFound:
log.debug("Tor is not running. Skipping IP lookup via Tor.")
except Exception:
log.msg("Unable to lookup the probe IP via Tor.")

try:
yield self.askTraceroute()
log.msg("Found your IP via Traceroute %s" % self.address)
self.resolveGeodata()
defer.returnValue(self.address)
except errors.InsufficientPrivileges:
log.debug("Cannot determine the probe IP address with a traceroute, becase of insufficient privileges")
except:
log.msg("Unable to lookup the probe IP via traceroute")

try:
yield self.askGeoIPService()
log.msg("Found your IP via a GeoIP service: %s" % self.address)
self.resolveGeodata()
defer.returnValue(self.address)
except Exception:
log.msg("Unable to lookup the probe IP via GeoIPService")
raise
else:
try:
yield self.askTor()
log.msg("Found your IP via Tor %s" % self.address)
self.resolveGeodata()
defer.returnValue(self.address)
except errors.TorStateNotFound:
log.debug("Tor is not running. Skipping IP lookup via Tor.")
except Exception:
log.msg("Unable to lookup the probe IP via Tor.")

try:
yield self.askTraceroute()
log.msg("Found your IP via Traceroute %s" % self.address)
self.resolveGeodata()
defer.returnValue(self.address)
except errors.InsufficientPrivileges:
log.debug("Cannot determine the probe IP address with a traceroute, becase of insufficient priviledges")
except:
log.msg("Unable to lookup the probe IP via traceroute")

try:
yield self.askGeoIPService()
log.msg("Found your IP via a GeoIP service: %s" % self.address)
self.resolveGeodata()
defer.returnValue(self.address)
except Exception:
log.msg("Unable to lookup the probe IP via GeoIPService")
raise

@defer.inlineCallbacks
def askGeoIPService(self):
Expand Down
3 changes: 3 additions & 0 deletions ooni/nettests/blocking/http_requests.py
Original file line number Diff line number Diff line change
Expand Up @@ -17,6 +17,9 @@ class UsageOptions(usage.Options):
['url', 'u', None, 'Specify a single URL to test.'],
['factor', 'f', 0.8,
'What factor should be used for triggering censorship (0.8 == 80%)']]
optFlags = [
["withoutbody","B", "don't include HTTP response body inside of the report"],
]


class HTTPRequestsTest(httpt.HTTPTest):
Expand Down
Loading