Implement support for additional headers with HTTP errors
authorMichael Hanselmann <hansmi@google.com>
Thu, 18 Dec 2008 13:44:53 +0000 (13:44 +0000)
committerMichael Hanselmann <hansmi@google.com>
Thu, 18 Dec 2008 13:44:53 +0000 (13:44 +0000)
Reviewed-by: amishchenko

lib/http/__init__.py
lib/http/server.py

index 03e77c9..7973b0f 100644 (file)
@@ -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):
index 2b87d67..a671591 100644 (file)
@@ -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