diff options
Diffstat (limited to 'webserver/src/main/java/fi/iki/elonen/SimpleWebServer.java')
-rw-r--r-- | webserver/src/main/java/fi/iki/elonen/SimpleWebServer.java | 15 |
1 files changed, 7 insertions, 8 deletions
diff --git a/webserver/src/main/java/fi/iki/elonen/SimpleWebServer.java b/webserver/src/main/java/fi/iki/elonen/SimpleWebServer.java index cd2e9bd..29ab5ce 100644 --- a/webserver/src/main/java/fi/iki/elonen/SimpleWebServer.java +++ b/webserver/src/main/java/fi/iki/elonen/SimpleWebServer.java @@ -386,13 +386,6 @@ public class SimpleWebServer extends NanoHTTPD { return msg.toString(); } - @Override - public Response newFixedLengthResponse(IStatus status, String mimeType, String message) { - Response response = super.newFixedLengthResponse(status, mimeType, message); - response.addHeader("Accept-Ranges", "bytes"); - return response; - } - private Response respond(Map<String, String> headers, IHTTPSession session, String uri) { // Remove URL arguments uri = uri.trim().replace(File.separatorChar, '/'); @@ -422,6 +415,7 @@ public class SimpleWebServer extends NanoHTTPD { uri += "/"; Response res = newFixedLengthResponse(Response.Status.REDIRECT, NanoHTTPD.MIME_HTML, "<html><body>Redirected: <a href=\"" + uri + "\">" + uri + "</a></body></html>"); + res.addHeader("Accept-Ranges", "bytes"); res.addHeader("Location", uri); return res; } @@ -433,7 +427,8 @@ public class SimpleWebServer extends NanoHTTPD { if (indexFile == null) { if (f.canRead()) { // No index file, list the directory if it is readable - return newFixedLengthResponse(Response.Status.OK, NanoHTTPD.MIME_HTML, listDirectory(uri, f)); + Response res = newFixedLengthResponse(Response.Status.OK, NanoHTTPD.MIME_HTML, listDirectory(uri, f)); + res.addHeader("Accept-Ranges", "bytes"); } else { return getForbiddenResponse("No directory listing."); } @@ -536,6 +531,7 @@ public class SimpleWebServer extends NanoHTTPD { // would return range from file // respond with not-modified res = newFixedLengthResponse(Response.Status.NOT_MODIFIED, mime, ""); + res.addHeader("Accept-Ranges", "bytes"); res.addHeader("ETag", etag); } else { if (endAt < 0) { @@ -562,12 +558,14 @@ public class SimpleWebServer extends NanoHTTPD { // 4xx responses are not trumped by if-none-match res = newFixedLengthResponse(Response.Status.RANGE_NOT_SATISFIABLE, NanoHTTPD.MIME_PLAINTEXT, ""); res.addHeader("Content-Range", "bytes */" + fileLen); + res.addHeader("Accept-Ranges", "bytes"); res.addHeader("ETag", etag); } else if (range == null && headerIfNoneMatchPresentAndMatching) { // full-file-fetch request // would return entire file // respond with not-modified res = newFixedLengthResponse(Response.Status.NOT_MODIFIED, mime, ""); + res.addHeader("Accept-Ranges", "bytes"); res.addHeader("ETag", etag); } else if (!headerIfRangeMissingOrMatching && headerIfNoneMatchPresentAndMatching) { // range request that doesn't match current etag @@ -575,6 +573,7 @@ public class SimpleWebServer extends NanoHTTPD { // respond with not-modified res = newFixedLengthResponse(Response.Status.NOT_MODIFIED, mime, ""); + res.addHeader("Accept-Ranges", "bytes"); res.addHeader("ETag", etag); } else { // supply the file |