From: Brian Warner Date: Thu, 7 Jun 2007 22:32:21 +0000 (-0700) Subject: client.py: use persistent FURLs for our Node, to reduce spurious connection attempts... X-Git-Tag: allmydata-tahoe-0.3.0~18 X-Git-Url: https://git.rkrishnan.org/pf/content/de.html?a=commitdiff_plain;h=59f4a5abe88c9683247b2c4b61c955c3004aa24c;p=tahoe-lafs%2Ftahoe-lafs.git client.py: use persistent FURLs for our Node, to reduce spurious connection attempts (#26) --- diff --git a/src/allmydata/client.py b/src/allmydata/client.py index f6a00861..c81910f0 100644 --- a/src/allmydata/client.py +++ b/src/allmydata/client.py @@ -1,6 +1,6 @@ import os, sha, stat, time -from foolscap import Referenceable +from foolscap import Referenceable, SturdyRef from zope.interface import implements from allmydata.interfaces import RIClient from allmydata import node @@ -26,6 +26,7 @@ class Client(node.Node, Referenceable): WEBPORTFILE = "webport" INTRODUCER_FURL_FILE = "introducer.furl" GLOBAL_VDRIVE_FURL_FILE = "vdrive.furl" + MY_FURL_FILE = "myself.furl" SUICIDE_PREVENTION_HOTLINE_FILE = "suicide_prevention_hotline" # we're pretty narrow-minded right now @@ -43,7 +44,7 @@ class Client(node.Node, Referenceable): WEBPORTFILE = os.path.join(self.basedir, self.WEBPORTFILE) if os.path.exists(WEBPORTFILE): f = open(WEBPORTFILE, "r") - webport = f.read() # strports string + webport = f.read().strip() # strports string f.close() self.add_service(WebishServer(webport)) @@ -75,7 +76,18 @@ class Client(node.Node, Referenceable): def tub_ready(self): self.log("tub_ready") - self.my_furl = self.tub.registerReference(self) + + my_old_name = None + MYSELF_FURL_PATH = os.path.join(self.basedir, self.MY_FURL_FILE) + if os.path.exists(MYSELF_FURL_PATH): + my_old_furl = open(MYSELF_FURL_PATH, "r").read().strip() + sturdy = SturdyRef(my_old_furl) + my_old_name = sturdy.name + + self.my_furl = self.tub.registerReference(self, my_old_name) + f = open(MYSELF_FURL_PATH, "w") + f.write(self.my_furl) + f.close() ic = IntroducerClient(self.tub, self.introducer_furl, self.my_furl) self.introducer_client = ic