commit 720164398b847dfedde9e2dc9de7a6eb85c18de8 Author: Damian Johnson atagar@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]
tor-commits@lists.torproject.org