commit a868f374dae40a5bfa8ae8951aee21ee0dc0bc01 Author: Damian Johnson atagar@torproject.org Date: Sun Dec 16 19:09:04 2012 -0800
Replacing TorCtl descriptor calls
Oops, missing a use of our TorCtl controller connection. This was a kinda screwy call - we were checking the 'down' attribute of a TorCtl Router class. This attribute seems to be True if...
* the router lacks the Running flag * is hibernating * is Valid but lacks an observed bandwidth
I'm not quite sure why I ever used this attribute. Just checking for the Running flag and calling it good. We can check for other criteria if it makes sense for the use case later. --- src/util/torTools.py | 14 ++++---------- 1 files changed, 4 insertions(+), 10 deletions(-)
diff --git a/src/util/torTools.py b/src/util/torTools.py index 056c454..5ac29ea 100644 --- a/src/util/torTools.py +++ b/src/util/torTools.py @@ -1748,17 +1748,11 @@ class Controller(TorCtl.PostEventListener):
for entryPort, entryFingerprint in list(potentialMatches): try: - nsCall = self.conn.get_network_status("id/%s" % entryFingerprint) - if not nsCall: raise TorCtl.ErrorReply() # network consensus couldn't be fetched - nsEntry = nsCall[0] + nsEntry = self.controller.get_network_status(entryFingerprint)
- descEntry = self.getInfo("desc/id/%s" % entryFingerprint, None) - if not descEntry: raise TorCtl.ErrorReply() # relay descriptor couldn't be fetched - descLines = descEntry.split("\n") - - isDown = TorCtl.Router.build_from_desc(descLines, nsEntry).down - if isDown: potentialMatches.remove((entryPort, entryFingerprint)) - except (socket.error, TorCtl.ErrorReply, TorCtl.TorCtlClosed): pass + if not stem.descriptor.RUNNING in nsEntry.flags: + potentialMatches.remove((entryPort, entryFingerprint)) + except stem.ControllerError: pass
if len(potentialMatches) == 1: return potentialMatches[0][1]