aboutsummaryrefslogtreecommitdiffstatshomepage
path: root/project/boost/download.py
diff options
context:
space:
mode:
Diffstat (limited to '')
-rw-r--r--project/boost/download.py11
1 files changed, 8 insertions, 3 deletions
diff --git a/project/boost/download.py b/project/boost/download.py
index ae18e94..13a89f4 100644
--- a/project/boost/download.py
+++ b/project/boost/download.py
@@ -25,14 +25,19 @@ import urllib.request
from project.boost.archive import Archive, PermanentStorage, TemporaryStorage
from project.boost.version import Version
-from project.utils import normalize_path, setup_logging
+from project.utils import normalize_path, retry, setup_logging
+
+
+@retry(urllib.request.URLError)
+def _download_try_url_retry(url):
+ with urllib.request.urlopen(url, timeout=20) as request:
+ return request.read()
def _download_try_url(url):
logging.info('Trying URL: %s', url)
try:
- with urllib.request.urlopen(url, timeout=20) as request:
- return request.read()
+ return _download_try_url_retry(url)
except urllib.request.URLError as e:
logging.error("Couldn't download from this mirror, an error occured:")
logging.exception(e)