From 704f2d76ba3c24dceecabd3fd473d973c29f7699 Mon Sep 17 00:00:00 2001 From: AsamK Date: Wed, 8 Jul 2015 11:52:06 +0200 Subject: [PATCH] Exit on timeout when receiving - Could be made optional in the future - Sending messages while receiving results in damaged session state because both save their own state --- src/main/java/cli/Main.java | 3 ++- src/main/java/cli/Manager.java | 6 ++++-- 2 files changed, 6 insertions(+), 3 deletions(-) diff --git a/src/main/java/cli/Main.java b/src/main/java/cli/Main.java index 4aec1920..4cdbb806 100644 --- a/src/main/java/cli/Main.java +++ b/src/main/java/cli/Main.java @@ -186,7 +186,7 @@ public class Main { System.exit(1); } try { - m.receiveMessages(new Manager.ReceiveMessageHandler() { + m.receiveMessages(5, true, new Manager.ReceiveMessageHandler() { @Override public void handleMessage(TextSecureEnvelope envelope) { System.out.println("Envelope from: " + envelope.getSource()); @@ -233,5 +233,6 @@ public class Main { break; } m.save(); + System.exit(0); } } diff --git a/src/main/java/cli/Manager.java b/src/main/java/cli/Manager.java index 177cae78..acaa1a0c 100644 --- a/src/main/java/cli/Manager.java +++ b/src/main/java/cli/Manager.java @@ -187,7 +187,7 @@ public class Manager { void handleMessage(TextSecureEnvelope envelope); } - public void receiveMessages(ReceiveMessageHandler handler) throws IOException { + public void receiveMessages(int timeoutSeconds, boolean returnOnTimeout, ReceiveMessageHandler handler) throws IOException { TextSecureMessageReceiver messageReceiver = new TextSecureMessageReceiver(URL, TRUST_STORE, username, password, signalingKey); TextSecureMessagePipe messagePipe = null; @@ -197,9 +197,11 @@ public class Manager { while (true) { TextSecureEnvelope envelope; try { - envelope = messagePipe.read(1, TimeUnit.MINUTES); + envelope = messagePipe.read(timeoutSeconds, TimeUnit.SECONDS); handler.handleMessage(envelope); } catch (TimeoutException e) { + if (returnOnTimeout) + return; } catch (InvalidVersionException e) { System.out.println("Ignoring error: " + e.getMessage()); } -- 2.50.1