Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

* [#247] Add optional flag to forcibly disconnect without sending… #246

Merged
merged 1 commit into from Sep 1, 2016
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Jump to
Jump to file
Failed to load files.
Diff view
Diff view
Expand Up @@ -471,20 +471,26 @@ public void disconnect(MqttDisconnect disconnect, long quiesceTimeout, MqttToken
discbg.start();
}
}


public void disconnectForcibly(long quiesceTimeout, long disconnectTimeout) throws MqttException {
disconnectForcibly(quiesceTimeout, disconnectTimeout, true);
}

/**
* Disconnect the connection and reset all the states.
*/
public void disconnectForcibly(long quiesceTimeout, long disconnectTimeout) throws MqttException {
public void disconnectForcibly(long quiesceTimeout, long disconnectTimeout, boolean sendDisconnectPacket) throws MqttException {
// Allow current inbound and outbound work to complete
clientState.quiesce(quiesceTimeout);
MqttToken token = new MqttToken(client.getClientId());
try {
// Send disconnect packet
internalSend(new MqttDisconnect(), token);
if(sendDisconnectPacket) {
internalSend(new MqttDisconnect(), token);

// Wait util the disconnect packet sent with timeout
token.waitForCompletion(disconnectTimeout);
// Wait util the disconnect packet sent with timeout
token.waitForCompletion(disconnectTimeout);
}
}
catch (Exception ex) {
// ignore, probably means we failed to send the disconnect packet.
Expand Down
Expand Up @@ -647,6 +647,10 @@ public void disconnectForcibly(long quiesceTimeout, long disconnectTimeout) thro
comms.disconnectForcibly(quiesceTimeout, disconnectTimeout);
}

public void disconnectForcibly(long quiesceTimeout, long disconnectTimeout, boolean sendDisconnectPacket) throws MqttException {
comms.disconnectForcibly(quiesceTimeout, disconnectTimeout, sendDisconnectPacket);
}

/* (non-Javadoc)
* @see IMqttAsyncClient#isConnected()
*/
Expand Down
Expand Up @@ -290,6 +290,10 @@ public void disconnectForcibly(long quiesceTimeout, long disconnectTimeout) thro
aClient.disconnectForcibly(quiesceTimeout, disconnectTimeout);
}

public void disconnectForcibly(long quiesceTimeout, long disconnectTimeout, boolean sendDisconnectPacket) throws MqttException {
aClient.disconnectForcibly(quiesceTimeout, disconnectTimeout, sendDisconnectPacket);
}

/*
* @see IMqttClient#subscribe(String)
*/
Expand Down