From 7cdc95fcb4afb6714f95232e235583f12dfaa899 Mon Sep 17 00:00:00 2001 From: Kenny Root Date: Thu, 9 Jul 2009 16:40:30 +0000 Subject: Support SOCKS 4a extension for resolving hostnames remotely git-svn-id: https://connectbot.googlecode.com/svn/trunk/connectbot@363 df292f66-193f-0410-a5fc-6d59da041ff2 --- .../trilead/ssh2/channel/DynamicAcceptThread.java | 23 ++++++++-------------- 1 file changed, 8 insertions(+), 15 deletions(-) diff --git a/lib/src/main/java/com/trilead/ssh2/channel/DynamicAcceptThread.java b/lib/src/main/java/com/trilead/ssh2/channel/DynamicAcceptThread.java index 33f8200..fee4529 100644 --- a/lib/src/main/java/com/trilead/ssh2/channel/DynamicAcceptThread.java +++ b/lib/src/main/java/com/trilead/ssh2/channel/DynamicAcceptThread.java @@ -128,13 +128,6 @@ public class DynamicAcceptThread extends Thread implements IChannelWorkerThread if (!auth.checkRequest(msg)) throw new SocksException(Proxy.SOCKS_FAILURE); - if (msg.ip == null) { - if (msg instanceof Socks5Message) { - msg.ip = InetAddress.getByName(msg.host); - } else - throw new SocksException(Proxy.SOCKS_FAILURE); - } - switch (msg.command) { case Proxy.SOCKS_CMD_CONNECT: onConnect(msg); @@ -175,24 +168,24 @@ public class DynamicAcceptThread extends Thread implements IChannelWorkerThread StreamForwarder l2r = null; if (msg instanceof Socks5Message) { - response = new Socks5Message(Proxy.SOCKS_SUCCESS, sock - .getLocalAddress(), sock.getLocalPort()); + response = new Socks5Message(Proxy.SOCKS_SUCCESS, (InetAddress)null, 0); } else { - response = new Socks4Message(Socks4Message.REPLY_OK, sock - .getLocalAddress(), sock.getLocalPort()); - + response = new Socks4Message(Socks4Message.REPLY_OK, (InetAddress)null, 0); } response.write(out); + String destHost = msg.host; + if (msg.ip != null) + destHost = msg.ip.getHostAddress(); + try { /* * This may fail, e.g., if the remote port is closed (in * optimistic terms: not open yet) */ - cn = cm.openDirectTCPIPChannel(msg.host, msg.port, - sock.getInetAddress().getHostAddress(), - sock.getPort()); + cn = cm.openDirectTCPIPChannel(destHost, msg.port, + "127.0.0.1", 0); } catch (IOException e) { /* -- cgit v1.2.3