[tor-commits] [arm/master] Dropping unused GETINFO caching

atagar at torproject.org atagar at torproject.org
Mon Dec 17 04:25:17 UTC 2012


commit bd5d2e202c5dc901f1e3ea65d895a261c03c0d37
Author: Damian Johnson <atagar at torproject.org>
Date:   Tue Dec 11 20:02:42 2012 -0800

    Dropping unused GETINFO caching
    
    Stem has its own GETINFO caching so we can now drop our own. One small
    difference is that stem does not cache 'GETINFO address', so we're loosing
    that. That said, we were listening to NOTICE level events to figure out when it
    was invalidated which was more than a little wrong.
---
 src/util/torTools.py |   34 ++++------------------------------
 1 files changed, 4 insertions(+), 30 deletions(-)

diff --git a/src/util/torTools.py b/src/util/torTools.py
index 9e9e860..80230bf 100644
--- a/src/util/torTools.py
+++ b/src/util/torTools.py
@@ -47,25 +47,6 @@ FAILED_EVENTS = set()
 
 CONTROLLER = None # singleton Controller instance
 
-# Valid keys for the controller's getInfo cache. This includes static GETINFO
-# options (unchangable, even with a SETCONF) and other useful stats
-CACHE_ARGS = ("version", "config-file", "exit-policy/default", "fingerprint",
-              "config/names", "info/names", "features/names", "events/names",
-              "nsEntry", "descEntry", "address", "bwRate", "bwBurst",
-              "bwObserved", "bwMeasured", "flags", "pid", "user", "fdLimit",
-              "pathPrefix", "startTime", "authorities", "circuits", "hsPorts")
-CACHE_GETINFO_PREFIX_ARGS = ("ip-to-country/", )
-
-# Tor has a couple messages (in or/router.c) for when our ip address changes:
-# "Our IP Address has changed from <previous> to <current>; rebuilding
-#   descriptor (source: <source>)."
-# "Guessed our IP address as <current> (source: <source>)."
-# 
-# It would probably be preferable to use the EXTERNAL_ADDRESS event, but I'm
-# not quite sure why it's not provided by check_descriptor_ipaddress_changed
-# so erring on the side of inclusiveness by using the notice event instead.
-ADDR_CHANGED_MSG_PREFIX = ("Our IP Address has changed from", "Guessed our IP address as")
-
 UNDEFINED = "<Undefined_ >"
 
 UNKNOWN = "UNKNOWN" # value used by cached information if undefined
@@ -614,8 +595,7 @@ class Controller(TorCtl.PostEventListener):
     # messages.
     self._pathPrefixLogging = True
     
-    # cached parameters for GETINFO and custom getters (None if unset or
-    # possibly changed)
+    # cached parameters for custom getters (None if unset or possibly changed)
     self._cachedParam = {}
     
     # cached GETCONF parameters, entries consisting of:
@@ -762,8 +742,9 @@ class Controller(TorCtl.PostEventListener):
         return self.controller.get_info(param, default)
       else:
         return self.controller.get_info(param)
-    except stem.SocketClosed:
+    except stem.SocketClosed, exc:
       self.close()
+      raise exc
     finally:
       self.connLock.release()
   
@@ -2011,13 +1992,6 @@ class Controller(TorCtl.PostEventListener):
     
     # notifies listeners of TorCtl events
     for callback in self.torctlListeners: callback(TORCTL_RUNLEVELS[level], msg)
-    
-    # if the message is informing us of our ip address changing then clear
-    # its cached value
-    for prefix in ADDR_CHANGED_MSG_PREFIX:
-      if msg.startswith(prefix):
-        self._cachedParam["address"] = None
-        break
   
   def _updateHeartbeat(self):
     """
@@ -2157,7 +2131,7 @@ class Controller(TorCtl.PostEventListener):
     available and otherwise looking it up.
     
     Arguments:
-      key            - parameter being queried (from CACHE_ARGS)
+      key            - parameter being queried
       default        - value to be returned if undefined
       cacheUndefined - caches when values are undefined, avoiding further
                        lookups if true





More information about the tor-commits mailing list