[tor-commits] [stem/master] Refactor dropping uncacheable GETCONF params into _set_cache()

atagar at torproject.org atagar at torproject.org
Mon May 21 01:44:25 UTC 2018


commit 9e517998c59a437e7050ebfb685066d249abb21e
Author: Dave Rolek <dmr-x at riseup.net>
Date:   Mon May 14 04:14:19 2018 +0000

    Refactor dropping uncacheable GETCONF params into _set_cache()
    
    This likely also fixes a bug where _set_cache() was called without
    dropping these first.
    
    See #25821
---
 stem/control.py | 12 ++++++++----
 1 file changed, 8 insertions(+), 4 deletions(-)

diff --git a/stem/control.py b/stem/control.py
index c045eba4..c2467a53 100644
--- a/stem/control.py
+++ b/stem/control.py
@@ -2229,10 +2229,6 @@ class Controller(BaseController):
       if self.is_caching_enabled():
         to_cache = dict((k.lower(), v) for k, v in response.entries.items())
 
-        for key in UNCACHEABLE_GETCONF_PARAMS:
-          if key in to_cache:
-            del to_cache[key]
-
         self._set_cache(to_cache, 'getconf')
 
       # Maps the entries back to the parameters that the user requested so the
@@ -3190,6 +3186,14 @@ class Controller(BaseController):
 
         return
 
+      # remove uncacheable items
+      if namespace == 'getconf':
+        # shallow copy before edit so as not to change it for the caller
+        params = params.copy()
+        for key in UNCACHEABLE_GETCONF_PARAMS:
+          if key in params:
+            del params[key]
+
       for key, value in list(params.items()):
         if namespace:
           cache_key = '%s.%s' % (namespace, key)





More information about the tor-commits mailing list