[tor-commits] [bridgedb/master] 5482 - add stability property convenience methods
aagbsn at torproject.org
aagbsn at torproject.org
Wed Apr 17 00:26:44 UTC 2013
commit 9bb52c00c1fb7ab7699b6b8b06acaf86588f0751
Author: aagbsn <aagbsn at extc.org>
Date: Tue Oct 30 03:50:55 2012 -0700
5482 - add stability property convenience methods
---
lib/bridgedb/Bridges.py | 46 +++++++++-------------------------------------
1 files changed, 9 insertions(+), 37 deletions(-)
diff --git a/lib/bridgedb/Bridges.py b/lib/bridgedb/Bridges.py
index ed003ea..80dee5c 100644
--- a/lib/bridgedb/Bridges.py
+++ b/lib/bridgedb/Bridges.py
@@ -273,60 +273,32 @@ class Bridge:
A bridge is 'familiar' if 1/8 of all active bridges have appeared
more recently than it, or if it has been around for a Weighted Time of 8 days.
"""
- # if self.wt >= 8 days: return True
- # bridges = session.query(Bridges).filter(time_first_seen, order=asc)
- # if bridges[len(bridges) / 8].time_first_seen > self.time_first_seen: return True
- # return False
- pass
+ db = bridgedb.Storage.getDB()
+ return db.getBridgeHistory(self.wmtbac).familiar
@property
def wfu(self):
"""Weighted Fractional Uptime"""
- pass
+ db = bridgedb.Storage.getDB()
+ return db.getBridgeHistory(self.wmtbac).weightedFractionalUptime
@property
def wt(self):
"""Weighted Time"""
- pass
+ db = bridgedb.Storage.getDB()
+ return db.getBridgeHistory(self.wmtbac).weightedTime
@property
def wmtbac(self):
"""Weighted Mean Time Between Address Change"""
- pass
+ db = bridgedb.Storage.getDB()
+ return db.getBridgeHistory(self.fingerprint).wmtbac
@property
def tosa(self):
"""the Time On Same Address (TOSA)"""
- pass
-
- @property
- def lastSeenWithDifferentAddressAndPort(self):
- """Timestamp in milliseconds when this bridge was last
- seen with a different address or port"""
- db = bridgedb.Storage.getDB()
- descs = db.getBridgeDescriptors(self.fingerprint)
- assert(descs is not None) # should not happen
- # sort by timestamp, newest first XXX: what is the db order?
- descs.sort(lambda x,y: cmp(x[3] , y[3]), reverse=True)
- # grab the most recent descriptor
- last = descs.pop(0)
- last_orport = last[2] # (fp, ip, orport, timestamp)
- last_ip = last[1]
- for desc in descs:
- if desc[2] != last_orport or desc[1] != last_ip:
- return desc[3]*1000 # timestamp in milliseconds
- #XXX: hmm, we have never seen a different orport. What now?
- return descs[-1][3]*1000 # the oldest descriptor known... maybe this is right
- @property
- def lastSeenWithThisAddressAndPort(self):
- """Timestamp in milliseconds when this bridge was last
- seen with this address and port"""
- #XXX: what address and port would that be?
db = bridgedb.Storage.getDB()
- descs = db.getBridgeDescriptors(self.fingerprint)
- assert(descs is not None) # should not happen
- descs.sort(lambda x,y: cmp(x[3] , y[3]), reverse=True)
- return descs.pop(0)[3]*1000 # just return the most recent timestamp
+ return db.getBridgeHistory(self.fingerprint).tosa
def parseDescFile(f, bridge_purpose='bridge'):
"""Generator. Parses a cached-descriptors file 'f' and yeilds a Bridge object
More information about the tor-commits
mailing list