Exemplo n.º 1
0
    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
Exemplo n.º 2
0
 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)
Exemplo n.º 3
0
    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
Exemplo n.º 4
0
    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
Exemplo n.º 5
0
 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
Exemplo n.º 6
0
    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
Exemplo n.º 7
0
 def setup_complete(proto):
     log.msg("Setup Complete.")
     report.update({'success': args})
     return report
Exemplo n.º 8
0
 def setup_failed(args):
     log.msg("Setup Failed.")
     report.update({'failed': args})
     return report
Exemplo n.º 9
0
 def updates(prog, tag, summary):
     log.msg("%d%%: %s" % (prog, summary))
Exemplo n.º 10
0
 def startTest(self, args):
     self.start_time = datetime.now()
     log.msg("Starting test %s" % self.__class__)
     return self._do_experiment(args)
Exemplo n.º 11
0
 def experiment(self, args):
     log.msg("Doing experiment")
     return {}
Exemplo n.º 12
0
 def control(self, result, args):
     log.msg("Doing control")
     return result
Exemplo n.º 13
0
 def gotError(err):
     log.msg("Had error :(")
     log.msg(err)
     return {'result': False, 'target': [host, port]}
Exemplo n.º 14
0
 def gotProtocol(p):
     p.transport.loseConnection()
     log.msg("Got a connection!")
     log.msg(str(p))
     return {'result': True, 'target': [host, port]}
Exemplo n.º 15
0
 def finished(data):
     log.msg("Finished sending")
     return data
Exemplo n.º 16
0
 def control(self, experiment_result, args):
     # What you return here ends up inside of the report.
     log.msg("Running control")
     return {}