From: AsamK Date: Sun, 2 May 2021 21:20:59 +0000 (+0200) Subject: Minor fixes X-Git-Tag: v0.8.2~32 X-Git-Url: https://git.nmode.ca/signal-cli/commitdiff_plain/c79860b493f8689e7aa8c066b4ef80e1a0f75add?ds=inline Minor fixes --- diff --git a/lib/src/main/java/org/asamk/signal/manager/RegistrationManager.java b/lib/src/main/java/org/asamk/signal/manager/RegistrationManager.java index 72c99729..e95cb458 100644 --- a/lib/src/main/java/org/asamk/signal/manager/RegistrationManager.java +++ b/lib/src/main/java/org/asamk/signal/manager/RegistrationManager.java @@ -124,7 +124,7 @@ public class RegistrationManager implements Closeable { public Manager verifyAccount( String verificationCode, String pin - ) throws IOException, KeyBackupSystemNoDataException, KeyBackupServicePinException { + ) throws IOException, LockedException, KeyBackupSystemNoDataException, KeyBackupServicePinException { verificationCode = verificationCode.replace("-", ""); VerifyAccountResponse response; MasterKey masterKey; diff --git a/lib/src/main/java/org/asamk/signal/manager/helper/PinHelper.java b/lib/src/main/java/org/asamk/signal/manager/helper/PinHelper.java index cf98c4c9..b0f66f15 100644 --- a/lib/src/main/java/org/asamk/signal/manager/helper/PinHelper.java +++ b/lib/src/main/java/org/asamk/signal/manager/helper/PinHelper.java @@ -53,7 +53,7 @@ public class PinHelper { ) throws IOException, KeyBackupSystemNoDataException, KeyBackupServicePinException { var tokenResponse = keyBackupService.getToken(basicStorageCredentials); if (tokenResponse == null || tokenResponse.getTries() == 0) { - throw new IOException("KBS Account locked"); + throw new IOException("KBS Account locked, maximum pin attempts reached."); } var registrationLockData = restoreMasterKey(pin, basicStorageCredentials, tokenResponse); diff --git a/lib/src/main/java/org/asamk/signal/manager/storage/SignalAccount.java b/lib/src/main/java/org/asamk/signal/manager/storage/SignalAccount.java index 6b05faa6..6d920cf6 100644 --- a/lib/src/main/java/org/asamk/signal/manager/storage/SignalAccount.java +++ b/lib/src/main/java/org/asamk/signal/manager/storage/SignalAccount.java @@ -229,7 +229,13 @@ public class SignalAccount implements Closeable { } private static File getUserPath(final File dataPath, final String username) { - return new File(dataPath, username + ".d"); + final var path = new File(dataPath, username + ".d"); + try { + IOUtils.createPrivateDirectories(path); + } catch (IOException e) { + throw new AssertionError("Failed to create user path", e); + } + return path; } private static File getMessageCachePath(File dataPath, String username) { diff --git a/lib/src/main/java/org/asamk/signal/manager/storage/recipients/RecipientStore.java b/lib/src/main/java/org/asamk/signal/manager/storage/recipients/RecipientStore.java index b400e45d..0051e734 100644 --- a/lib/src/main/java/org/asamk/signal/manager/storage/recipients/RecipientStore.java +++ b/lib/src/main/java/org/asamk/signal/manager/storage/recipients/RecipientStore.java @@ -136,7 +136,7 @@ public class RecipientStore implements ContactsStore, ProfileStore { @Deprecated public SignalServiceAddress resolveServiceAddress(SignalServiceAddress address) { - return resolveServiceAddress(resolveRecipient(address, true)); + return resolveServiceAddress(resolveRecipient(address, false)); } public RecipientId resolveRecipient(UUID uuid) { @@ -331,9 +331,8 @@ public class RecipientStore implements ContactsStore, ProfileStore { private void updateRecipientAddressLocked( final RecipientId recipientId, final SignalServiceAddress address ) { - final var nextRecipientId = nextIdLocked(); final var recipient = recipients.get(recipientId); - storeRecipientLocked(nextRecipientId, Recipient.newBuilder(recipient).withAddress(address).build()); + storeRecipientLocked(recipientId, Recipient.newBuilder(recipient).withAddress(address).build()); } private void storeRecipientLocked( diff --git a/lib/src/main/java/org/asamk/signal/manager/util/ProfileUtils.java b/lib/src/main/java/org/asamk/signal/manager/util/ProfileUtils.java index 244f34f6..b1a8ed94 100644 --- a/lib/src/main/java/org/asamk/signal/manager/util/ProfileUtils.java +++ b/lib/src/main/java/org/asamk/signal/manager/util/ProfileUtils.java @@ -71,6 +71,9 @@ public class ProfileUtils { } private static Pair splitName(String name) { + if (name == null) { + return new Pair<>(null, null); + } String[] parts = name.split("\0"); switch (parts.length) {