mirror of
https://codeberg.org/Mercury-IM/Smack
synced 2024-11-10 18:15:58 +01:00
Add XMPPTCPConnection.getMaxSmResumptionTime()
Note that the logic determining the max resumption time has changed, Math.min() is now used instead of Math.max(). This should match the real life situation, e.g. if the server announced a max resumption time of 10 minutes and the client one of 5, then it should be assumed that the connection/stream state is dropped by the parties after 5 minutes.
This commit is contained in:
parent
04d47b2dda
commit
6209d75536
1 changed files with 12 additions and 3 deletions
|
@ -1613,9 +1613,7 @@ public class XMPPTCPConnection extends AbstractXMPPConnection {
|
|||
|
||||
// See if resumption time is over
|
||||
long current = System.currentTimeMillis();
|
||||
int clientResumptionTime = smClientMaxResumptionTime > 0 ? smClientMaxResumptionTime : Integer.MAX_VALUE;
|
||||
int serverResumptionTime = smServerMaxResumptimTime > 0 ? smServerMaxResumptimTime : Integer.MAX_VALUE;
|
||||
long maxResumptionMillies = Math.max(clientResumptionTime, serverResumptionTime) * 1000;
|
||||
long maxResumptionMillies = getMaxSmResumptionTime() * 1000;
|
||||
if (shutdownTimestamp + maxResumptionMillies > current) {
|
||||
return false;
|
||||
} else {
|
||||
|
@ -1623,6 +1621,17 @@ public class XMPPTCPConnection extends AbstractXMPPConnection {
|
|||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* Get the maximum resumption time in seconds after which a managed stream can be resumed.
|
||||
*
|
||||
* @return the maximum resumption time in seconds.
|
||||
*/
|
||||
public int getMaxSmResumptionTime() {
|
||||
int clientResumptionTime = smClientMaxResumptionTime > 0 ? smClientMaxResumptionTime : Integer.MAX_VALUE;
|
||||
int serverResumptionTime = smServerMaxResumptimTime > 0 ? smServerMaxResumptimTime : Integer.MAX_VALUE;
|
||||
return Math.min(clientResumptionTime, serverResumptionTime);
|
||||
}
|
||||
|
||||
private void processHandledCount(long handledCount) throws NotConnectedException {
|
||||
long ackedStanzasCount = SMUtils.calculateDelta(handledCount, serverHandledStanzasCount);
|
||||
final List<Packet> ackedStanzas = new ArrayList<Packet>(
|
||||
|
|
Loading…
Reference in a new issue