diff options
author | Christopher Baines <cb15g11@soton.ac.uk> | 2014-04-11 23:52:52 +0100 |
---|---|---|
committer | Christopher Baines <cb15g11@soton.ac.uk> | 2014-04-11 23:52:52 +0100 |
commit | 43ad6bc0f94a048cfffe4ec3d22e78e75d4d6795 (patch) | |
tree | 8b7401354f76f9ac0b2f41de9fb7471f24ffff44 /networks/hs_round_robin.py | |
parent | 4eb4e01e49d78a4a74b1e8f9bccaebd16d9ebcb1 (diff) | |
download | chutney-43ad6bc0f94a048cfffe4ec3d22e78e75d4d6795.tar chutney-43ad6bc0f94a048cfffe4ec3d22e78e75d4d6795.tar.gz |
Better command line options
Diffstat (limited to 'networks/hs_round_robin.py')
-rw-r--r-- | networks/hs_round_robin.py | 88 |
1 files changed, 88 insertions, 0 deletions
diff --git a/networks/hs_round_robin.py b/networks/hs_round_robin.py new file mode 100644 index 0000000..5703f93 --- /dev/null +++ b/networks/hs_round_robin.py @@ -0,0 +1,88 @@ +nodes_by_fingerprint = {} + +#{ nodenum: { circuit: "fingerprint", circuit: "fingerprint" } } + +# Introduction Point Tracking + +node_intro_circuits = {} + +node_intro_events = {} + +introduction_point_circuits = {} + +def start_test(): + log("Starting test") + + port8081 = reactor.listenTCP(8081, server.Site(Site(1))) + port8082 = reactor.listenTCP(8082, server.Site(Site(2))) + + def cleanup(): + port8081.stopListening() + log("stopped 8081") + port8082.stopListening() + log("stopped 8082") + reactor.stop() + log("stopped the reactor") + + def connection_test(): + log("connecting to clients") + responses = {"1": 0, "2": 0} + + for c in Client: + result = c.query("http://2oiifbe3wne4iaqb.onion/"); + + if result in responses: + responses[result] += 1 + else: + log("Unknown response:") + + log(responses) + + def test(): + connection_test() + + connection_test() + + cleanup() + + stop() + + thread.start_new_thread(test, ()) + +def start(): + log("Starting round robin test") + + if not all([ n.getController().start() for n in initial_nodes ]): + return False + + log("All initial nodes running") + + for node in Authority + Relay: + fingerprint = node.getStemController().get_info("fingerprint") + nodes_by_fingerprint[fingerprint] = node + + track_introduction_point(node) + + track_hs_node(hs_node_1) + + def log_listener(logevent): + if "Successfully uploaded v2 rend descriptors" in logevent.message: + hs_node_1.getStemController().remove_event_listener(log_listener) + + def start_listener(logevent): + + # Probably after what needs waiting for + if "Successfully uploaded v2 rend descriptors" in logevent.message: + hs_node_2.getStemController().remove_event_listener(start_listener) + + if check_same_intro_points(): + thread.start_new_thread(start_test, ()) + log("finished running start_test in another thread") + + hs_node_2.getController().start() + + track_hs_node(hs_node_2) + + hs_node_2.getStemController().add_event_listener(start_listener, EventType.INFO) + + hs_node_1.getStemController().add_event_listener(log_listener, EventType.INFO) |