From 94e47e4c5e9bd81ae2f2d478e434a5688e8271e5 Mon Sep 17 00:00:00 2001 From: Philip Allgaier Date: Sat, 3 Oct 2020 14:53:59 +0200 Subject: [PATCH] Catch bad status code errors --- speedtest.py | 44 +++++++++++++++++++++++++++----------------- 1 file changed, 27 insertions(+), 17 deletions(-) diff --git a/speedtest.py b/speedtest.py index 1d9a234..32862fa 100755 --- a/speedtest.py +++ b/speedtest.py @@ -534,14 +534,19 @@ class SpeedtestHTTPHandler(AbstractHTTPHandler): self.timeout = timeout def http_open(self, req): - return self.do_open( - _build_connection( - SpeedtestHTTPConnection, - self.source_address, - self.timeout - ), - req - ) + try: + return self.do_open( + _build_connection( + SpeedtestHTTPConnection, + self.source_address, + self.timeout + ), + req + ) + except BadStatusLine: + raise SpeedtestHTTPError( + 'Server returned bad status code' + ) http_request = AbstractHTTPHandler.do_request_ @@ -558,15 +563,20 @@ class SpeedtestHTTPSHandler(AbstractHTTPHandler): self.timeout = timeout def https_open(self, req): - return self.do_open( - _build_connection( - SpeedtestHTTPSConnection, - self.source_address, - self.timeout, - context=self._context, - ), - req - ) + try: + return self.do_open( + _build_connection( + SpeedtestHTTPSConnection, + self.source_address, + self.timeout, + context=self._context, + ), + req + ) + except BadStatusLine: + raise SpeedtestHTTPError( + 'Server returned bad status code' + ) https_request = AbstractHTTPHandler.do_request_