From: Brian Warner Date: Fri, 1 Dec 2006 00:43:15 +0000 (-0700) Subject: start developing Roster, track all active peers X-Git-Tag: tahoe_v0.1.0-0-UNSTABLE~531 X-Git-Url: https://git.rkrishnan.org/tahoe_css?a=commitdiff_plain;h=158fc107c0df1e840734fbe12d77b1f639c1bf04;p=tahoe-lafs%2Ftahoe-lafs.git start developing Roster, track all active peers --- diff --git a/allmydata/client.py b/allmydata/client.py index bca3ad03..c60042a1 100644 --- a/allmydata/client.py +++ b/allmydata/client.py @@ -12,7 +12,7 @@ reactor.installResolver(BlockingResolver()) class Storage(service.MultiService, Referenceable): pass -class Client(service.MultiService): +class Client(service.MultiService, Referenceable): CERTFILE = "client.pem" AUTHKEYSFILE = "authorized_keys" @@ -63,7 +63,7 @@ class Client(service.MultiService): log.msg("connected to queen") self.queen = queen queen.notifyOnDisconnect(self._lost_queen) - queen.callRemote("hello", urls=self.urls) + queen.callRemote("hello", nodeid=self.tub.tubID, self=self, urls=self.urls) def _lost_queen(self): log.msg("lost connection to queen") diff --git a/allmydata/queen.py b/allmydata/queen.py index a06f90b4..1c7158a0 100644 --- a/allmydata/queen.py +++ b/allmydata/queen.py @@ -6,8 +6,19 @@ import os.path from allmydata.util.iputil import get_local_ip_for class Roster(service.MultiService, Referenceable): - def remote_hello(self, urls): - print "contact from %s" % urls + def __init__(self): + service.MultiService.__init__(self) + self.active_peers = {} + + def remote_hello(self, nodeid, node, urls): + log.msg("contact from %s" % nodeid) + self.active_peers[nodeid] = urls + node.notifyOnDisconnect(self._lost_node, nodeid) + + def _lost_node(self, nodeid): + log.msg("lost contact with %s" % nodeid) + del self.active_peers[nodeid] + class Queen(service.MultiService): CERTFILE = "queen.pem"