mirror of
https://codeberg.org/Mercury-IM/Smack
synced 2024-11-22 06:12:05 +01:00
Do not re-use the Socket after connect() failed
Fixes SMACK-724.
This commit is contained in:
parent
f8c00533c7
commit
73fcbc6b27
1 changed files with 4 additions and 1 deletions
|
@ -554,7 +554,6 @@ public class XMPPTCPConnection extends AbstractXMPPConnection {
|
||||||
if (socketFactory == null) {
|
if (socketFactory == null) {
|
||||||
socketFactory = SocketFactory.getDefault();
|
socketFactory = SocketFactory.getDefault();
|
||||||
}
|
}
|
||||||
socket = socketFactory.createSocket();
|
|
||||||
for (HostAddress hostAddress : hostAddresses) {
|
for (HostAddress hostAddress : hostAddresses) {
|
||||||
Iterator<InetAddress> inetAddresses = null;
|
Iterator<InetAddress> inetAddresses = null;
|
||||||
String host = hostAddress.getFQDN();
|
String host = hostAddress.getFQDN();
|
||||||
|
@ -575,6 +574,10 @@ public class XMPPTCPConnection extends AbstractXMPPConnection {
|
||||||
continue;
|
continue;
|
||||||
}
|
}
|
||||||
innerloop: while (inetAddresses.hasNext()) {
|
innerloop: while (inetAddresses.hasNext()) {
|
||||||
|
// Create a *new* Socket before every connection attempt, i.e. connect() call, since Sockets are not
|
||||||
|
// re-usable after a failed connection attempt. See also SMACK-724.
|
||||||
|
socket = socketFactory.createSocket();
|
||||||
|
|
||||||
final InetAddress inetAddress = inetAddresses.next();
|
final InetAddress inetAddress = inetAddresses.next();
|
||||||
final String inetAddressAndPort = inetAddress + " at port " + port;
|
final String inetAddressAndPort = inetAddress + " at port " + port;
|
||||||
LOGGER.finer("Trying to establish TCP connection to " + inetAddressAndPort);
|
LOGGER.finer("Trying to establish TCP connection to " + inetAddressAndPort);
|
||||||
|
|
Loading…
Reference in a new issue