Displace client presence when existing account reregisters

This commit is contained in:
Katherine Yen
2023-05-05 11:31:18 -07:00
committed by GitHub
parent f6c4ba898b
commit c309afc04b
5 changed files with 18 additions and 2 deletions

View File

@@ -33,11 +33,14 @@ import java.util.concurrent.ExecutorService;
import java.util.concurrent.ScheduledExecutorService;
import java.util.concurrent.ScheduledFuture;
import java.util.concurrent.TimeUnit;
import java.util.stream.Collectors;
import java.util.stream.LongStream;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import org.whispersystems.textsecuregcm.redis.ClusterLuaScript;
import org.whispersystems.textsecuregcm.redis.FaultTolerantPubSubConnection;
import org.whispersystems.textsecuregcm.redis.FaultTolerantRedisCluster;
import org.whispersystems.textsecuregcm.storage.Device;
import org.whispersystems.textsecuregcm.util.Constants;
/**
@@ -198,6 +201,10 @@ public class ClientPresenceManager extends RedisClusterPubSubAdapter<String, Str
});
}
public void disconnectAllPresencesForUuid(final UUID accountUuid) {
disconnectAllPresences(accountUuid, Device.ALL_POSSIBLE_DEVICE_IDS);
}
public void disconnectPresence(final UUID accountUuid, final long deviceId) {
disconnectAllPresences(accountUuid, List.of(deviceId));
}