aboutsummaryrefslogtreecommitdiff
path: root/core/src
diff options
context:
space:
mode:
authorelonen <elonen@iki.fi>2015-05-03 09:34:40 +0300
committerelonen <elonen@iki.fi>2015-05-03 09:34:40 +0300
commitc4c41cc4b5690f41d07e9e75fa6151f1722ada1d (patch)
tree6a984bfaa347c64ad97adf62c1b6accf732ae369 /core/src
parent852da97068da511d18e6e03e724109742b446c81 (diff)
parent98d6d146214026ab242ce1de320bd7d203d7a5f3 (diff)
downloadnanohttpd-c4c41cc4b5690f41d07e9e75fa6151f1722ada1d.tar.gz
Merge pull request #130 from yext/master
Send amount of data set in content-length
Diffstat (limited to 'core/src')
-rw-r--r--core/src/main/java/fi/iki/elonen/NanoHTTPD.java17
1 files changed, 13 insertions, 4 deletions
diff --git a/core/src/main/java/fi/iki/elonen/NanoHTTPD.java b/core/src/main/java/fi/iki/elonen/NanoHTTPD.java
index 246a22b..f78557d 100644
--- a/core/src/main/java/fi/iki/elonen/NanoHTTPD.java
+++ b/core/src/main/java/fi/iki/elonen/NanoHTTPD.java
@@ -636,7 +636,7 @@ public abstract class NanoHTTPD {
sendAsChunked(outputStream, pw);
} else {
int pending = data != null ? data.available() : 0;
- sendContentLengthHeaderIfNotAlreadyPresent(pw, header, pending);
+ pending = sendContentLengthHeaderIfNotAlreadyPresent(pw, header, pending);
pw.print("\r\n");
pw.flush();
sendAsFixedLength(outputStream, pending);
@@ -648,10 +648,19 @@ public abstract class NanoHTTPD {
}
}
- protected void sendContentLengthHeaderIfNotAlreadyPresent(PrintWriter pw, Map<String, String> header, int size) {
- if (!headerAlreadySent(header, "content-length")) {
- pw.print("Content-Length: "+ size +"\r\n");
+ protected int sendContentLengthHeaderIfNotAlreadyPresent(PrintWriter pw, Map<String, String> header, int size) {
+ for (String headerName : header.keySet()) {
+ if (headerName.equalsIgnoreCase("content-length") {
+ try {
+ return Integer.parseInt(header.get(headerName));
+ } catch (NumberFormatException ex) {
+ return size;
+ }
+ }
}
+
+ pw.print("Content-Length: "+ size +"\r\n");
+ return size;
}
protected void sendConnectionHeaderIfNotAlreadyPresent(PrintWriter pw, Map<String, String> header) {