diff options
author | Ruben Pollan <meskio@sindominio.net> | 2016-09-30 17:36:12 -0500 |
---|---|---|
committer | Kali Kaneko (leap communications) <kali@leap.se> | 2016-10-04 01:43:34 -0400 |
commit | de0ac2dd999a0548f2276cd2e2715ca93cb6b41b (patch) | |
tree | 42ce8c56d080886c698823b553068c5c3b9cb0f9 /src/leap/bitmask/bonafide/config.py | |
parent | 8589bd13c7aa9054dc27d8b3be5ede9ebffb6abe (diff) |
[bug] In case of wrong url don't leave files in the config folder
- Resolves: #8498
Diffstat (limited to 'src/leap/bitmask/bonafide/config.py')
-rw-r--r-- | src/leap/bitmask/bonafide/config.py | 14 |
1 files changed, 11 insertions, 3 deletions
diff --git a/src/leap/bitmask/bonafide/config.py b/src/leap/bitmask/bonafide/config.py index 8ef6c1b..e4e2bf4 100644 --- a/src/leap/bitmask/bonafide/config.py +++ b/src/leap/bitmask/bonafide/config.py @@ -33,7 +33,7 @@ from twisted.web.client import Agent, downloadPage from leap.bitmask.bonafide._http import httpRequest from leap.bitmask.bonafide.provider import Discovery -from leap.bitmask.bonafide.errors import NotConfiguredError +from leap.bitmask.bonafide.errors import NotConfiguredError, NetworkError from leap.common.check import leap_assert from leap.common.config import get_path_prefix as common_get_path_prefix @@ -284,9 +284,13 @@ class Provider(object): uri = self._disco.get_provider_info_uri() met = self._disco.get_provider_info_method() + def errback(failure): + shutil.rmtree(folders) + raise NetworkError(failure.getErrorMessage()) + d = downloadPage(uri, provider_json, method=met) d.addCallback(lambda _: self._load_provider_json()) - d.addErrback(log.err) + d.addErrback(errback) return d def update_provider_info(self): @@ -299,6 +303,10 @@ class Provider(object): """ :rtype: deferred """ + + def errback(self, failure): + raise NetworkError(failure.getErrorMessage()) + path = self._get_ca_cert_path() if is_file(path): return defer.succeed('ca_cert_path_already_exists') @@ -306,7 +314,7 @@ class Provider(object): uri = self._get_ca_cert_uri() mkdir_p(os.path.split(path)[0]) d = downloadPage(uri, path) - d.addErrback(log.err) + d.addErrback(errback) return d def validate_ca_cert(self, ignored): |