diff --git a/service/src/main/java/org/whispersystems/textsecuregcm/controllers/KeepAliveController.java b/service/src/main/java/org/whispersystems/textsecuregcm/controllers/KeepAliveController.java index c81e2abe6..1f0b240b4 100644 --- a/service/src/main/java/org/whispersystems/textsecuregcm/controllers/KeepAliveController.java +++ b/service/src/main/java/org/whispersystems/textsecuregcm/controllers/KeepAliveController.java @@ -45,7 +45,11 @@ public class KeepAliveController { { if (account != null) { if (!clientPresenceManager.isLocallyPresent(account.getUuid(), account.getAuthenticatedDevice().get().getId())) { - logger.warn("***** No local subscription found for {}::{}", account.getUuid(), account.getAuthenticatedDevice().get().getId()); + logger.warn("***** No local subscription found for {}::{}; age = {}ms, User-Agent = {}", + account.getUuid(), account.getAuthenticatedDevice().get().getId(), + System.currentTimeMillis() - context.getClient().getCreatedTimestamp(), + context.getClient().getUserAgent()); + context.getClient().close(1000, "OK"); String platform; diff --git a/websocket-resources/src/main/java/org/whispersystems/websocket/WebSocketClient.java b/websocket-resources/src/main/java/org/whispersystems/websocket/WebSocketClient.java index 0e2376436..43e50ab7f 100644 --- a/websocket-resources/src/main/java/org/whispersystems/websocket/WebSocketClient.java +++ b/websocket-resources/src/main/java/org/whispersystems/websocket/WebSocketClient.java @@ -31,6 +31,7 @@ public class WebSocketClient { private final RemoteEndpoint remoteEndpoint; private final WebSocketMessageFactory messageFactory; private final Map> pendingRequestMapper; + private final long created; public WebSocketClient(Session session, RemoteEndpoint remoteEndpoint, WebSocketMessageFactory messageFactory, @@ -40,6 +41,7 @@ public class WebSocketClient { this.remoteEndpoint = remoteEndpoint; this.messageFactory = messageFactory; this.pendingRequestMapper = pendingRequestMapper; + this.created = System.currentTimeMillis(); } public CompletableFuture sendRequest(String verb, String path, @@ -78,6 +80,10 @@ public class WebSocketClient { return session.getUpgradeRequest().getHeader("User-Agent"); } + public long getCreatedTimestamp() { + return this.created; + } + public void close(int code, String message) { session.close(code, message); }