[tor-commits] [stem/master] More eagerly invalidate our exit policy cache

atagar at torproject.org atagar at torproject.org
Tue Apr 17 16:48:31 UTC 2018


commit 720164398b847dfedde9e2dc9de7a6eb85c18de8
Author: Damian Johnson <atagar at torproject.org>
Date:   Tue Apr 17 09:19:17 2018 -0700

    More eagerly invalidate our exit policy cache
    
    Lots of great points on #25423. There's several torrc options that can adjust
    our exit policy so simply invalidating it with any SETCONF call. It's cheap to
    reconstruct the ExitPolicy instance anyway.
---
 stem/control.py | 9 ++++-----
 1 file changed, 4 insertions(+), 5 deletions(-)

diff --git a/stem/control.py b/stem/control.py
index 93f8fc19..ed869a8c 100644
--- a/stem/control.py
+++ b/stem/control.py
@@ -1072,8 +1072,7 @@ class Controller(BaseController):
       if self.is_caching_enabled():
         self._set_cache(dict((k, None) for k in event.config), 'getconf')
 
-        if 'exitpolicy' in event.config.keys():
-          self._set_cache({'exit_policy': None})
+        self._set_cache({'exit_policy': None})  # numerous options can change our policy
 
     self.add_event_listener(_confchanged_listener, EventType.CONF_CHANGED)
 
@@ -2410,9 +2409,7 @@ class Controller(BaseController):
 
           to_cache[param] = value
 
-          if param == 'exitpolicy':
-            self._set_cache({'exit_policy': None})
-          elif 'hidden' in param:
+          if 'hidden' in param:
             self._set_cache({'hidden_service_conf': None})
 
         # reset any getinfo parameters that can be changed by a SETCONF
@@ -2422,6 +2419,8 @@ class Controller(BaseController):
 
         self._set_cache(to_cache, 'getconf')
         self._set_cache({'get_custom_options': None})
+
+        self._set_cache({'exit_policy': None})  # numerous options can change our policy
     else:
       log.debug('%s (failed, code: %s, message: %s)' % (query, response.code, response.message))
       immutable_params = [k for k, v in params if stem.util.str_tools._to_unicode(k).lower() in IMMUTABLE_CONFIG_OPTIONS]





More information about the tor-commits mailing list