Commit 69e961d8 authored by Tom Evans's avatar Tom Evans

OF-787: Reverting changes for OF-2

Reverting patch that was applied to address OF-2, because it broke TLS
handling for S2S connections.
parent 00c51ebc
...@@ -24,8 +24,6 @@ import java.io.IOException; ...@@ -24,8 +24,6 @@ import java.io.IOException;
import java.io.InputStreamReader; import java.io.InputStreamReader;
import java.net.InetSocketAddress; import java.net.InetSocketAddress;
import java.net.Socket; import java.net.Socket;
import java.net.SocketTimeoutException;
import java.net.UnknownHostException;
import java.util.Collection; import java.util.Collection;
import java.util.Collections; import java.util.Collections;
import java.util.HashSet; import java.util.HashSet;
...@@ -272,29 +270,21 @@ public class LocalOutgoingServerSession extends LocalSession implements Outgoing ...@@ -272,29 +270,21 @@ public class LocalOutgoingServerSession extends LocalSession implements Outgoing
List<DNSUtil.HostAddress> hosts = DNSUtil.resolveXMPPDomain(hostname, port); List<DNSUtil.HostAddress> hosts = DNSUtil.resolveXMPPDomain(hostname, port);
for (Iterator<DNSUtil.HostAddress> it = hosts.iterator(); it.hasNext();) { for (Iterator<DNSUtil.HostAddress> it = hosts.iterator(); it.hasNext();) {
try { try {
socket = new Socket();
DNSUtil.HostAddress address = it.next(); DNSUtil.HostAddress address = it.next();
realHostname = address.getHost(); realHostname = address.getHost();
realPort = address.getPort(); realPort = address.getPort();
Log.debug("LocalOutgoingServerSession: OS - Trying to connect to " + hostname + ":" + port + Log.debug("LocalOutgoingServerSession: OS - Trying to connect to " + hostname + ":" + port +
"(DNS lookup: " + realHostname + ":" + realPort + ")"); "(DNS lookup: " + realHostname + ":" + realPort + ")");
// Establish a TCP connection to the Receiving Server // Establish a TCP connection to the Receiving Server
socket = new Socket(); socket.connect(new InetSocketAddress(realHostname, realPort),
socket.connect(new InetSocketAddress(realHostname, realPort), RemoteServerManager.getSocketTimeout()); RemoteServerManager.getSocketTimeout());
Log.debug("LocalOutgoingServerSession: OS - Plain connection to " + hostname + ":" + port + " successful"); Log.debug("LocalOutgoingServerSession: OS - Plain connection to " + hostname + ":" + port + " successful");
break; break;
} }
catch (UnknownHostException uhe) {
Log.warn("Unknown host: " + realHostname);
}
catch (SocketTimeoutException ste) {
Log.error("Connection Timed out trying to connect to remote server: " + hostname +
"(DNS lookup: " + realHostname + ":" + realPort + ")");
}
catch (Exception e) { catch (Exception e) {
Log.warn("Error trying to connect to remote server: " + hostname + Log.warn("Error trying to connect to remote server: " + hostname +
"(DNS lookup: " + realHostname + ":" + realPort + ")", e); "(DNS lookup: " + realHostname + ":" + realPort + ")", e);
}
finally {
try { try {
if (socket != null) { if (socket != null) {
socket.close(); socket.close();
...@@ -305,7 +295,7 @@ public class LocalOutgoingServerSession extends LocalSession implements Outgoing ...@@ -305,7 +295,7 @@ public class LocalOutgoingServerSession extends LocalSession implements Outgoing
} }
} }
} }
if (socket == null || !socket.isConnected()) { if (!socket.isConnected()) {
return null; return null;
} }
...@@ -384,27 +374,32 @@ public class LocalOutgoingServerSession extends LocalSession implements Outgoing ...@@ -384,27 +374,32 @@ public class LocalOutgoingServerSession extends LocalSession implements Outgoing
Log.debug("LocalOutgoingServerSession: OS - Error, <starttls> was not received"); Log.debug("LocalOutgoingServerSession: OS - Error, <starttls> was not received");
} }
} }
// Something went wrong so close the connection and try server dialback over
// a plain connection
if (connection != null) {
connection.close();
}
} }
catch (SSLHandshakeException e) { catch (SSLHandshakeException e) {
Log.debug("LocalOutgoingServerSession: SSL Handshake error while creating secured outgoing session to remote " + Log.debug("LocalOutgoingServerSession: Handshake error while creating secured outgoing session to remote " +
"server: " + hostname + "(DNS lookup: " + realHostname + ":" + realPort + "): " + e.getMessage()); "server: " + hostname + "(DNS lookup: " + realHostname + ":" + realPort +
")", e);
// Close the connection
if (connection != null) {
connection.close();
}
} }
catch (XmlPullParserException e) { catch (XmlPullParserException e) {
Log.warn("Error creating secured outgoing session to remote server: " + hostname + Log.warn("Error creating secured outgoing session to remote server: " + hostname +
"(DNS lookup: " + realHostname + ":" + realPort + "): ", e); "(DNS lookup: " + realHostname + ":" + realPort + ")", e);
} // Close the connection
catch (UnknownHostException uhe) { if (connection != null) {
Log.warn("Unknown host: " + realHostname); connection.close();
} }
catch (SocketTimeoutException ste) {
Log.error("Connection Timed out trying to connect to remote server: " + hostname +
"(DNS lookup: " + realHostname + ":" + realPort + ")");
} }
catch (Exception e) { catch (Exception e) {
Log.error("Error creating secured outgoing session to remote server: " + hostname + Log.error("Error creating secured outgoing session to remote server: " + hostname +
"(DNS lookup: " + realHostname + ":" + realPort + ")", e); "(DNS lookup: " + realHostname + ":" + realPort + ")", e);
}
finally {
// Close the connection // Close the connection
if (connection != null) { if (connection != null) {
connection.close(); connection.close();
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment