Merge pull request #416 from Flowdalic/connected-boolean

Set 'connected' to 'true' as early as possible
This commit is contained in:
Florian Schmaus 2020-08-07 12:43:53 +02:00 committed by GitHub
commit cf92566e26
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
4 changed files with 15 additions and 2 deletions

View File

@ -522,6 +522,9 @@ public abstract class AbstractXMPPConnection implements XMPPConnection {
closingStreamReceived = false;
streamId = null;
// The connection should not be connected nor marked as such prior calling connectInternal().
assert !connected;
try {
// Perform the actual connection to the XMPP service
connectInternal();
@ -537,8 +540,9 @@ public abstract class AbstractXMPPConnection implements XMPPConnection {
throw e;
}
// Make note of the fact that we're now connected.
connected = true;
// If connectInternal() did not throw, then this connection must now be marked as connected.
assert connected;
callConnectionConnectedListener();
return this;

View File

@ -217,6 +217,7 @@ public final class ModularXmppClientToServerConnection extends AbstractXMPPConne
@Override
public void setTransport(XmppClientToServerTransport xmppTransport) {
ModularXmppClientToServerConnection.this.activeTransport = xmppTransport;
ModularXmppClientToServerConnection.this.connected = true;
}
};

View File

@ -116,5 +116,11 @@ public abstract class ModularXmppClientToServerConnectionInternal {
public abstract void setCompressionEnabled(boolean compressionEnabled);
/**
* Set the active transport (TCP, BOSH, WebSocket, ) to be used for the XMPP connection. Also marks the connection
* as connected.
*
* @param xmppTransport the active transport.
*/
public abstract void setTransport(XmppClientToServerTransport xmppTransport);
}

View File

@ -836,6 +836,8 @@ public class XMPPTCPConnection extends AbstractXMPPConnection {
// there is an error establishing the connection
connectUsingConfiguration();
connected = true;
// We connected successfully to the servers TCP port
initConnection();