Index: net/tools/testserver/testserver.py |
=================================================================== |
--- net/tools/testserver/testserver.py (revision 66374) |
+++ net/tools/testserver/testserver.py (working copy) |
@@ -221,7 +221,8 @@ |
'gif': 'image/gif', |
'jpeg' : 'image/jpeg', |
'jpg' : 'image/jpeg', |
- 'xml' : 'text/xml' |
+ 'xml' : 'text/xml', |
+ 'pdf' : 'application/pdf' |
} |
self._default_mime_type = 'text/html' |
@@ -698,9 +699,27 @@ |
else: |
# Could be more generic once we support mime-type sniffing, but for |
# now we need to set it explicitly. |
- self.send_response(200) |
+ |
+ range = self.headers.get('Range') |
+ if range and range.startswith('bytes='): |
+ # Note this doesn't handle all valid byte range values (i.e. open ended |
+ # ones), just enough for what we needed so far. |
+ range = range[6:].split('-') |
+ start = int(range[0]) |
+ end = int(range[1]) |
+ |
+ self.send_response(206) |
+ content_range = 'bytes ' + str(start) + '-' + str(end) + '/' + \ |
+ str(len(data)) |
+ self.send_header('Content-Range', content_range) |
+ data = data[start: end + 1] |
+ else: |
+ self.send_response(200) |
+ |
self.send_header('Content-type', self.GetMIMETypeFromName(file_path)) |
+ self.send_header('Accept-Ranges', 'bytes') |
self.send_header('Content-Length', len(data)) |
+ self.send_header('ETag', '\'' + file_path + '\'') |
self.end_headers() |
self.wfile.write(data) |