]> nmode's Git Repositories - signal-cli/commitdiff
Use complete address instead of only identifier for retry envelope
authorAsamK <asamk@gmx.de>
Fri, 28 Oct 2022 16:13:25 +0000 (18:13 +0200)
committerAsamK <asamk@gmx.de>
Fri, 28 Oct 2022 16:13:25 +0000 (18:13 +0200)
Fixes #1074

lib/src/main/java/org/asamk/signal/manager/api/RecipientAddress.java
lib/src/main/java/org/asamk/signal/manager/helper/ReceiveHelper.java
lib/src/main/java/org/asamk/signal/manager/storage/recipients/RecipientAddress.java

index f477b9e97f3f220e74c3fc1fec4772cd3dc8ab2c..920eafc55a60ba3fc4d717877104c94dd45f9705 100644 (file)
@@ -64,8 +64,4 @@ public record RecipientAddress(Optional<UUID> uuid, Optional<String> number) {
                 number.isPresent() && other.number.isPresent() && number.get().equals(other.number.get())
         );
     }
-
-    public SignalServiceAddress toSignalServiceAddress() {
-        return new SignalServiceAddress(getServiceId(), number);
-    }
 }
index 5dca96eacdae3b3e7ce96f7308721a9e00d00a96..9fe1bf54587d78435d8db902161bb772f77d1c7f 100644 (file)
@@ -7,6 +7,7 @@ import org.asamk.signal.manager.api.ReceiveConfig;
 import org.asamk.signal.manager.api.UntrustedIdentityException;
 import org.asamk.signal.manager.storage.SignalAccount;
 import org.asamk.signal.manager.storage.messageCache.CachedMessage;
+import org.asamk.signal.manager.storage.recipients.RecipientAddress;
 import org.slf4j.Logger;
 import org.slf4j.LoggerFactory;
 import org.whispersystems.signalservice.api.SignalWebSocket;
@@ -261,7 +262,8 @@ public class ReceiveHelper {
             }
             if (!envelope.hasSourceUuid()) {
                 final var identifier = ((UntrustedIdentityException) exception).getSender();
-                final var recipientId = account.getRecipientResolver().resolveRecipient(identifier.getServiceId());
+                final var recipientId = account.getRecipientResolver()
+                        .resolveRecipient(new RecipientAddress(identifier));
                 try {
                     account.getMessageCache().replaceSender(cachedMessage, recipientId);
                 } catch (IOException ioException) {
index 7dc193a9b4b10814b664b3bd7d42db8a7706baa2..6f796b4a61031e3a11a2328242fcddf903f79111 100644 (file)
@@ -53,6 +53,10 @@ public record RecipientAddress(Optional<ServiceId> serviceId, Optional<PNI> pni,
         this(Optional.of(address.getServiceId()), Optional.empty(), address.getNumber());
     }
 
+    public RecipientAddress(org.asamk.signal.manager.api.RecipientAddress address) {
+        this(address.uuid().map(ServiceId::from), Optional.empty(), address.number());
+    }
+
     public RecipientAddress(ServiceId serviceId) {
         this(Optional.of(serviceId), Optional.empty());
     }