aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--core/src/main/java/fi/iki/elonen/NanoHTTPD.java26
-rw-r--r--websocket/src/main/java/fi/iki/elonen/NanoWebSocketServer.java2
2 files changed, 16 insertions, 12 deletions
diff --git a/core/src/main/java/fi/iki/elonen/NanoHTTPD.java b/core/src/main/java/fi/iki/elonen/NanoHTTPD.java
index bd8f15e..e1be81b 100644
--- a/core/src/main/java/fi/iki/elonen/NanoHTTPD.java
+++ b/core/src/main/java/fi/iki/elonen/NanoHTTPD.java
@@ -1042,22 +1042,16 @@ public abstract class NanoHTTPD {
* Create a response with known length.
*/
public static Response NewFixedLengthResponse(IStatus status, String mimeType, InputStream data, int totalBytes) {
- Response r = new Response(status, mimeType, data);
- r.contentLength = totalBytes;
- r.chunkedTransfer = false;
- return r;
+ return new Response(status, mimeType, data, totalBytes);
}
/**
* Create a response with unknown length (using HTTP 1.1 chunking).
*/
public static Response NewChunkedResponse(IStatus status, String mimeType, InputStream data) {
- return new Response(status, mimeType, data);
+ return new Response(status, mimeType, data, -1);
}
- /**
- * Deprecated, use NewFixedLengthResponse or NewChunkedResponse instead.
- */
@Deprecated
public Response(IStatus status, String mimeType, InputStream data) {
this.status = status;
@@ -1067,9 +1061,20 @@ public abstract class NanoHTTPD {
this.chunkedTransfer = true;
}
+ /**
+ * Creates a fixed length response if totalBytes>=0, otherwise chunked.
+ */
+ protected Response(IStatus status, String mimeType, InputStream data, int totalBytes) {
+ this.status = status;
+ this.mimeType = mimeType;
+ this.data = data;
+ this.contentLength = totalBytes;
+ this.chunkedTransfer = totalBytes < 0;
+ }
/**
- * Convenience method that makes an InputStream out of a given UTF-8 string.
+ * Convenience method that makes an InputStream out of a given UTF-8
+ * string.
*/
public Response(IStatus status, String mimeType, String txt) {
this.status = status;
@@ -1080,8 +1085,7 @@ public abstract class NanoHTTPD {
this.contentLength = (this.data != null) ? this.data.available() : 0;
} catch (java.io.UnsupportedEncodingException uee) {
NanoHTTPD.LOG.log(Level.SEVERE, "encoding problem", uee);
- }
- catch (java.io.IOException ioe) {
+ } catch (java.io.IOException ioe) {
NanoHTTPD.LOG.log(Level.SEVERE, "ByteArrayInputStream.available() failed?!?", ioe);
}
}
diff --git a/websocket/src/main/java/fi/iki/elonen/NanoWebSocketServer.java b/websocket/src/main/java/fi/iki/elonen/NanoWebSocketServer.java
index 5cac407..a37d194 100644
--- a/websocket/src/main/java/fi/iki/elonen/NanoWebSocketServer.java
+++ b/websocket/src/main/java/fi/iki/elonen/NanoWebSocketServer.java
@@ -76,7 +76,7 @@ public abstract class NanoWebSocketServer extends NanoHTTPD {
private final NanoHTTPD.IHTTPSession handshakeRequest;
- private final NanoHTTPD.Response handshakeResponse = new NanoHTTPD.Response(NanoHTTPD.Response.Status.SWITCH_PROTOCOL, null, (InputStream) null) {
+ private final NanoHTTPD.Response handshakeResponse = new NanoHTTPD.Response(NanoHTTPD.Response.Status.SWITCH_PROTOCOL, null, (InputStream) null, 0) {
@Override
protected void send(OutputStream out) {