start developing Roster, track all active peers

This commit is contained in:
Brian Warner 2006-11-30 17:43:15 -07:00
parent cc86df067b
commit 158fc107c0
2 changed files with 15 additions and 4 deletions

View File

@ -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")

View File

@ -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"