diff options
Diffstat (limited to 'core/src/main/java/fi/iki/elonen/NanoHTTPD.java')
-rw-r--r-- | core/src/main/java/fi/iki/elonen/NanoHTTPD.java | 12 |
1 files changed, 11 insertions, 1 deletions
diff --git a/core/src/main/java/fi/iki/elonen/NanoHTTPD.java b/core/src/main/java/fi/iki/elonen/NanoHTTPD.java index d654cdb..38e023d 100644 --- a/core/src/main/java/fi/iki/elonen/NanoHTTPD.java +++ b/core/src/main/java/fi/iki/elonen/NanoHTTPD.java @@ -637,7 +637,7 @@ public abstract class NanoHTTPD { } } - pw.print("Connection: keep-alive\r\n"); + sendConnectionHeaderIfNotAlreadyPresent(pw, header); if (requestMethod != Method.HEAD && chunkedTransfer) { sendAsChunked(outputStream, pw); @@ -651,6 +651,16 @@ public abstract class NanoHTTPD { } } + protected void sendConnectionHeaderIfNotAlreadyPresent(PrintWriter pw, Map<String, String> header) { + boolean connectionAlreadySent = false; + for (String headerName : header.keySet()) { + connectionAlreadySent |= headerName.equalsIgnoreCase("connection"); + } + if (!connectionAlreadySent) { + pw.print("Connection: keep-alive\r\n"); + } + } + private void sendAsChunked(OutputStream outputStream, PrintWriter pw) throws IOException { pw.print("Transfer-Encoding: chunked\r\n"); pw.print("\r\n"); |