use a 20s timeout on socks5 connections

Daniel Gultsch created

Change summary

src/main/java/eu/siacs/conversations/Config.java                            | 1 
src/main/java/eu/siacs/conversations/xmpp/jingle/JingleSocks5Transport.java | 7 
2 files changed, 6 insertions(+), 2 deletions(-)

Detailed changes

src/main/java/eu/siacs/conversations/Config.java 🔗

@@ -11,6 +11,7 @@ public final class Config {
 	public static final int PING_MAX_INTERVAL = 300;
 	public static final int PING_MIN_INTERVAL = 30;
 	public static final int PING_TIMEOUT = 10;
+	public static final int SOCKET_TIMEOUT = 20;
 	public static final int CONNECT_TIMEOUT = 90;
 	public static final int CARBON_GRACE_PERIOD = 60;
 	public static final int MINI_GRACE_PERIOD = 750;

src/main/java/eu/siacs/conversations/xmpp/jingle/JingleSocks5Transport.java 🔗

@@ -6,7 +6,9 @@ import java.io.FileNotFoundException;
 import java.io.IOException;
 import java.io.InputStream;
 import java.io.OutputStream;
+import java.net.InetSocketAddress;
 import java.net.Socket;
+import java.net.SocketAddress;
 import java.net.UnknownHostException;
 import java.security.MessageDigest;
 import java.security.NoSuchAlgorithmException;
@@ -56,8 +58,9 @@ public class JingleSocks5Transport extends JingleTransport {
 			@Override
 			public void run() {
 				try {
-					socket = new Socket(candidate.getHost(),
-							candidate.getPort());
+					socket = new Socket();
+					SocketAddress address = new InetSocketAddress(candidate.getHost(),candidate.getPort());
+					socket.connect(address,Config.SOCKET_TIMEOUT * 1000);
 					inputStream = socket.getInputStream();
 					outputStream = socket.getOutputStream();
 					byte[] login = { 0x05, 0x01, 0x00 };