equal
deleted
inserted
replaced
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: |