aboutsummaryrefslogtreecommitdiff
path: root/networks/hs_round_robin.py
diff options
context:
space:
mode:
authorChristopher Baines <cb15g11@soton.ac.uk>2014-04-11 23:52:52 +0100
committerChristopher Baines <cb15g11@soton.ac.uk>2014-04-11 23:52:52 +0100
commit43ad6bc0f94a048cfffe4ec3d22e78e75d4d6795 (patch)
tree8b7401354f76f9ac0b2f41de9fb7471f24ffff44 /networks/hs_round_robin.py
parent4eb4e01e49d78a4a74b1e8f9bccaebd16d9ebcb1 (diff)
downloadchutney-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.py88
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)