better error checking in ssl switch over

iNPUTmice created

Conflicts:
	src/main/java/eu/siacs/conversations/xmpp/XmppConnection.java

Change summary

src/main/java/eu/siacs/conversations/xmpp/XmppConnection.java | 15 +++-
1 file changed, 10 insertions(+), 5 deletions(-)

Detailed changes

src/main/java/eu/siacs/conversations/xmpp/XmppConnection.java 🔗

@@ -18,6 +18,8 @@ import java.io.IOException;
 import java.io.InputStream;
 import java.io.OutputStream;
 import java.math.BigInteger;
+import java.net.IDN;
+import java.net.InetAddress;
 import java.net.InetSocketAddress;
 import java.net.Socket;
 import java.net.UnknownHostException;
@@ -553,12 +555,15 @@ public class XmppConnection implements Runnable {
 
 			HostnameVerifier verifier = this.mXmppConnectionService.getMemorizingTrustManager().wrapHostnameVerifier(new StrictHostnameVerifier());
 
-			if (socket == null) {
-				throw new IOException("socket was null");
+			if (socket == null || socket.isClosed()) {
+				throw new IOException("socket null or closed");
 			}
-			SSLSocket sslSocket = (SSLSocket) factory.createSocket(socket,
-					socket.getInetAddress().getHostAddress(), socket.getPort(),
-					true);
+			final InetAddress address = socket.getInetAddress();
+			if (address == null) {
+				throw new IOException("socket address was null");
+			}
+
+			final SSLSocket sslSocket = (SSLSocket) factory.createSocket(socket,address.getHostAddress(), socket.getPort(),true);
 
 			// Support all protocols except legacy SSL.
 			// The min SDK version prevents us having to worry about SSLv2. In