forked from I2P_Developers/i2p.i2p
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
This commit is contained in:
@@ -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.<BR>")
|
"The I2P HTTP Proxy supports http:// requests ONLY. Other protocols such as https:// and ftp:// are not allowed.<BR>")
|
||||||
.getBytes();
|
.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"+
|
||||||
|
"<html><body><H1>I2P ERROR: REQUEST DENIED</H1>"+
|
||||||
|
"Your browser is misconfigured. Do not use the proxy to access the router console or other localhost destinations.<BR>")
|
||||||
|
.getBytes();
|
||||||
|
|
||||||
/** used to assign unique IDs to the threads / clients. no logic or functionality */
|
/** used to assign unique IDs to the threads / clients. no logic or functionality */
|
||||||
private static volatile long __clientId = 0;
|
private static volatile long __clientId = 0;
|
||||||
|
|
||||||
@@ -394,6 +403,16 @@ public class I2PTunnelHTTPClient extends I2PTunnelClientBase implements Runnable
|
|||||||
usingWWWProxy = true;
|
usingWWWProxy = true;
|
||||||
if (_log.shouldLog(Log.DEBUG))
|
if (_log.shouldLog(Log.DEBUG))
|
||||||
_log.debug(getPrefix(requestId) + "Host doesnt end with .i2p and it contains a period [" + host + "]: wwwProxy!");
|
_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("<p /><i>Generated on: ".getBytes());
|
||||||
|
out.write(new Date().toString().getBytes());
|
||||||
|
out.write("</i></body></html>\n".getBytes());
|
||||||
|
out.flush();
|
||||||
|
}
|
||||||
|
s.close();
|
||||||
|
return;
|
||||||
} else {
|
} else {
|
||||||
request = request.substring(pos + 1);
|
request = request.substring(pos + 1);
|
||||||
pos = request.indexOf("/");
|
pos = request.indexOf("/");
|
||||||
|
@@ -119,7 +119,7 @@ public class EepGet {
|
|||||||
_transferFailed = false;
|
_transferFailed = false;
|
||||||
_headersRead = false;
|
_headersRead = false;
|
||||||
_aborted = false;
|
_aborted = false;
|
||||||
_fetchHeaderTimeout = 30*1000;
|
_fetchHeaderTimeout = 45*1000;
|
||||||
_listeners = new ArrayList(1);
|
_listeners = new ArrayList(1);
|
||||||
_etag = etag;
|
_etag = etag;
|
||||||
_lastModified = lastModified;
|
_lastModified = lastModified;
|
||||||
|
@@ -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
|
2007-09-09 zzz
|
||||||
* eepget: Add support for Last-Modified and If-Modified-Since
|
* eepget: Add support for Last-Modified and If-Modified-Since
|
||||||
|
@@ -15,9 +15,9 @@ import net.i2p.CoreVersion;
|
|||||||
*
|
*
|
||||||
*/
|
*/
|
||||||
public class RouterVersion {
|
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 String VERSION = "0.6.1.29";
|
||||||
public final static long BUILD = 3;
|
public final static long BUILD = 4;
|
||||||
public static void main(String args[]) {
|
public static void main(String args[]) {
|
||||||
System.out.println("I2P Router version: " + VERSION + "-" + BUILD);
|
System.out.println("I2P Router version: " + VERSION + "-" + BUILD);
|
||||||
System.out.println("Router ID: " + RouterVersion.ID);
|
System.out.println("Router ID: " + RouterVersion.ID);
|
||||||
|
@@ -14,8 +14,8 @@ import net.i2p.util.Log;
|
|||||||
public class PooledTunnelCreatorConfig extends TunnelCreatorConfig {
|
public class PooledTunnelCreatorConfig extends TunnelCreatorConfig {
|
||||||
private TunnelPool _pool;
|
private TunnelPool _pool;
|
||||||
private TestJob _testJob;
|
private TestJob _testJob;
|
||||||
private Job _expireJob;
|
// private Job _expireJob;
|
||||||
private TunnelInfo _pairedTunnel;
|
// private TunnelInfo _pairedTunnel;
|
||||||
private boolean _live;
|
private boolean _live;
|
||||||
|
|
||||||
/** Creates a new instance of PooledTunnelCreatorConfig */
|
/** Creates a new instance of PooledTunnelCreatorConfig */
|
||||||
@@ -68,8 +68,9 @@ public class PooledTunnelCreatorConfig extends TunnelCreatorConfig {
|
|||||||
public TunnelPool getTunnelPool() { return _pool; }
|
public TunnelPool getTunnelPool() { return _pool; }
|
||||||
|
|
||||||
public void setTestJob(TestJob job) { _testJob = job; }
|
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; }
|
// Fix memory leaks caused by references if you need to use pairedTunnel
|
||||||
public TunnelInfo getPairedTunnel() { return _pairedTunnel; }
|
public void setPairedTunnel(TunnelInfo tunnel) { /* _pairedTunnel = tunnel; */}
|
||||||
|
// public TunnelInfo getPairedTunnel() { return _pairedTunnel; }
|
||||||
}
|
}
|
||||||
|
Reference in New Issue
Block a user