diff --git a/letsencrypt-auto-source/letsencrypt-auto b/letsencrypt-auto-source/letsencrypt-auto index 4b55e480f..dc2bd6ac0 100755 --- a/letsencrypt-auto-source/letsencrypt-auto +++ b/letsencrypt-auto-source/letsencrypt-auto @@ -1361,7 +1361,8 @@ from os.path import dirname, join import re from subprocess import check_call, CalledProcessError from sys import argv, exit -from urllib2 import build_opener, HTTPHandler, HTTPSHandler, HTTPError +from urllib2 import build_opener, HTTPHandler, HTTPSHandler +from urllib2 import HTTPError, URLError PUBLIC_KEY = environ.get('LE_AUTO_PUBLIC_KEY', """-----BEGIN PUBLIC KEY----- MIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEA6MR8W/galdxnpGqBsYbq @@ -1397,7 +1398,9 @@ class HttpsGetter(object): """ try: - return self._opener.open(url).read() + # socket module docs say default timeout is None: that is, no + # timeout + return self._opener.open(url, timeout=30).read() except (HTTPError, IOError) as exc: raise ExpectedError("Couldn't download %s." % url, exc) diff --git a/letsencrypt-auto-source/pieces/fetch.py b/letsencrypt-auto-source/pieces/fetch.py index e7ebb9e0a..8f34351c9 100644 --- a/letsencrypt-auto-source/pieces/fetch.py +++ b/letsencrypt-auto-source/pieces/fetch.py @@ -20,7 +20,8 @@ from os.path import dirname, join import re from subprocess import check_call, CalledProcessError from sys import argv, exit -from urllib2 import build_opener, HTTPHandler, HTTPSHandler, HTTPError +from urllib2 import build_opener, HTTPHandler, HTTPSHandler +from urllib2 import HTTPError, URLError PUBLIC_KEY = environ.get('LE_AUTO_PUBLIC_KEY', """-----BEGIN PUBLIC KEY----- MIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEA6MR8W/galdxnpGqBsYbq @@ -56,7 +57,9 @@ class HttpsGetter(object): """ try: - return self._opener.open(url).read() + # socket module docs say default timeout is None: that is, no + # timeout + return self._opener.open(url, timeout=30).read() except (HTTPError, IOError) as exc: raise ExpectedError("Couldn't download %s." % url, exc)