]> nmode's Git Repositories - signal-cli/blobdiff - src/main/java/org/asamk/signal/dbus/DbusSignalImpl.java
Fix error type for dbus rate limit challenge
[signal-cli] / src / main / java / org / asamk / signal / dbus / DbusSignalImpl.java
index d2419733203afb87a4fabc076c49e06cb379c9a8..8906ac47f8674a1242a61dfa3bfba779a50bb6a7 100644 (file)
@@ -2,16 +2,19 @@ package org.asamk.signal.dbus;
 
 import org.asamk.Signal;
 import org.asamk.signal.BaseConfig;
-import org.asamk.signal.commands.exceptions.IOErrorException;
 import org.asamk.signal.manager.AttachmentInvalidException;
 import org.asamk.signal.manager.Manager;
 import org.asamk.signal.manager.NotMasterDeviceException;
 import org.asamk.signal.manager.StickerPackInvalidException;
 import org.asamk.signal.manager.UntrustedIdentityException;
 import org.asamk.signal.manager.api.Identity;
+import org.asamk.signal.manager.api.InactiveGroupLinkException;
+import org.asamk.signal.manager.api.InvalidDeviceLinkException;
+import org.asamk.signal.manager.api.InvalidNumberException;
 import org.asamk.signal.manager.api.Message;
 import org.asamk.signal.manager.api.Pair;
 import org.asamk.signal.manager.api.RecipientIdentifier;
+import org.asamk.signal.manager.api.SendMessageResult;
 import org.asamk.signal.manager.api.TypingAction;
 import org.asamk.signal.manager.api.UpdateGroup;
 import org.asamk.signal.manager.groups.GroupId;
@@ -30,12 +33,6 @@ import org.freedesktop.dbus.connections.impl.DBusConnection;
 import org.freedesktop.dbus.exceptions.DBusException;
 import org.freedesktop.dbus.exceptions.DBusExecutionException;
 import org.freedesktop.dbus.types.Variant;
-import org.whispersystems.libsignal.InvalidKeyException;
-import org.whispersystems.signalservice.api.groupsv2.GroupLinkNotActiveException;
-import org.whispersystems.signalservice.api.messages.SendMessageResult;
-import org.whispersystems.signalservice.api.push.exceptions.UnregisteredUserException;
-import org.whispersystems.signalservice.api.util.InvalidNumberException;
-import org.whispersystems.signalservice.internal.contacts.crypto.UnauthenticatedResponseException;
 
 import java.io.File;
 import java.io.IOException;
@@ -92,13 +89,13 @@ public class DbusSignalImpl implements Signal {
     }
 
     @Override
-    public void submitRateLimitChallenge(String challenge, String captchaString) throws IOErrorException {
+    public void submitRateLimitChallenge(String challenge, String captchaString) {
         final var captcha = captchaString == null ? null : captchaString.replace("signalcaptcha://", "");
 
         try {
             m.submitRateLimitRecaptchaChallenge(challenge, captcha);
         } catch (IOException e) {
-            throw new IOErrorException("Submit challenge error: " + e.getMessage(), e);
+            throw new Error.Failure("Submit challenge error: " + e.getMessage());
         }
 
     }
@@ -107,7 +104,7 @@ public class DbusSignalImpl implements Signal {
     public void addDevice(String uri) {
         try {
             m.addDeviceLink(new URI(uri));
-        } catch (IOException | InvalidKeyException e) {
+        } catch (IOException | InvalidDeviceLinkException e) {
             throw new Error.Failure(e.getClass().getSimpleName() + " Add device link failed. " + e.getMessage());
         } catch (URISyntaxException e) {
             throw new Error.InvalidUri(e.getClass().getSimpleName()
@@ -390,7 +387,7 @@ public class DbusSignalImpl implements Signal {
             m.setContactName(getSingleRecipientIdentifier(number, m.getSelfNumber()), name);
         } catch (NotMasterDeviceException e) {
             throw new Error.Failure("This command doesn't work on linked devices.");
-        } catch (UnregisteredUserException e) {
+        } catch (IOException e) {
             throw new Error.Failure("Contact is not registered.");
         }
     }
@@ -584,8 +581,6 @@ public class DbusSignalImpl implements Signal {
     public void removePin() {
         try {
             m.setRegistrationLockPin(Optional.empty());
-        } catch (UnauthenticatedResponseException e) {
-            throw new Error.Failure("Remove pin failed with unauthenticated response: " + e.getMessage());
         } catch (IOException e) {
             throw new Error.Failure("Remove pin error: " + e.getMessage());
         }
@@ -595,8 +590,6 @@ public class DbusSignalImpl implements Signal {
     public void setPin(String registrationLockPin) {
         try {
             m.setRegistrationLockPin(Optional.of(registrationLockPin));
-        } catch (UnauthenticatedResponseException e) {
-            throw new Error.Failure("Set pin error failed with unauthenticated response: " + e.getMessage());
         } catch (IOException e) {
             throw new Error.Failure("Set pin error: " + e.getMessage());
         }
@@ -639,7 +632,7 @@ public class DbusSignalImpl implements Signal {
                 Profile profile = null;
                 try {
                     profile = m.getRecipientProfile(RecipientIdentifier.Single.fromAddress(address));
-                } catch (UnregisteredUserException ignored) {
+                } catch (IOException ignored) {
                 }
                 if (profile != null && profile.getDisplayName().equals(name)) {
                     numbers.add(number);
@@ -670,7 +663,7 @@ public class DbusSignalImpl implements Signal {
             }
             final var result = m.joinGroup(linkUrl);
             return result.first().serialize();
-        } catch (GroupInviteLinkUrl.InvalidGroupLinkException | GroupLinkNotActiveException e) {
+        } catch (GroupInviteLinkUrl.InvalidGroupLinkException | InactiveGroupLinkException e) {
             throw new Error.Failure("Group link is invalid: " + e.getMessage());
         } catch (GroupInviteLinkUrl.UnknownGroupLinkVersionException e) {
             throw new Error.Failure("Group link was created with an incompatible version: " + e.getMessage());
@@ -725,7 +718,7 @@ public class DbusSignalImpl implements Signal {
 
         final var message = timestamp + "\nFailed to send message:\n" + error + '\n';
 
-        if (result.getIdentityFailure() != null) {
+        if (result.isIdentityFailure()) {
             throw new Error.UntrustedIdentity(message);
         } else {
             throw new Error.Failure(message);