From e9e1890b148443de9e79b49c7f013498e5790610 Mon Sep 17 00:00:00 2001 From: zzz Date: Fri, 3 Dec 2010 17:01:51 +0000 Subject: [PATCH] * I2PTunnel: - Extend header timeouts for HTTP and IRC server tunnels --- .../java/src/net/i2p/i2ptunnel/I2PTunnelHTTPServer.java | 6 ++++-- .../java/src/net/i2p/i2ptunnel/I2PTunnelIRCServer.java | 6 ++++-- 2 files changed, 8 insertions(+), 4 deletions(-) diff --git a/apps/i2ptunnel/java/src/net/i2p/i2ptunnel/I2PTunnelHTTPServer.java b/apps/i2ptunnel/java/src/net/i2p/i2ptunnel/I2PTunnelHTTPServer.java index e2d81be40..1aa6a8347 100644 --- a/apps/i2ptunnel/java/src/net/i2p/i2ptunnel/I2PTunnelHTTPServer.java +++ b/apps/i2ptunnel/java/src/net/i2p/i2ptunnel/I2PTunnelHTTPServer.java @@ -36,6 +36,7 @@ public class I2PTunnelHTTPServer extends I2PTunnelServer { private static final String HASH_HEADER = "X-I2P-DestHash"; private static final String DEST64_HEADER = "X-I2P-DestB64"; private static final String DEST32_HEADER = "X-I2P-DestB32"; + private static final long HEADER_TIMEOUT = 60*1000; private final static byte[] ERR_UNAVAILABLE = ("HTTP/1.1 503 Service Unavailable\r\n"+ @@ -82,8 +83,9 @@ public class I2PTunnelHTTPServer extends I2PTunnelServer { //local is fast, so synchronously. Does not need that many //threads. try { - // give them 5 seconds to send in the HTTP request - socket.setReadTimeout(5*1000); + // The headers _should_ be in the first packet, but + // may not be, depending on the client-side options + socket.setReadTimeout(HEADER_TIMEOUT); InputStream in = socket.getInputStream(); diff --git a/apps/i2ptunnel/java/src/net/i2p/i2ptunnel/I2PTunnelIRCServer.java b/apps/i2ptunnel/java/src/net/i2p/i2ptunnel/I2PTunnelIRCServer.java index ed1367e11..4537389bd 100644 --- a/apps/i2ptunnel/java/src/net/i2p/i2ptunnel/I2PTunnelIRCServer.java +++ b/apps/i2ptunnel/java/src/net/i2p/i2ptunnel/I2PTunnelIRCServer.java @@ -61,6 +61,7 @@ public class I2PTunnelIRCServer extends I2PTunnelServer implements Runnable { public static final String PROP_WEBIRC_SPOOF_IP_DEFAULT="127.0.0.1"; public static final String PROP_HOSTNAME="ircserver.fakeHostname"; public static final String PROP_HOSTNAME_DEFAULT="%f.b32.i2p"; + private static final long HEADER_TIMEOUT = 60*1000; /** * @throws IllegalArgumentException if the I2PTunnel does not contain @@ -105,8 +106,9 @@ public class I2PTunnelIRCServer extends I2PTunnelServer implements Runnable { try { String modifiedRegistration; if(!this.method.equals("webirc")) { - // give them 15 seconds to send in the request - socket.setReadTimeout(15*1000); + // The headers _should_ be in the first packet, but + // may not be, depending on the client-side options + socket.setReadTimeout(HEADER_TIMEOUT); InputStream in = socket.getInputStream(); modifiedRegistration = filterRegistration(in, cloakDest(socket.getPeerDestination())); socket.setReadTimeout(readTimeout);