From 7006e5d381381147f7d7584a6c062a0d4d137a53 Mon Sep 17 00:00:00 2001 From: Xiami Date: Thu, 14 Dec 2017 18:30:29 +0800 Subject: [PATCH 1/2] selectors.py: fix crash on certificate verification failure --- mirrorselect/selectors.py | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) diff --git a/mirrorselect/selectors.py b/mirrorselect/selectors.py index cf70b21..aee1b52 100644 --- a/mirrorselect/selectors.py +++ b/mirrorselect/selectors.py @@ -53,6 +53,7 @@ else: HTTPError = urllib2.HTTPError import httplib IncompleteRead = httplib.IncompleteRead +from ssl import CertificateError from mirrorselect.output import encoder, get_encoding, decode_selection @@ -387,7 +388,7 @@ class Deep(object): finally: signal.alarm(0) - except EnvironmentError as e: + except (EnvironmentError, CertificateError) as e: self.output.write(('\ndeeptime(): download from host %s ' 'failed for ip %s: %s\n') % (url_parts.hostname, ip, e), 2) return (None, True) @@ -430,7 +431,7 @@ class Deep(object): if len(ips) == 1: test_url = url_unparse(url_parts) return self._test_connection(test_url, url_parts, ip, []) - except EnvironmentError as e: + except (EnvironmentError, CertificateError) as e: self.output.write('deeptime(): connection to host %s ' 'failed for ip %s:\n %s\n' % (url_parts.hostname, ip, e), 2) base-commit: 18df6efa96f57830f26ca94c41e1f1e8cc30b3ca -- 2.13.6