diff options
author | Jarno Elonen <elonen@iki.fi> | 2015-05-03 01:02:02 +0300 |
---|---|---|
committer | Jarno Elonen <elonen@iki.fi> | 2015-05-03 01:02:02 +0300 |
commit | 0a25aeb451d39b61540c1a521d0bed4a1fb4da99 (patch) | |
tree | 867952a6207af73f732ebb68c08c90de9a6f0044 /core | |
parent | 5a6b61c1d367ea83623b8bdef555ca27a268f4b8 (diff) | |
download | nanohttpd-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.java | 14 |
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))); |