]> nmode's Git Repositories - signal-cli/blobdiff - src/main/java/cli/Main.java
Fix coding issues
[signal-cli] / src / main / java / cli / Main.java
index 2a0cfe461c56933fcb613e03fdd09ac740fdfb9e..319ca42ae1cf4c9512440ac01b460b1c0683fe41 100644 (file)
@@ -20,6 +20,7 @@ import net.sourceforge.argparse4j.ArgumentParsers;
 import net.sourceforge.argparse4j.impl.Arguments;
 import net.sourceforge.argparse4j.inf.*;
 import org.apache.commons.io.IOUtils;
 import net.sourceforge.argparse4j.impl.Arguments;
 import net.sourceforge.argparse4j.inf.*;
 import org.apache.commons.io.IOUtils;
+import org.whispersystems.libaxolotl.InvalidMessageException;
 import org.whispersystems.textsecure.api.crypto.UntrustedIdentityException;
 import org.whispersystems.textsecure.api.messages.*;
 import org.whispersystems.textsecure.api.messages.multidevice.TextSecureSyncMessage;
 import org.whispersystems.textsecure.api.crypto.UntrustedIdentityException;
 import org.whispersystems.textsecure.api.messages.*;
 import org.whispersystems.textsecure.api.messages.multidevice.TextSecureSyncMessage;
@@ -144,6 +145,12 @@ public class Main {
                     m.receiveMessages(5, true, new ReceiveMessageHandler(m));
                 } catch (IOException e) {
                     System.out.println("Error while receiving message: " + e.getMessage());
                     m.receiveMessages(5, true, new ReceiveMessageHandler(m));
                 } catch (IOException e) {
                     System.out.println("Error while receiving message: " + e.getMessage());
+                    System.exit(3);
+                } catch (AssertionError e) {
+                    System.out.println("Failed to receive message (Assertion): " + e.getMessage());
+                    System.out.println(e.getStackTrace());
+                    System.out.println("If you use an Oracle JRE please check if you have unlimited strength crypto enabled, see README");
+                    System.exit(1);
                 }
                 break;
         }
                 }
                 break;
         }
@@ -216,11 +223,16 @@ public class Main {
             for (UntrustedIdentityException n : e.getUntrustedIdentityExceptions()) {
                 System.out.println("Untrusted Identity for \"" + n.getE164Number() + "\": " + n.getMessage());
             }
             for (UntrustedIdentityException n : e.getUntrustedIdentityExceptions()) {
                 System.out.println("Untrusted Identity for \"" + n.getE164Number() + "\": " + n.getMessage());
             }
+        } catch (AssertionError e) {
+            System.out.println("Failed to send message (Assertion): " + e.getMessage());
+            System.out.println(e.getStackTrace());
+            System.out.println("If you use an Oracle JRE please check if you have unlimited strength crypto enabled, see README");
+            System.exit(1);
         }
     }
 
     private static class ReceiveMessageHandler implements Manager.ReceiveMessageHandler {
         }
     }
 
     private static class ReceiveMessageHandler implements Manager.ReceiveMessageHandler {
-        Manager m;
+        final Manager m;
 
         public ReceiveMessageHandler(Manager m) {
             this.m = m;
 
         public ReceiveMessageHandler(Manager m) {
             this.m = m;
@@ -251,6 +263,12 @@ public class Main {
                                 System.out.println("- " + attachment.getContentType() + " (" + (attachment.isPointer() ? "Pointer" : "") + (attachment.isStream() ? "Stream" : "") + ")");
                                 if (attachment.isPointer()) {
                                     System.out.println("  Id: " + attachment.asPointer().getId() + " Key length: " + attachment.asPointer().getKey().length + (attachment.asPointer().getRelay().isPresent() ? " Relay: " + attachment.asPointer().getRelay().get() : ""));
                                 System.out.println("- " + attachment.getContentType() + " (" + (attachment.isPointer() ? "Pointer" : "") + (attachment.isStream() ? "Stream" : "") + ")");
                                 if (attachment.isPointer()) {
                                     System.out.println("  Id: " + attachment.asPointer().getId() + " Key length: " + attachment.asPointer().getKey().length + (attachment.asPointer().getRelay().isPresent() ? " Relay: " + attachment.asPointer().getRelay().get() : ""));
+                                    try {
+                                        File file = m.retrieveAttachment(attachment.asPointer());
+                                        System.out.println("  Stored plaintext in: " + file);
+                                    } catch (IOException | InvalidMessageException e) {
+                                        System.out.println("Failed to retrieve attachment: " + e.getMessage());
+                                    }
                                 }
                             }
                         }
                                 }
                             }
                         }