summaryrefslogtreecommitdiff
path: root/fs/expose/wsgi/wsgi.py
diff options
context:
space:
mode:
Diffstat (limited to 'fs/expose/wsgi/wsgi.py')
-rw-r--r--fs/expose/wsgi/wsgi.py25
1 files changed, 13 insertions, 12 deletions
diff --git a/fs/expose/wsgi/wsgi.py b/fs/expose/wsgi/wsgi.py
index 2a47e00..97e2553 100644
--- a/fs/expose/wsgi/wsgi.py
+++ b/fs/expose/wsgi/wsgi.py
@@ -62,22 +62,24 @@ class WSGIServer(object):
serving_file.close()
return self.serve_500(request, str(e))
- mime_type = mimetypes.guess_type(basename(path))
+ mime_type = mimetypes.guess_type(basename(path))[0] or b'text/plain'
file_size = self.serve_fs.getsize(path)
- headers = [('Content-Type', mime_type),
- ('Content-Length', str(file_size))]
+ headers = [(b'Content-Type', bytes(mime_type)),
+ (b'Content-Length', bytes(file_size))]
def gen_file():
+ chunk_size = self.chunk_size
+ read = serving_file.read
try:
- while True:
- data = serving_file.read(self.chunk_size)
+ while 1:
+ data = read(chunk_size)
if not data:
break
yield data
finally:
serving_file.close()
- request.start_response('200 OK',
+ request.start_response(b'200 OK',
headers)
return gen_file()
@@ -121,22 +123,21 @@ class WSGIServer(object):
# Render the mako template
html = self.dir_template.render(**dict(fs=self.serve_fs,
path=path,
- dirlist=entries))
-
- request.start_response('200 OK', [('Content-Type', 'text/html'),
- ('Content-Length', '%i' % len(html))])
+ dirlist=entries)).encode('utf-8')
+ request.start_response(b'200 OK', [(b'Content-Type', b'text/html'),
+ (b'Content-Length', b'%i' % len(html))])
return [html]
def serve_404(self, request, msg='Not found'):
"""Serves a Not found page"""
- request.start_response('404 NOT FOUND', [('Content-Type', 'text/html')])
+ request.start_response(b'404 NOT FOUND', [(b'Content-Type', b'text/html')])
return [msg]
def serve_500(self, request, msg='Unable to complete request'):
"""Serves an internal server error page"""
- request.start_response('500 INTERNAL SERVER ERROR', [('Content-Type', 'text/html')])
+ request.start_response(b'500 INTERNAL SERVER ERROR', [(b'Content-Type', b'text/html')])
return [msg]