equal
deleted
inserted
replaced
127 """ |
127 """ |
128 parts = fname.split('/') |
128 parts = fname.split('/') |
129 for part in parts: |
129 for part in parts: |
130 if (part in ('', os.curdir, os.pardir) or |
130 if (part in ('', os.curdir, os.pardir) or |
131 os.sep in part or os.altsep is not None and os.altsep in part): |
131 os.sep in part or os.altsep is not None and os.altsep in part): |
132 return "" |
132 return |
133 fpath = os.path.join(*parts) |
133 fpath = os.path.join(*parts) |
134 if isinstance(directory, str): |
134 if isinstance(directory, str): |
135 directory = [directory] |
135 directory = [directory] |
136 for d in directory: |
136 for d in directory: |
137 path = os.path.join(d, fpath) |
137 path = os.path.join(d, fpath) |
142 ct = mimetypes.guess_type(path)[0] or "text/plain" |
142 ct = mimetypes.guess_type(path)[0] or "text/plain" |
143 fp = open(path, 'rb') |
143 fp = open(path, 'rb') |
144 data = fp.read() |
144 data = fp.read() |
145 fp.close() |
145 fp.close() |
146 req.respond(HTTP_OK, ct, body=data) |
146 req.respond(HTTP_OK, ct, body=data) |
147 return "" |
|
148 except TypeError: |
147 except TypeError: |
149 raise ErrorResponse(HTTP_SERVER_ERROR, 'illegal filename') |
148 raise ErrorResponse(HTTP_SERVER_ERROR, 'illegal filename') |
150 except OSError, err: |
149 except OSError, err: |
151 if err.errno == errno.ENOENT: |
150 if err.errno == errno.ENOENT: |
152 raise ErrorResponse(HTTP_NOT_FOUND) |
151 raise ErrorResponse(HTTP_NOT_FOUND) |