def experiment(self, args): log.msg("Doing test") # What you return here gets handed as input to control from ooni.lib.txtorcon import TorProtocolFactory, TorConfig, TorState from ooni.lib.txtorcon import DEFAULT_VALUE, launch_tor def updates(prog, tag, summary): log.msg("%d%%: %s" % (prog, summary)) def setup_failed(args): log.msg("Setup Failed.") report.update({'failed': args}) return report def setup_complete(proto): log.msg("Setup Complete.") report.update({'success': args}) return report config = TorConfig() config.SocksPort = 9999 config.OrPort = 1234 if 'bridge' in args: config.UseBridges = 1 config.Bridge = args['bridge'] config.save() report = {'tor_config': config.config} log.msg("Starting Tor") d = launch_tor(config, reactor, progress_updates=updates) d.addCallback(setup_complete) d.addErrback(setup_failed) return d
def send_report(self, data, type): """ This sends the report using the specified type. """ #print "Reporting %s to %s" % (data, type) log.msg("Reporting to %s" % type) getattr(self, type+"_report").__call__(data)
def experiment(self, args): log.msg("Running experiment") d = self.build_request(args['url']) def finished(data): return data d.addCallback(self._cbResponse) d.addCallback(finished) return d
def experiment(self, args): log.msg("Running experiment") if self.receive: d = txsr(self.build_packets(), pcapfile=self.pcapfile) else: d = txsend(self.build_packets()) def finished(data): return data d.addCallback(finished) return d
def finished(self, control): #self.ooninet.report(result) self.end_time = datetime.now() result = {} result['start_time'] = self.start_time result['end_time'] = self.end_time result['run_time'] = self.end_time - self.start_time result['result'] = control log.msg("FINISHED %s" % result) self.report(result) return result
def experiment(self, args): log.msg("Running experiment") if self.receive: log.msg("Sending and receiving packets.") d = txsr(self.build_packets(), pcapfile=self.pcapfile, timeout=self.timeout) else: log.msg("Sending packets.") d = txsend(self.build_packets()) def finished(data): log.msg("Finished sending") return data d.addCallback(finished) return d
def setup_complete(proto): log.msg("Setup Complete.") report.update({'success': args}) return report
def setup_failed(args): log.msg("Setup Failed.") report.update({'failed': args}) return report
def updates(prog, tag, summary): log.msg("%d%%: %s" % (prog, summary))
def startTest(self, args): self.start_time = datetime.now() log.msg("Starting test %s" % self.__class__) return self._do_experiment(args)
def experiment(self, args): log.msg("Doing experiment") return {}
def control(self, result, args): log.msg("Doing control") return result
def gotError(err): log.msg("Had error :(") log.msg(err) return {'result': False, 'target': [host, port]}
def gotProtocol(p): p.transport.loseConnection() log.msg("Got a connection!") log.msg(str(p)) return {'result': True, 'target': [host, port]}
def finished(data): log.msg("Finished sending") return data
def control(self, experiment_result, args): # What you return here ends up inside of the report. log.msg("Running control") return {}