[tor-commits] [stem/master] Save value rather than invalidate getconf cache in CONF_CHANGED events

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


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

    Save value rather than invalidate getconf cache in CONF_CHANGED events
    
    This makes use of the new 'changed' and 'unset' attributes of the event.
    
    Partially fixes #25821
---
 stem/control.py | 8 +++++++-
 1 file changed, 7 insertions(+), 1 deletion(-)

diff --git a/stem/control.py b/stem/control.py
index bd98f1bc..c67de63c 100644
--- a/stem/control.py
+++ b/stem/control.py
@@ -1064,7 +1064,13 @@ class Controller(BaseController):
 
     def _confchanged_listener(event):
       if self.is_caching_enabled():
-        to_cache = dict((k.lower(), None) for k in event.config)
+        to_cache_changed = dict((k.lower(), v) for k, v in event.changed.items())
+        to_cache_unset = dict((k.lower(), []) for k in event.unset)  # [] represents None value in cache
+
+        to_cache = {}
+        to_cache.update(to_cache_changed)
+        to_cache.update(to_cache_unset)
+
         self._set_cache(to_cache, 'getconf')
 
         self._confchanged_cache_invalidation(to_cache)





More information about the tor-commits mailing list