From a8e01e9f22c8ebdf4672b1c3def04ec269d47884 Mon Sep 17 00:00:00 2001 From: Michael Hanselmann <hansmi@google.com> Date: Thu, 18 Dec 2008 13:44:53 +0000 Subject: [PATCH] Implement support for additional headers with HTTP errors Reviewed-by: amishchenko --- lib/http/__init__.py | 6 +++--- lib/http/server.py | 10 +++++++--- 2 files changed, 10 insertions(+), 6 deletions(-) diff --git a/lib/http/__init__.py b/lib/http/__init__.py index 03e77c9bc..7973b0fe1 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 2b87d6716..a671591f6 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 -- GitLab