aboutsummaryrefslogtreecommitdiffstats
path: root/app/src/main/java/org/connectbot/transport
diff options
context:
space:
mode:
authorKenny Root <kenny@the-b.org>2015-04-19 22:45:07 -0700
committerKenny Root <kenny@the-b.org>2015-04-19 22:45:07 -0700
commitd0e73184b960283ea7db3f905170d49160f010f8 (patch)
tree5e7917b6d1c3fb68155d547cfe744302b2e7a65f /app/src/main/java/org/connectbot/transport
parent5af75d5b3657409a9d46d48bafa446df9646ae0c (diff)
parentc960f1ef596e6b1393f18ece9b2bd74353eb115f (diff)
downloadconnectbot-d0e73184b960283ea7db3f905170d49160f010f8.tar.gz
connectbot-d0e73184b960283ea7db3f905170d49160f010f8.tar.bz2
connectbot-d0e73184b960283ea7db3f905170d49160f010f8.zip
Merge branch 'master' into gradle-conversion
Diffstat (limited to 'app/src/main/java/org/connectbot/transport')
-rw-r--r--app/src/main/java/org/connectbot/transport/Telnet.java19
1 files changed, 18 insertions, 1 deletions
diff --git a/app/src/main/java/org/connectbot/transport/Telnet.java b/app/src/main/java/org/connectbot/transport/Telnet.java
index 16cbd0e..ed8fc95 100644
--- a/app/src/main/java/org/connectbot/transport/Telnet.java
+++ b/app/src/main/java/org/connectbot/transport/Telnet.java
@@ -20,8 +20,11 @@ package org.connectbot.transport;
import java.io.IOException;
import java.io.InputStream;
import java.io.OutputStream;
+import java.net.InetAddress;
+import java.net.InetSocketAddress;
import java.net.Socket;
import java.net.SocketException;
+import java.net.SocketTimeoutException;
import java.net.UnknownHostException;
import java.nio.charset.Charset;
import java.util.Map;
@@ -123,10 +126,24 @@ public class Telnet extends AbsTransport {
return PROTOCOL;
}
+ private static void tryAllAddresses(Socket sock, String host, int port) throws IOException {
+ InetAddress[] addresses = InetAddress.getAllByName(host);
+ for (InetAddress addr : addresses) {
+ try {
+ sock.connect(new InetSocketAddress(addr, port));
+ return;
+ } catch (SocketTimeoutException e) {
+ }
+ }
+ throw new SocketTimeoutException("Could not connect; socket timed out");
+ }
+
@Override
public void connect() {
try {
- socket = new Socket(host.getHostname(), host.getPort());
+ socket = new Socket();
+
+ tryAllAddresses(socket, host.getHostname(), host.getPort());
connected = true;