start_response not start_request

This commit is contained in:
donovan
2008-04-18 18:30:13 -07:00
parent ca4c1d0290
commit 7a53e5c9f8

View File

@@ -137,7 +137,7 @@ class HttpProtocol(BaseHTTPServer.BaseHTTPRequestHandler):
towrite.append(data) towrite.append(data)
_write(''.join(towrite)) _write(''.join(towrite))
def start_request(status, response_headers, exc_info=None): def start_response(status, response_headers, exc_info=None):
if exc_info: if exc_info:
try: try:
if headers_sent: if headers_sent:
@@ -146,19 +146,17 @@ class HttpProtocol(BaseHTTPServer.BaseHTTPRequestHandler):
finally: finally:
# Avoid dangling circular ref # Avoid dangling circular ref
exc_info = None exc_info = None
elif headers_set:
raise AssertionError("Headers already set!")
headers_set[:] = [status, response_headers] headers_set[:] = [status, response_headers]
return write return write
try: try:
result = self.server.app(self.environ, start_request) result = self.server.app(self.environ, start_response)
except Exception, e: except Exception, e:
exc = traceback.format_exc() exc = traceback.format_exc()
print exc print exc
if not headers_set: if not headers_set:
start_request("500 Internal Server Error", [('Content-type', 'text/plain')]) start_response("500 Internal Server Error", [('Content-type', 'text/plain')])
write(exc) write(exc)
return return
@@ -184,7 +182,7 @@ class HttpProtocol(BaseHTTPServer.BaseHTTPRequestHandler):
exc = traceback.format_exc() exc = traceback.format_exc()
print exc print exc
if not headers_set: if not headers_set:
start_request("500 Internal Server Error", [('Content-type', 'text/plain')]) start_response("500 Internal Server Error", [('Content-type', 'text/plain')])
write(exc) write(exc)
return return