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