aboutsummaryrefslogtreecommitdiff
path: root/core
diff options
context:
space:
mode:
authorJarno Elonen <elonen@iki.fi>2015-05-03 01:02:02 +0300
committerJarno Elonen <elonen@iki.fi>2015-05-03 01:02:02 +0300
commit0a25aeb451d39b61540c1a521d0bed4a1fb4da99 (patch)
tree867952a6207af73f732ebb68c08c90de9a6f0044 /core
parent5a6b61c1d367ea83623b8bdef555ca27a268f4b8 (diff)
downloadnanohttpd-0a25aeb451d39b61540c1a521d0bed4a1fb4da99.tar.gz
Merged rnentjes/nanohttpd, with added preservation of remote-ip between header clears
Diffstat (limited to 'core')
-rw-r--r--core/src/main/java/fi/iki/elonen/NanoHTTPD.java14
1 files changed, 10 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 11548f1..ee4ac88 100644
--- a/core/src/main/java/fi/iki/elonen/NanoHTTPD.java
+++ b/core/src/main/java/fi/iki/elonen/NanoHTTPD.java
@@ -840,6 +840,7 @@ public abstract class NanoHTTPD {
private Map<String, String> headers;
private CookieHandler cookies;
private String queryParameterString;
+ private String remoteIp;
public HTTPSession(TempFileManager tempFileManager, InputStream inputStream, OutputStream outputStream) {
this.tempFileManager = tempFileManager;
@@ -851,11 +852,8 @@ public abstract class NanoHTTPD {
this.tempFileManager = tempFileManager;
this.inputStream = new PushbackInputStream(inputStream, BUFSIZE);
this.outputStream = outputStream;
- String remoteIp = inetAddress.isLoopbackAddress() || inetAddress.isAnyLocalAddress() ? "127.0.0.1" : inetAddress.getHostAddress().toString();
+ remoteIp = inetAddress.isLoopbackAddress() || inetAddress.isAnyLocalAddress() ? "127.0.0.1" : inetAddress.getHostAddress().toString();
headers = new HashMap<String, String>();
-
- headers.put("remote-addr", remoteIp);
- headers.put("http-client-ip", remoteIp);
}
@Override
@@ -899,8 +897,16 @@ public abstract class NanoHTTPD {
parms = new HashMap<String, String>();
if(null == headers) {
headers = new HashMap<String, String>();
+ } else {
+ headers.clear();
}
+ if (null != remoteIp) {
+ headers.put("remote-addr", remoteIp);
+ headers.put("http-client-ip", remoteIp);
+ }
+
+
// Create a BufferedReader for parsing the header.
BufferedReader hin = new BufferedReader(new InputStreamReader(new ByteArrayInputStream(buf, 0, rlen)));