]> nmode's Git Repositories - signal-cli/blobdiff - src/main/java/org/asamk/signal/manager/ProvisioningManager.java
Request storage key after linking
[signal-cli] / src / main / java / org / asamk / signal / manager / ProvisioningManager.java
index 475c90b807b8459aecb11020afb93f154c68468e..535cecc6fc950bf9059b4af99e27a7b782bb0fc3 100644 (file)
@@ -1,5 +1,5 @@
 /*
-  Copyright (C) 2015-2020 AsamK and contributors
+  Copyright (C) 2015-2021 AsamK and contributors
 
   This program is free software: you can redistribute it and/or modify
   it under the terms of the GNU General Public License as published by
@@ -20,6 +20,8 @@ import org.asamk.signal.manager.storage.SignalAccount;
 import org.asamk.signal.manager.util.KeyUtils;
 import org.signal.zkgroup.InvalidInputException;
 import org.signal.zkgroup.profiles.ProfileKey;
+import org.slf4j.Logger;
+import org.slf4j.LoggerFactory;
 import org.whispersystems.libsignal.IdentityKeyPair;
 import org.whispersystems.libsignal.InvalidKeyException;
 import org.whispersystems.libsignal.util.KeyHelper;
@@ -38,6 +40,8 @@ import java.util.concurrent.TimeoutException;
 
 public class ProvisioningManager {
 
+    private final static Logger logger = LoggerFactory.getLogger(ProvisioningManager.class);
+
     private final PathConfig pathConfig;
     private final SignalServiceConfiguration serviceConfiguration;
     private final String userAgent;
@@ -117,12 +121,23 @@ public class ProvisioningManager {
 
             try (Manager m = new Manager(account, pathConfig, serviceConfiguration, userAgent)) {
 
-                m.refreshPreKeys();
-
-                m.requestSyncGroups();
-                m.requestSyncContacts();
-                m.requestSyncBlocked();
-                m.requestSyncConfiguration();
+                try {
+                    m.refreshPreKeys();
+                } catch (Exception e) {
+                    logger.error("Failed to refresh prekeys.");
+                    throw e;
+                }
+
+                try {
+                    m.requestSyncGroups();
+                    m.requestSyncContacts();
+                    m.requestSyncBlocked();
+                    m.requestSyncConfiguration();
+                    m.requestSyncKeys();
+                } catch (Exception e) {
+                    logger.error("Failed to request sync messages from linked device.");
+                    throw e;
+                }
 
                 m.close(false);
             }