diff --git a/apps/i2ptunnel/java/src/net/i2p/i2ptunnel/I2PTunnelHTTPClient.java b/apps/i2ptunnel/java/src/net/i2p/i2ptunnel/I2PTunnelHTTPClient.java index d84bc9f98..458d0ccf7 100644 --- a/apps/i2ptunnel/java/src/net/i2p/i2ptunnel/I2PTunnelHTTPClient.java +++ b/apps/i2ptunnel/java/src/net/i2p/i2ptunnel/I2PTunnelHTTPClient.java @@ -122,6 +122,15 @@ public class I2PTunnelHTTPClient extends I2PTunnelClientBase implements Runnable "The I2P HTTP Proxy supports http:// requests ONLY. Other protocols such as https:// and ftp:// are not allowed.
") .getBytes(); + private final static byte[] ERR_LOCALHOST = + ("HTTP/1.1 403 Access Denied\r\n"+ + "Content-Type: text/html; charset=iso-8859-1\r\n"+ + "Cache-control: no-cache\r\n"+ + "\r\n"+ + "

I2P ERROR: REQUEST DENIED

"+ + "Your browser is misconfigured. Do not use the proxy to access the router console or other localhost destinations.
") + .getBytes(); + /** used to assign unique IDs to the threads / clients. no logic or functionality */ private static volatile long __clientId = 0; @@ -394,6 +403,16 @@ public class I2PTunnelHTTPClient extends I2PTunnelClientBase implements Runnable usingWWWProxy = true; if (_log.shouldLog(Log.DEBUG)) _log.debug(getPrefix(requestId) + "Host doesnt end with .i2p and it contains a period [" + host + "]: wwwProxy!"); + } else if (host.toLowerCase().startsWith("localhost:")) { + if (out != null) { + out.write(ERR_LOCALHOST); + out.write("

Generated on: ".getBytes()); + out.write(new Date().toString().getBytes()); + out.write("\n".getBytes()); + out.flush(); + } + s.close(); + return; } else { request = request.substring(pos + 1); pos = request.indexOf("/"); diff --git a/core/java/src/net/i2p/util/EepGet.java b/core/java/src/net/i2p/util/EepGet.java index b00decfc1..ee0ea575d 100644 --- a/core/java/src/net/i2p/util/EepGet.java +++ b/core/java/src/net/i2p/util/EepGet.java @@ -119,7 +119,7 @@ public class EepGet { _transferFailed = false; _headersRead = false; _aborted = false; - _fetchHeaderTimeout = 30*1000; + _fetchHeaderTimeout = 45*1000; _listeners = new ArrayList(1); _etag = etag; _lastModified = lastModified; diff --git a/history.txt b/history.txt index c7b81c4b9..371f4e4ef 100644 --- a/history.txt +++ b/history.txt @@ -1,4 +1,9 @@ -$Id: history.txt,v 1.585 2007-09-08 15:21:16 zzz Exp $ +$Id: history.txt,v 1.586 2007-09-09 12:38:54 zzz Exp $ + +2007-09-14 zzz + * eepget: Increase header timeout to 45s + * HTTP proxy: Return a better error message for localhost requests + * tunnels: Fix PooledTunnelCreatorConfig memory leak 2007-09-09 zzz * eepget: Add support for Last-Modified and If-Modified-Since diff --git a/router/java/src/net/i2p/router/RouterVersion.java b/router/java/src/net/i2p/router/RouterVersion.java index 0a539fade..4e005bb44 100644 --- a/router/java/src/net/i2p/router/RouterVersion.java +++ b/router/java/src/net/i2p/router/RouterVersion.java @@ -15,9 +15,9 @@ import net.i2p.CoreVersion; * */ public class RouterVersion { - public final static String ID = "$Revision: 1.521 $ $Date: 2007-09-08 15:21:15 $"; + public final static String ID = "$Revision: 1.522 $ $Date: 2007-09-09 12:38:53 $"; public final static String VERSION = "0.6.1.29"; - public final static long BUILD = 3; + public final static long BUILD = 4; public static void main(String args[]) { System.out.println("I2P Router version: " + VERSION + "-" + BUILD); System.out.println("Router ID: " + RouterVersion.ID); diff --git a/router/java/src/net/i2p/router/tunnel/pool/PooledTunnelCreatorConfig.java b/router/java/src/net/i2p/router/tunnel/pool/PooledTunnelCreatorConfig.java index b8c3df1d0..c3ae88e47 100644 --- a/router/java/src/net/i2p/router/tunnel/pool/PooledTunnelCreatorConfig.java +++ b/router/java/src/net/i2p/router/tunnel/pool/PooledTunnelCreatorConfig.java @@ -14,8 +14,8 @@ import net.i2p.util.Log; public class PooledTunnelCreatorConfig extends TunnelCreatorConfig { private TunnelPool _pool; private TestJob _testJob; - private Job _expireJob; - private TunnelInfo _pairedTunnel; + // private Job _expireJob; + // private TunnelInfo _pairedTunnel; private boolean _live; /** Creates a new instance of PooledTunnelCreatorConfig */ @@ -68,8 +68,9 @@ public class PooledTunnelCreatorConfig extends TunnelCreatorConfig { public TunnelPool getTunnelPool() { return _pool; } public void setTestJob(TestJob job) { _testJob = job; } - public void setExpireJob(Job job) { _expireJob = job; } + public void setExpireJob(Job job) { /* _expireJob = job; */ } - public void setPairedTunnel(TunnelInfo tunnel) { _pairedTunnel = tunnel; } - public TunnelInfo getPairedTunnel() { return _pairedTunnel; } + // Fix memory leaks caused by references if you need to use pairedTunnel + public void setPairedTunnel(TunnelInfo tunnel) { /* _pairedTunnel = tunnel; */} + // public TunnelInfo getPairedTunnel() { return _pairedTunnel; } }