]> nmode's Git Repositories - signal-cli/commitdiff
Update libsignal-service
authorAsamK <asamk@gmx.de>
Tue, 20 Aug 2024 15:39:39 +0000 (17:39 +0200)
committerAsamK <asamk@gmx.de>
Tue, 20 Aug 2024 15:39:39 +0000 (17:39 +0200)
CHANGELOG.md
graalvm-config-dir/reflect-config.json
lib/src/main/java/org/asamk/signal/manager/helper/SendHelper.java
settings.gradle.kts
src/main/java/org/asamk/signal/BaseConfig.java

index 6b07eb2e67a31722aeb8fbe377852de7cbd8e1e4..7b534de6795d32efe59f4dc92ba9069d4f903665 100644 (file)
@@ -2,6 +2,12 @@
 
 ## [Unreleased]
 
+Requires libsignal-client version 0.52.5
+
+### Fixed
+
+- Fix issue with sending to some groups
+
 ## [0.13.5] - 2024-07-25
 
 Requires libsignal-client version 0.52.2
index 50ed1e48fca6bef755abf64d340a483918cae818..0a65c68be0c0488255e328a35cba08f9a7ef0d91 100644 (file)
   "allDeclaredMethods":true
 },
 {
-  "name":"java.lang.Object"
+  "name":"java.lang.Object",
+  "methods":[{"name":"equals","parameterTypes":["java.lang.Object"] }, {"name":"hashCode","parameterTypes":[] }, {"name":"toString","parameterTypes":[] }]
 },
 {
   "name":"java.lang.Record",
   "allDeclaredFields":true,
   "queryAllDeclaredMethods":true,
   "queryAllDeclaredConstructors":true,
-  "methods":[{"name":"<init>","parameterTypes":["org.signal.libsignal.protocol.ServiceId"] }]
+  "methods":[{"name":"<init>","parameterTypes":["org.signal.libsignal.protocol.ServiceId"] }, {"name":"equals","parameterTypes":["java.lang.Object"] }, {"name":"hashCode","parameterTypes":[] }, {"name":"logString","parameterTypes":[] }, {"name":"toByteArray","parameterTypes":[] }, {"name":"toByteString","parameterTypes":[] }, {"name":"toProtocolAddress","parameterTypes":["int"] }, {"name":"toString","parameterTypes":[] }]
 },
 {
   "name":"org.whispersystems.signalservice.api.push.ServiceId$ACI"
   "allDeclaredFields":true,
   "queryAllDeclaredMethods":true,
   "queryAllDeclaredConstructors":true,
-  "methods":[{"name":"fromLibSignal","parameterTypes":["org.signal.libsignal.protocol.ServiceId"] }, {"name":"parseOrNull","parameterTypes":["java.lang.String"] }, {"name":"parseOrNull","parameterTypes":["okio.ByteString"] }, {"name":"parseOrNull","parameterTypes":["byte[]"] }, {"name":"parseOrThrow","parameterTypes":["java.lang.String"] }, {"name":"parseOrThrow","parameterTypes":["okio.ByteString"] }, {"name":"parseOrThrow","parameterTypes":["byte[]"] }]
+  "methods":[{"name":"equals","parameterTypes":["java.lang.Object"] }, {"name":"fromLibSignal","parameterTypes":["org.signal.libsignal.protocol.ServiceId"] }, {"name":"hashCode","parameterTypes":[] }, {"name":"parseOrNull","parameterTypes":["java.lang.String"] }, {"name":"parseOrNull","parameterTypes":["java.lang.String","boolean"] }, {"name":"parseOrNull","parameterTypes":["okio.ByteString"] }, {"name":"parseOrNull","parameterTypes":["byte[]"] }, {"name":"parseOrThrow","parameterTypes":["java.lang.String"] }, {"name":"parseOrThrow","parameterTypes":["okio.ByteString"] }, {"name":"parseOrThrow","parameterTypes":["byte[]"] }, {"name":"toString","parameterTypes":[] }]
 },
 {
   "name":"org.whispersystems.signalservice.api.push.ServiceId$PNI"
index d80de2f8633ee27277cd1bc4bf5098bf9d8d37be..84b9f0e654c681afc95760a90ab91bd1e13dd995 100644 (file)
@@ -202,24 +202,15 @@ public class SendHelper {
         }
         try {
             return messageSender.sendSyncMessage(message);
-        } catch (UnregisteredUserException e) {
+        } catch (Throwable e) {
             var address = context.getRecipientHelper().resolveSignalServiceAddress(account.getSelfRecipientId());
-            return SendMessageResult.unregisteredFailure(address);
-        } catch (ProofRequiredException e) {
-            var address = context.getRecipientHelper().resolveSignalServiceAddress(account.getSelfRecipientId());
-            return SendMessageResult.proofRequiredFailure(address, e);
-        } catch (RateLimitException e) {
-            var address = context.getRecipientHelper().resolveSignalServiceAddress(account.getSelfRecipientId());
-            logger.warn("Sending failed due to rate limiting from the signal server: {}", e.getMessage());
-            return SendMessageResult.rateLimitFailure(address, e);
-        } catch (org.whispersystems.signalservice.api.crypto.UntrustedIdentityException e) {
-            var address = context.getRecipientHelper().resolveSignalServiceAddress(account.getSelfRecipientId());
-            return SendMessageResult.identityFailure(address, e.getIdentityKey());
-        } catch (IOException e) {
-            var address = context.getRecipientHelper().resolveSignalServiceAddress(account.getSelfRecipientId());
-            logger.warn("Failed to send message due to IO exception: {}", e.getMessage());
-            logger.debug("Exception", e);
-            return SendMessageResult.networkFailure(address);
+            try {
+                return SignalServiceMessageSender.mapSendErrorToSendResult(e, System.currentTimeMillis(), address);
+            } catch (IOException ex) {
+                logger.warn("Failed to send message due to IO exception: {}", e.getMessage());
+                logger.debug("Exception", e);
+                return SendMessageResult.networkFailure(address);
+            }
         }
     }
 
@@ -704,19 +695,14 @@ public class SendHelper {
                         context.getUnidentifiedAccessHelper().getSealedSenderAccessFor(newRecipientId),
                         includePniSignature);
             }
-        } catch (UnregisteredUserException e) {
-            return SendMessageResult.unregisteredFailure(address);
-        } catch (ProofRequiredException e) {
-            return SendMessageResult.proofRequiredFailure(address, e);
-        } catch (RateLimitException e) {
-            logger.warn("Sending failed due to rate limiting from the signal server: {}", e.getMessage());
-            return SendMessageResult.rateLimitFailure(address, e);
-        } catch (org.whispersystems.signalservice.api.crypto.UntrustedIdentityException e) {
-            return SendMessageResult.identityFailure(address, e.getIdentityKey());
-        } catch (IOException e) {
-            logger.warn("Failed to send message due to IO exception: {}", e.getMessage());
-            logger.debug("Exception", e);
-            return SendMessageResult.networkFailure(address);
+        } catch (Throwable e) {
+            try {
+                return SignalServiceMessageSender.mapSendErrorToSendResult(e, System.currentTimeMillis(), address);
+            } catch (IOException ex) {
+                logger.warn("Failed to send message due to IO exception: {}", e.getMessage());
+                logger.debug("Exception", e);
+                return SendMessageResult.networkFailure(address);
+            }
         }
     }
 
index 8c41b37d471c26504e8ef50ea649401a730feb28..e03e3059af9883b27260b33a4551b9a613a474f3 100644 (file)
@@ -15,7 +15,7 @@ dependencyResolutionManagement {
             library("slf4j.jul", "org.slf4j", "jul-to-slf4j").versionRef("slf4j")
             library("logback", "ch.qos.logback", "logback-classic").version("1.5.6")
 
-            library("signalservice", "com.github.turasa", "signal-service-java").version("2.15.3_unofficial_105")
+            library("signalservice", "com.github.turasa", "signal-service-java").version("2.15.3_unofficial_106")
             library("sqlite", "org.xerial", "sqlite-jdbc").version("3.46.0.0")
             library("hikari", "com.zaxxer", "HikariCP").version("5.1.0")
             library("junit.jupiter", "org.junit.jupiter", "junit-jupiter").version("5.10.2")
index 43db05315f023eca4b8e9a486c1e4a9cc82fc450..6fd1b21e1c77e91f6c07f35c0196ab49a92723df 100644 (file)
@@ -8,7 +8,7 @@ public class BaseConfig {
     public static final String PROJECT_VERSION = BaseConfig.class.getPackage().getImplementationVersion();
 
     static final String USER_AGENT_SIGNAL_ANDROID = Optional.ofNullable(System.getenv("SIGNAL_CLI_USER_AGENT"))
-            .orElse("Signal-Android/7.12.1");
+            .orElse("Signal-Android/7.14.1");
     static final String USER_AGENT_SIGNAL_CLI = PROJECT_NAME == null
             ? "signal-cli"
             : PROJECT_NAME + "/" + PROJECT_VERSION;