mercurial/hgweb/request.py
changeset 5563 d61fea133f2d
parent 5561 22713dce19f6
child 5566 d74fc8dec2b4
equal deleted inserted replaced
5562:72cb6bde5355 5563:d61fea133f2d
     6 # This software may be used and distributed according to the terms
     6 # This software may be used and distributed according to the terms
     7 # of the GNU General Public License, incorporated herein by reference.
     7 # of the GNU General Public License, incorporated herein by reference.
     8 
     8 
     9 import socket, cgi, errno
     9 import socket, cgi, errno
    10 from mercurial.i18n import gettext as _
    10 from mercurial.i18n import gettext as _
    11 from common import ErrorResponse
    11 from common import ErrorResponse, statusmessage
    12 
    12 
    13 class wsgiapplication(object):
    13 class wsgiapplication(object):
    14     def __init__(self, destmaker):
    14     def __init__(self, destmaker):
    15         self.destmaker = destmaker
    15         self.destmaker = destmaker
    16 
    16 
    51             else:
    51             else:
    52                 thing = str(thing)
    52                 thing = str(thing)
    53                 if self.server_write is None:
    53                 if self.server_write is None:
    54                     if not self.headers:
    54                     if not self.headers:
    55                         raise RuntimeError("request.write called before headers sent (%s)." % thing)
    55                         raise RuntimeError("request.write called before headers sent (%s)." % thing)
    56                     code = None
       
    57                     if isinstance(status, ErrorResponse):
    56                     if isinstance(status, ErrorResponse):
    58                         code = status.code
    57                         status = statusmessage(status.code)
    59                     elif isinstance(status, int):
    58                     elif isinstance(status, int):
    60                         code = status
    59                         status = statusmessage(status)
    61                     if code:
       
    62                         from httplib import responses
       
    63                         status = '%d %s' % (
       
    64                             code, responses.get(code, 'Error'))
       
    65                     self.server_write = self.start_response(status,
    60                     self.server_write = self.start_response(status,
    66                                                             self.headers)
    61                                                             self.headers)
    67                     self.start_response = None
    62                     self.start_response = None
    68                     self.headers = []
    63                     self.headers = []
    69                 try:
    64                 try: