From 158fc107c0df1e840734fbe12d77b1f639c1bf04 Mon Sep 17 00:00:00 2001 From: Brian Warner Date: Thu, 30 Nov 2006 17:43:15 -0700 Subject: [PATCH] start developing Roster, track all active peers --- allmydata/client.py | 4 ++-- allmydata/queen.py | 15 +++++++++++++-- 2 files changed, 15 insertions(+), 4 deletions(-) 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" -- 2.45.2