diff --git a/lib/http/__init__.py b/lib/http/__init__.py index 03e77c9bc97c45b75d3b94796ad704bfb493449b..7973b0fe14683eaf671faf3375c11249bc7e222e 100644 --- a/lib/http/__init__.py +++ b/lib/http/__init__.py @@ -111,10 +111,10 @@ class HttpException(Exception): code = None message = None - def __init__(self, message=None): + def __init__(self, message=None, headers=None): Exception.__init__(self) - if message is not None: - self.message = message + self.message = message + self.headers = headers class HttpBadRequest(HttpException): diff --git a/lib/http/server.py b/lib/http/server.py index 2b87d6716abad6e447de595545258d8e35a12180..a671591f6057ddaa8082c04f9878798cbcd8f276 100644 --- a/lib/http/server.py +++ b/lib/http/server.py @@ -388,9 +388,13 @@ class _HttpServerRequestExecutor(object): } self.response_msg.start_line.code = err.code - self.response_msg.headers = { - http.HTTP_CONTENT_TYPE: self.error_content_type, - } + + headers = {} + if err.headers: + headers.update(err.headers) + headers[http.HTTP_CONTENT_TYPE] = self.error_content_type + self.response_msg.headers = headers + self.response_msg.body = self.error_message_format % values