move more stuff in do_COMMAND inside the try block so that exceptions result in a 500 response

This commit is contained in:
Noah Levitt 2017-05-05 13:44:46 -07:00
parent c642565ad8
commit c87ff90bc1
2 changed files with 12 additions and 9 deletions

View File

@ -51,7 +51,7 @@ except:
setuptools.setup(
name='warcprox',
version='2.1b1.dev76',
version='2.1b1.dev77',
description='WARC writing MITM HTTP/S proxy',
url='https://github.com/internetarchive/warcprox',
author='Noah Levitt',

View File

@ -292,7 +292,8 @@ class MitmProxyHandler(http_server.BaseHTTPRequestHandler):
self._transition_to_ssl()
except Exception as e:
try:
self.logger.error("problem handling {}: {}".format(repr(self.requestline), e))
self.logger.error(
"problem handling %s: %s", repr(self.requestline), e)
if type(e) is socket.timeout:
self.send_error(504, str(e))
else:
@ -328,13 +329,13 @@ class MitmProxyHandler(http_server.BaseHTTPRequestHandler):
self.logger.trace(
'request from %s:%s: %s', self.client_address[0],
self.client_address[1], self.requestline)
if self.is_connect:
self.url = self._construct_tunneled_url()
else:
self._determine_host_port()
assert self.url
try:
if self.is_connect:
self.url = self._construct_tunneled_url()
else:
self._determine_host_port()
assert self.url
# Connect to destination
self._connect_to_remote_server()
except warcprox.RequestBlockedByRule as e:
@ -342,7 +343,9 @@ class MitmProxyHandler(http_server.BaseHTTPRequestHandler):
self.logger.info("%s: %s", repr(self.requestline), e)
return
except Exception as e:
self.logger.error("problem processing request {}: {}".format(repr(self.requestline), e), exc_info=True)
self.logger.error(
"problem processing request %s: %s",
repr(self.requestline), e, exc_info=True)
self.send_error(500, str(e))
return