From: Brian Warner Date: Tue, 22 Sep 2015 23:29:34 +0000 (-0700) Subject: introducer: stop tracking hints for subscribed clients X-Git-Url: https://git.rkrishnan.org/components/architecture.txt?a=commitdiff_plain;h=781192d0ee1bf1a60d3350b39e0beaec8dff9ec3;p=tahoe-lafs%2Ftahoe-lafs.git introducer: stop tracking hints for subscribed clients A long time ago, the introducer's status web page would show the advertised IP addresses for all subscribers, by parsing their RemoteReference's FURL's connection hints. This hasn't worked since about 12-Aug-2014 when foolscap-0.6.5 changed the internal format of these hints. This removes the feature: we no longer attempt to show advertised IP addresses of subscribed clients. It also removes the code that looked inside foolscap internals for this information. --- diff --git a/src/allmydata/introducer/common.py b/src/allmydata/introducer/common.py index 9337d4bb..9c5638a3 100644 --- a/src/allmydata/introducer/common.py +++ b/src/allmydata/introducer/common.py @@ -100,20 +100,18 @@ class SubscriberDescriptor: .nickname: their self-provided nickname, or "?" (unicode) .version: their self-provided version (string) .app_versions: versions of each library they use (dict str->str) - .advertised_addresses: what hosts they listen on (list of strings) .remote_address: the external address from which they connected (string) .tubid: for subscribers connecting with Foolscap, their tubid (string) """ def __init__(self, service_name, when, nickname, version, app_versions, - advertised_addresses, remote_address, tubid): + remote_address, tubid): self.service_name = service_name self.when = when self.nickname = nickname self.version = version self.app_versions = app_versions - self.advertised_addresses = advertised_addresses self.remote_address = remote_address self.tubid = tubid diff --git a/src/allmydata/introducer/old.py b/src/allmydata/introducer/old.py index 702969f0..3c2fcb71 100644 --- a/src/allmydata/introducer/old.py +++ b/src/allmydata/introducer/old.py @@ -405,13 +405,11 @@ class IntroducerService_v1(service.MultiService, Referenceable): for service_name, subscribers in self._subscribers.items(): for rref, when in subscribers.items(): tubid = rref.getRemoteTubID() or "?" - advertised_addresses = rrefutil.hosts_for_rref(rref) remote_address = rrefutil.stringify_remote_address(rref) nickname, version, app_versions = u"?", u"?", {} sd = SubscriberDescriptor(service_name, when, nickname, version, app_versions, - advertised_addresses, remote_address, - tubid) + remote_address, tubid) s.append(sd) return s diff --git a/src/allmydata/introducer/server.py b/src/allmydata/introducer/server.py index 43a02611..23c900e5 100644 --- a/src/allmydata/introducer/server.py +++ b/src/allmydata/introducer/server.py @@ -175,7 +175,6 @@ class IntroducerService(service.MultiService, Referenceable): # tubid will be None. Also, subscribers do not tell us which # pubkey they use; only publishers do that. tubid = rref.getRemoteTubID() or "?" - advertised_addresses = rrefutil.hosts_for_rref(rref) remote_address = rrefutil.stringify_remote_address(rref) # these three assume subscriber_info["version"]==0, but # should tolerate other versions @@ -188,8 +187,7 @@ class IntroducerService(service.MultiService, Referenceable): # 'when' is the time they subscribed sd = SubscriberDescriptor(service_name, when, nickname, version, app_versions, - advertised_addresses, remote_address, - tubid) + remote_address, tubid) s.append(sd) return s diff --git a/src/allmydata/util/rrefutil.py b/src/allmydata/util/rrefutil.py index a14d15f1..b991267f 100644 --- a/src/allmydata/util/rrefutil.py +++ b/src/allmydata/util/rrefutil.py @@ -27,20 +27,6 @@ def trap_deadref(f): return trap_and_discard(f, DeadReferenceError) -def hosts_for_rref(rref, ignore_localhost=True): - # actually, this only returns hostnames - advertised = [] - for hint in rref.getLocationHints(): - # Foolscap-0.2.5 and earlier used strings in .locationHints, but we - # require a newer version that uses tuples of ("ipv4", host, port) - assert not isinstance(hint, str), hint - if hint[0] == "ipv4": - host = hint[1] - if ignore_localhost and host == "127.0.0.1": - continue - advertised.append(host) - return advertised - def hosts_for_furl(furl, ignore_localhost=True): advertised = [] for hint in SturdyRef(furl).locationHints: diff --git a/src/allmydata/web/introducer.xhtml b/src/allmydata/web/introducer.xhtml index e89e88c3..82c93764 100644 --- a/src/allmydata/web/introducer.xhtml +++ b/src/allmydata/web/introducer.xhtml @@ -56,7 +56,6 @@
Nickname
Tub ID
- Advertised IPs Connected From Since Version @@ -66,7 +65,6 @@
- diff --git a/src/allmydata/web/introweb.py b/src/allmydata/web/introweb.py index cc8b2ce1..bbe42d0b 100644 --- a/src/allmydata/web/introweb.py +++ b/src/allmydata/web/introweb.py @@ -119,7 +119,6 @@ class IntroducerRoot(rend.Page): def render_subscriber_row(self, ctx, s): ctx.fillSlots("nickname", s.nickname) ctx.fillSlots("tubid", s.tubid) - ctx.fillSlots("advertised", " ".join(s.advertised_addresses)) ctx.fillSlots("connected", s.remote_address) since_s = time.strftime("%H:%M:%S %d-%b-%Y", time.localtime(s.when)) ctx.fillSlots("since", since_s)