diff --git a/src/main/java/org/whispersystems/textsecuregcm/websocket/DeadLetterHandler.java b/src/main/java/org/whispersystems/textsecuregcm/websocket/DeadLetterHandler.java index e5421a827..a22152356 100644 --- a/src/main/java/org/whispersystems/textsecuregcm/websocket/DeadLetterHandler.java +++ b/src/main/java/org/whispersystems/textsecuregcm/websocket/DeadLetterHandler.java @@ -20,22 +20,24 @@ public class DeadLetterHandler implements DispatchChannel { @Override public void onDispatchMessage(String channel, byte[] data) { - try { - logger.warn("Handling dead letter to: " + channel); + if (!WebSocketConnectionInfo.isType(channel)) { + try { + logger.info("Handling dead letter to: " + channel); - WebsocketAddress address = new WebsocketAddress(channel); - PubSubMessage pubSubMessage = PubSubMessage.parseFrom(data); + WebsocketAddress address = new WebsocketAddress(channel); + PubSubMessage pubSubMessage = PubSubMessage.parseFrom(data); - switch (pubSubMessage.getType().getNumber()) { - case PubSubMessage.Type.DELIVER_VALUE: - Envelope message = Envelope.parseFrom(pubSubMessage.getContent()); - messagesManager.insert(address.getNumber(), address.getDeviceId(), message); - break; + switch (pubSubMessage.getType().getNumber()) { + case PubSubMessage.Type.DELIVER_VALUE: + Envelope message = Envelope.parseFrom(pubSubMessage.getContent()); + messagesManager.insert(address.getNumber(), address.getDeviceId(), message); + break; + } + } catch (InvalidProtocolBufferException e) { + logger.warn("Bad pubsub message", e); + } catch (InvalidWebsocketAddressException e) { + logger.warn("Invalid websocket address", e); } - } catch (InvalidProtocolBufferException e) { - logger.warn("Bad pubsub message", e); - } catch (InvalidWebsocketAddressException e) { - logger.warn("Invalid websocket address", e); } } diff --git a/src/main/java/org/whispersystems/textsecuregcm/websocket/WebSocketConnectionInfo.java b/src/main/java/org/whispersystems/textsecuregcm/websocket/WebSocketConnectionInfo.java index dcb8372d4..0683672ee 100644 --- a/src/main/java/org/whispersystems/textsecuregcm/websocket/WebSocketConnectionInfo.java +++ b/src/main/java/org/whispersystems/textsecuregcm/websocket/WebSocketConnectionInfo.java @@ -33,6 +33,10 @@ public class WebSocketConnectionInfo implements PubSubAddress { return address; } + public static boolean isType(String address) { + return address.endsWith(":c"); + } + @Override public boolean equals(Object other) { return