From c02711ccad799cb26a4a14b7db5308ee7a17f340 Mon Sep 17 00:00:00 2001 From: zzz <zzz@mail.i2p> Date: Fri, 23 Jan 2009 02:23:13 +0000 Subject: [PATCH] Fix socks so it uses existing tunnels rather than building a new one for every request. Now works with or without 'shared clients' enabled. --- .../java/src/net/i2p/i2ptunnel/socks/I2PSOCKSTunnel.java | 4 ++-- .../java/src/net/i2p/i2ptunnel/socks/SOCKSServer.java | 9 ++++++--- 2 files changed, 8 insertions(+), 5 deletions(-) diff --git a/apps/i2ptunnel/java/src/net/i2p/i2ptunnel/socks/I2PSOCKSTunnel.java b/apps/i2ptunnel/java/src/net/i2p/i2ptunnel/socks/I2PSOCKSTunnel.java index 9b216e13ae..627cd0616f 100644 --- a/apps/i2ptunnel/java/src/net/i2p/i2ptunnel/socks/I2PSOCKSTunnel.java +++ b/apps/i2ptunnel/java/src/net/i2p/i2ptunnel/socks/I2PSOCKSTunnel.java @@ -46,11 +46,11 @@ public class I2PSOCKSTunnel extends I2PTunnelClientBase { try { SOCKSServer serv = SOCKSServerFactory.createSOCKSServer(s); Socket clientSock = serv.getClientSocket(); - I2PSocket destSock = serv.getDestinationI2PSocket(); + I2PSocket destSock = serv.getDestinationI2PSocket(this); new I2PTunnelRunner(clientSock, destSock, sockLock, null, mySockets); } catch (SOCKSException e) { _log.error("Error from SOCKS connection: " + e.getMessage()); closeSocket(s); } } -} \ No newline at end of file +} diff --git a/apps/i2ptunnel/java/src/net/i2p/i2ptunnel/socks/SOCKSServer.java b/apps/i2ptunnel/java/src/net/i2p/i2ptunnel/socks/SOCKSServer.java index caf4d1ce3f..94602c0c03 100644 --- a/apps/i2ptunnel/java/src/net/i2p/i2ptunnel/socks/SOCKSServer.java +++ b/apps/i2ptunnel/java/src/net/i2p/i2ptunnel/socks/SOCKSServer.java @@ -59,7 +59,7 @@ public abstract class SOCKSServer { * * @return an I2PSocket connected with the destination */ - public I2PSocket getDestinationI2PSocket() throws SOCKSException { + public I2PSocket getDestinationI2PSocket(I2PSOCKSTunnel t) throws SOCKSException { setupServer(); if (connHostName == null) { @@ -79,8 +79,11 @@ public abstract class SOCKSServer { try { if (connHostName.toLowerCase().endsWith(".i2p")) { _log.debug("connecting to " + connHostName + "..."); - I2PSocketManager sm = I2PSocketManagerFactory.createManager(); - destSock = sm.connect(I2PTunnel.destFromName(connHostName), null); + // Let's not due a new Dest for every request, huh? + //I2PSocketManager sm = I2PSocketManagerFactory.createManager(); + //destSock = sm.connect(I2PTunnel.destFromName(connHostName), null); + // TODO get the streaming lib options in there + destSock = t.createI2PSocket(I2PTunnel.destFromName(connHostName)); confirmConnection(); _log.debug("connection confirmed - exchanging data..."); } else { -- GitLab