def test_bootstrap_callback(self): ''' FIXME: something is still screwy with this; try throwing an exception from TorState.bootstrap and we'll just hang... ''' from test_torconfig import FakeControlProtocol protocol = FakeControlProtocol( [ "ns/all=", # ns/all "", # circuit-status "", # stream-status "", # address-mappings/all "entry-guards=\r\n$0000000000000000000000000000000000000000=name up\r\n$1111111111111111111111111111111111111111=foo up\r\n$9999999999999999999999999999999999999999=eman unusable 2012-01-01 22:00:00\r\n", # entry-guards "99999", # process/pid "??", # ip-to-country/0.0.0.0 ] ) state = yield TorState.from_protocol(protocol) self.assertEqual(len(state.entry_guards), 2) self.assertTrue('$0000000000000000000000000000000000000000' in state.entry_guards) self.assertTrue('$1111111111111111111111111111111111111111' in state.entry_guards) self.assertEqual(len(state.unusable_entry_guards), 1) self.assertTrue('$9999999999999999999999999999999999999999' in state.unusable_entry_guards[0])
def test_bootstrap_callback(self): ''' FIXME: something is still screwy with this; try throwing an exception from TorState.bootstrap and we'll just hang... ''' from test_torconfig import FakeControlProtocol protocol = FakeControlProtocol([ "ns/all=", # ns/all "", # circuit-status "", # stream-status "", # address-mappings/all "entry-guards=\r\n$0000000000000000000000000000000000000000=name up\r\n$1111111111111111111111111111111111111111=foo up\r\n$9999999999999999999999999999999999999999=eman unusable 2012-01-01 22:00:00\r\n", # entry-guards "99999", # process/pid "??", # ip-to-country/0.0.0.0 ]) state = yield TorState.from_protocol(protocol) self.assertEqual(len(state.entry_guards), 2) self.assertTrue( '$0000000000000000000000000000000000000000' in state.entry_guards) self.assertTrue( '$1111111111111111111111111111111111111111' in state.entry_guards) self.assertEqual(len(state.unusable_entry_guards), 1) self.assertTrue('$9999999999999999999999999999999999999999' in state.unusable_entry_guards[0])
def start_tor(): config = txtorcon.TorConfig() config.DataDirectory = tor_data def get_random_tor_ports(): d2 = txtorcon.util.available_tcp_port(reactor) d2.addCallback(lambda port: config.__setattr__('SocksPort', port)) d2.addCallback(lambda _: txtorcon.util.available_tcp_port(reactor)) d2.addCallback( lambda port: config.__setattr__('ControlPort', port)) return d2 def launch_and_get_protocol(ignore): d2 = txtorcon.launch_tor(config, reactor, stdout=sys.stdout) d2.addCallback( lambda tpp: txtorcon.TorState(tpp.tor_protocol).post_bootstrap) d2.addCallback(lambda state: state.protocol) return d2 d3 = get_random_tor_ports().addCallback(launch_and_get_protocol) def change_torrc(result): config.UseEntryGuards = 0 d2 = config.save() d2.addCallback(lambda ign: result) return d2 d3.addCallback(change_torrc) d3.addCallback(lambda protocol: TorState.from_protocol(protocol)) return d3
def start_tor(): config = txtorcon.TorConfig() config.DataDirectory = tor_data def get_random_tor_ports(): d2 = txtorcon.util.available_tcp_port(reactor) d2.addCallback(lambda port: config.__setattr__('SocksPort', port)) d2.addCallback(lambda _: txtorcon.util.available_tcp_port(reactor)) d2.addCallback(lambda port: config.__setattr__('ControlPort', port)) return d2 def launch_and_get_protocol(ignore): d2 = txtorcon.launch_tor(config, reactor, stdout=sys.stdout) d2.addCallback(lambda tpp: txtorcon.TorState(tpp.tor_protocol).post_bootstrap) d2.addCallback(lambda state: state.protocol) return d2 d = get_random_tor_ports().addCallback(launch_and_get_protocol) def change_torrc(result): config.UseEntryGuards=0 d2 = config.save() d2.addCallback(lambda ign: result) return d2 d.addCallback(change_torrc) d.addCallback(lambda protocol: TorState.from_protocol(protocol)) return d