* Socks: Pass remote port through

* I2PTunnel: More javadoc warnings on default options
This commit is contained in:
zzz
2012-06-19 21:48:31 +00:00
parent 129b16d93d
commit e383477b01
6 changed files with 33 additions and 15 deletions

View File

@@ -209,8 +209,9 @@ public class I2PTunnel extends EventDispatcherImpl implements Logging {
} }
/** /**
* Generic options used for clients and servers * Generic options used for clients and servers.
* @return not a copy * NOT a copy, Do NOT modify for per-connection options, make a copy.
* @return NOT a copy, do NOT modify for per-connection options
*/ */
public Properties getClientOptions() { return _clientOptions; } public Properties getClientOptions() { return _clientOptions; }

View File

@@ -471,8 +471,9 @@ public abstract class I2PTunnelClientBase extends I2PTunnelTask implements Runna
} }
/** /**
* create the default options (using the default timeout, etc) * Create the default options (using the default timeout, etc).
* * Warning, this does not make a copy of I2PTunnel's client options,
* it modifies them directly.
*/ */
protected I2PSocketOptions getDefaultOptions() { protected I2PSocketOptions getDefaultOptions() {
Properties defaultOpts = getTunnel().getClientOptions(); Properties defaultOpts = getTunnel().getClientOptions();
@@ -483,8 +484,10 @@ public abstract class I2PTunnelClientBase extends I2PTunnelTask implements Runna
} }
/** /**
* create the default options (using the default timeout, etc) * Create the default options (using the default timeout, etc).
* * Warning, this does not make a copy of I2PTunnel's client options,
* it modifies them directly.
* Do not use overrides for per-socket options.
*/ */
protected I2PSocketOptions getDefaultOptions(Properties overrides) { protected I2PSocketOptions getDefaultOptions(Properties overrides) {
Properties defaultOpts = getTunnel().getClientOptions(); Properties defaultOpts = getTunnel().getClientOptions();

View File

@@ -132,8 +132,9 @@ public class I2PTunnelConnectClient extends I2PTunnelHTTPClientBase implements R
} }
/** /**
* create the default options (using the default timeout, etc) * Create the default options (using the default timeout, etc).
* * Warning, this does not make a copy of I2PTunnel's client options,
* it modifies them directly.
*/ */
@Override @Override
protected I2PSocketOptions getDefaultOptions() { protected I2PSocketOptions getDefaultOptions() {

View File

@@ -225,7 +225,9 @@ public class I2PTunnelHTTPClient extends I2PTunnelHTTPClientBase implements Runn
} }
/** /**
* create the default options (using the default timeout, etc) * Create the default options (using the default timeout, etc).
* Warning, this does not make a copy of I2PTunnel's client options,
* it modifies them directly.
* unused? * unused?
*/ */
@Override @Override
@@ -244,8 +246,10 @@ public class I2PTunnelHTTPClient extends I2PTunnelHTTPClientBase implements Runn
} }
/** /**
* create the default options (using the default timeout, etc) * Create the default options (using the default timeout, etc).
* * Warning, this does not make a copy of I2PTunnel's client options,
* it modifies them directly.
* Do not use overrides for per-socket options.
*/ */
@Override @Override
protected I2PSocketOptions getDefaultOptions(Properties overrides) { protected I2PSocketOptions getDefaultOptions(Properties overrides) {
@@ -965,12 +969,13 @@ public class I2PTunnelHTTPClient extends I2PTunnelHTTPClientBase implements Runn
return; return;
} }
Properties opts = new Properties(); //Properties opts = new Properties();
//opts.setProperty("i2p.streaming.inactivityTimeout", ""+120*1000); //opts.setProperty("i2p.streaming.inactivityTimeout", ""+120*1000);
// 1 == disconnect. see ConnectionOptions in the new streaming lib, which i // 1 == disconnect. see ConnectionOptions in the new streaming lib, which i
// dont want to hard link to here // dont want to hard link to here
//opts.setProperty("i2p.streaming.inactivityTimeoutAction", ""+1); //opts.setProperty("i2p.streaming.inactivityTimeoutAction", ""+1);
I2PSocketOptions sktOpts = getDefaultOptions(opts); //I2PSocketOptions sktOpts = getDefaultOptions(opts);
I2PSocketOptions sktOpts = getDefaultOptions();
if (remotePort > 0) if (remotePort > 0)
sktOpts.setPort(remotePort); sktOpts.setPort(remotePort);
I2PSocket i2ps = createI2PSocket(clientDest, sktOpts); I2PSocket i2ps = createI2PSocket(clientDest, sktOpts);

View File

@@ -15,10 +15,12 @@ import java.net.Socket;
import java.net.SocketException; import java.net.SocketException;
import java.util.List; import java.util.List;
import java.util.Locale; import java.util.Locale;
import java.util.Properties;
import net.i2p.I2PAppContext; import net.i2p.I2PAppContext;
import net.i2p.I2PException; import net.i2p.I2PException;
import net.i2p.client.streaming.I2PSocket; import net.i2p.client.streaming.I2PSocket;
import net.i2p.client.streaming.I2PSocketOptions;
import net.i2p.data.DataFormatException; import net.i2p.data.DataFormatException;
import net.i2p.util.HexDump; import net.i2p.util.HexDump;
import net.i2p.util.Log; import net.i2p.util.Log;
@@ -203,7 +205,10 @@ public class SOCKS4aServer extends SOCKSServer {
// Let's not due a new Dest for every request, huh? // Let's not due a new Dest for every request, huh?
//I2PSocketManager sm = I2PSocketManagerFactory.createManager(); //I2PSocketManager sm = I2PSocketManagerFactory.createManager();
//destSock = sm.connect(I2PTunnel.destFromName(connHostName), null); //destSock = sm.connect(I2PTunnel.destFromName(connHostName), null);
destSock = t.createI2PSocket(I2PAppContext.getGlobalContext().namingService().lookup(connHostName)); Properties overrides = new Properties();
I2PSocketOptions sktOpts = t.buildOptions(overrides);
sktOpts.setPort(connPort);
destSock = t.createI2PSocket(I2PAppContext.getGlobalContext().namingService().lookup(connHostName), sktOpts);
} else if ("localhost".equals(connHostName) || "127.0.0.1".equals(connHostName)) { } else if ("localhost".equals(connHostName) || "127.0.0.1".equals(connHostName)) {
String err = "No localhost accesses allowed through the Socks Proxy"; String err = "No localhost accesses allowed through the Socks Proxy";
_log.error(err); _log.error(err);

View File

@@ -366,7 +366,10 @@ public class SOCKS5Server extends SOCKSServer {
} catch (IOException ioe) {} } catch (IOException ioe) {}
throw new SOCKSException("Host not found"); throw new SOCKSException("Host not found");
} }
destSock = t.createI2PSocket(I2PAppContext.getGlobalContext().namingService().lookup(connHostName)); Properties overrides = new Properties();
I2PSocketOptions sktOpts = t.buildOptions(overrides);
sktOpts.setPort(connPort);
destSock = t.createI2PSocket(I2PAppContext.getGlobalContext().namingService().lookup(connHostName), sktOpts);
} else if ("localhost".equals(connHostName) || "127.0.0.1".equals(connHostName)) { } else if ("localhost".equals(connHostName) || "127.0.0.1".equals(connHostName)) {
String err = "No localhost accesses allowed through the Socks Proxy"; String err = "No localhost accesses allowed through the Socks Proxy";
_log.error(err); _log.error(err);