From f2cf77339e4662c83c16aacaac3869fa0b077bef Mon Sep 17 00:00:00 2001 From: Greyson Parrelli Date: Tue, 19 Oct 2021 15:21:16 -0400 Subject: [PATCH] Fix logging of DEM deviceId. --- .../messages/MessageContentProcessor.java | 37 +++++++++++++------ 1 file changed, 25 insertions(+), 12 deletions(-) diff --git a/app/src/main/java/org/thoughtcrime/securesms/messages/MessageContentProcessor.java b/app/src/main/java/org/thoughtcrime/securesms/messages/MessageContentProcessor.java index 4d681654e..159d5c0c7 100644 --- a/app/src/main/java/org/thoughtcrime/securesms/messages/MessageContentProcessor.java +++ b/app/src/main/java/org/thoughtcrime/securesms/messages/MessageContentProcessor.java @@ -239,7 +239,7 @@ public final class MessageContentProcessor { PendingRetryReceiptModel pending = ApplicationDependencies.getPendingRetryReceiptCache().get(senderRecipient.getId(), content.getTimestamp()); long receivedTime = handlePendingRetry(pending, content, threadRecipient); - log(String.valueOf(content.getTimestamp()), "Beginning message processing. Sender: " + senderRecipient.getId() + " | " + senderRecipient.requireServiceId() + "." + content.getSenderDevice()); + log(String.valueOf(content.getTimestamp()), "Beginning message processing. Sender: " + formatSender(senderRecipient, content)); if (content.getDataMessage().isPresent()) { GroupDatabase groupDatabase = DatabaseFactory.getGroupDatabase(context); @@ -1809,7 +1809,7 @@ public final class MessageContentProcessor { long sentTimestamp = decryptionErrorMessage.getTimestamp(); - warn(content.getTimestamp(), "[RetryReceipt] Received a retry receipt from " + senderRecipient.getId() + ", device " + content.getSenderDevice() + " for message with timestamp " + sentTimestamp + "."); + warn(content.getTimestamp(), "[RetryReceipt] Received a retry receipt from " + formatSender(senderRecipient, content) + " for message with timestamp " + sentTimestamp + "."); if (!senderRecipient.hasUuid()) { warn(content.getTimestamp(), "[RetryReceipt] Requester " + senderRecipient.getId() + " somehow has no UUID! timestamp: " + sentTimestamp); @@ -1851,7 +1851,7 @@ public final class MessageContentProcessor { GroupId.V2 groupId = threadRecipient.requireGroupId().requireV2(); DistributionId distributionId = DatabaseFactory.getGroupDatabase(context).getOrCreateDistributionId(groupId); - SignalProtocolAddress requesterAddress = new SignalProtocolAddress(requester.requireUuid().toString(), decryptionErrorMessage.getDeviceId()); + SignalProtocolAddress requesterAddress = new SignalProtocolAddress(requester.requireUuid().toString(), content.getSenderDevice()); DatabaseFactory.getSenderKeySharedDatabase(context).delete(distributionId, Collections.singleton(requesterAddress)); @@ -2236,44 +2236,57 @@ public final class MessageContentProcessor { return unidentified; } - protected void log(@NonNull String message) { + private static void log(@NonNull String message) { Log.i(TAG, message); } - protected void log(long timestamp, @NonNull String message) { + private static void log(long timestamp, @NonNull String message) { log(String.valueOf(timestamp), message); } - protected void log(@NonNull String extra, @NonNull String message) { + private static void log(@NonNull String extra, @NonNull String message) { String extraLog = Util.isEmpty(extra) ? "" : "[" + extra + "] "; Log.i(TAG, extraLog + message); } - protected void warn(@NonNull String message) { + private static void warn(@NonNull String message) { warn("", message, null); } - protected void warn(@NonNull String extra, @NonNull String message) { + private static void warn(@NonNull String extra, @NonNull String message) { warn(extra, message, null); } - protected void warn(long timestamp, @NonNull String message) { + private static void warn(long timestamp, @NonNull String message) { warn(String.valueOf(timestamp), message); } - protected void warn(long timestamp, @NonNull String message, @Nullable Throwable t) { + private static void warn(long timestamp, @NonNull String message, @Nullable Throwable t) { warn(String.valueOf(timestamp), message, t); } - protected void warn(@NonNull String message, @Nullable Throwable t) { + private static void warn(@NonNull String message, @Nullable Throwable t) { warn("", message, t); } - protected void warn(@NonNull String extra, @NonNull String message, @Nullable Throwable t) { + private static void warn(@NonNull String extra, @NonNull String message, @Nullable Throwable t) { String extraLog = Util.isEmpty(extra) ? "" : "[" + extra + "] "; Log.w(TAG, extraLog + message, t); } + private static String formatSender(@NonNull Recipient recipient, @Nullable SignalServiceContent content) { + return formatSender(recipient.getId(), content); + } + + private static String formatSender(@NonNull RecipientId recipientId, @Nullable SignalServiceContent content) { + if (content != null) { + return recipientId + " (" + content.getSender().getIdentifier() + "." + content.getSenderDevice() + ")"; + } else { + return recipientId.toString(); + } + } + + @SuppressWarnings("WeakerAccess") private static class StorageFailedException extends Exception { private final String sender;