Work on python 2.3
This commit is contained in:
@@ -158,7 +158,7 @@ class HttpProtocol(BaseHTTPServer.BaseHTTPRequestHandler):
|
|||||||
try:
|
try:
|
||||||
result = self.server.app(self.environ, start_response)
|
result = self.server.app(self.environ, start_response)
|
||||||
except Exception, e:
|
except Exception, e:
|
||||||
exc = traceback.format_exc()
|
exc = ''.join(traceback.format_exception(*sys.exc_info()))
|
||||||
print exc
|
print exc
|
||||||
if not headers_set:
|
if not headers_set:
|
||||||
start_response("500 Internal Server Error", [('Content-type', 'text/plain')])
|
start_response("500 Internal Server Error", [('Content-type', 'text/plain')])
|
||||||
@@ -170,38 +170,41 @@ class HttpProtocol(BaseHTTPServer.BaseHTTPRequestHandler):
|
|||||||
except (TypeError, AttributeError, NotImplementedError):
|
except (TypeError, AttributeError, NotImplementedError):
|
||||||
if self.protocol_version == 'HTTP/1.1':
|
if self.protocol_version == 'HTTP/1.1':
|
||||||
use_chunked = True
|
use_chunked = True
|
||||||
|
|
||||||
try:
|
try:
|
||||||
towrite = []
|
|
||||||
try:
|
try:
|
||||||
for data in result:
|
towrite = []
|
||||||
if data:
|
try:
|
||||||
towrite.append(data)
|
for data in result:
|
||||||
if reduce(
|
if data:
|
||||||
lambda x, y: x + y,
|
towrite.append(data)
|
||||||
map(
|
if reduce(
|
||||||
lambda x: len(x), towrite)) > 4096:
|
lambda x, y: x + y,
|
||||||
write(''.join(towrite))
|
map(
|
||||||
del towrite[:]
|
lambda x: len(x), towrite)) > 4096:
|
||||||
except Exception, e:
|
write(''.join(towrite))
|
||||||
exc = traceback.format_exc()
|
del towrite[:]
|
||||||
print exc
|
except Exception, e:
|
||||||
if not headers_set:
|
exc = traceback.format_exc()
|
||||||
start_response("500 Internal Server Error", [('Content-type', 'text/plain')])
|
print exc
|
||||||
write(exc)
|
if not headers_set:
|
||||||
return
|
start_response("500 Internal Server Error", [('Content-type', 'text/plain')])
|
||||||
|
write(exc)
|
||||||
|
return
|
||||||
|
|
||||||
if towrite:
|
if towrite:
|
||||||
write(''.join(towrite))
|
write(''.join(towrite))
|
||||||
if use_chunked:
|
if use_chunked:
|
||||||
wfile.write('0\r\n\r\n')
|
wfile.write('0\r\n\r\n')
|
||||||
if not headers_sent:
|
if not headers_sent:
|
||||||
write('')
|
write('')
|
||||||
except Exception, e:
|
except Exception, e:
|
||||||
traceback.print_exc()
|
traceback.print_exc()
|
||||||
finally:
|
finally:
|
||||||
if hasattr(result, 'close'):
|
if hasattr(result, 'close'):
|
||||||
result.close()
|
result.close()
|
||||||
|
if self.environ['eventlet.input'].position < self.environ.get('CONTENT_LENGTH', 0):
|
||||||
|
## Read and discard body
|
||||||
|
self.environ['eventlet.input'].read()
|
||||||
|
|
||||||
def get_environ(self):
|
def get_environ(self):
|
||||||
env = self.server.get_environ()
|
env = self.server.get_environ()
|
||||||
@@ -249,7 +252,7 @@ class HttpProtocol(BaseHTTPServer.BaseHTTPRequestHandler):
|
|||||||
else:
|
else:
|
||||||
wfile = None
|
wfile = None
|
||||||
wfile_line = None
|
wfile_line = None
|
||||||
env['wsgi.input'] = Input(
|
env['wsgi.input'] = env['eventlet.input'] = Input(
|
||||||
self.rfile, length, wfile=wfile, wfile_line=wfile_line)
|
self.rfile, length, wfile=wfile, wfile_line=wfile_line)
|
||||||
|
|
||||||
return env
|
return env
|
||||||
|
Reference in New Issue
Block a user