From a6777f1fe15756aa5c95694f2a90fe9dfd57896d Mon Sep 17 00:00:00 2001 From: akwizgran <michael@briarproject.org> Date: Fri, 7 Dec 2012 15:40:03 +0000 Subject: [PATCH] Ensure each reliability layer is started and stopped. --- briar-core/src/net/sf/briar/plugins/modem/ModemImpl.java | 3 ++- .../src/net/sf/briar/plugins/modem/ReliabilityLayer.java | 1 + 2 files changed, 3 insertions(+), 1 deletion(-) diff --git a/briar-core/src/net/sf/briar/plugins/modem/ModemImpl.java b/briar-core/src/net/sf/briar/plugins/modem/ModemImpl.java index 2961232287..45ca855b2e 100644 --- a/briar-core/src/net/sf/briar/plugins/modem/ModemImpl.java +++ b/briar-core/src/net/sf/briar/plugins/modem/ModemImpl.java @@ -49,6 +49,7 @@ class ModemImpl implements Modem, WriteHandler, SerialPortEventListener { connected = new AtomicBoolean(false); line = new byte[MAX_LINE_LENGTH]; reliabilityLayer = new ReliabilityLayer(this); + reliabilityLayer.start(); } public void start() throws IOException { @@ -69,7 +70,6 @@ class ModemImpl implements Modem, WriteHandler, SerialPortEventListener { } if(!foundBaudRate) throw new IOException("Could not find a suitable baud rate"); - reliabilityLayer.start(); port.addEventListener(this); port.purgePort(PURGE_RXCLEAR | PURGE_TXCLEAR); port.writeBytes("ATZ\r\n".getBytes("US-ASCII")); // Reset @@ -150,6 +150,7 @@ class ModemImpl implements Modem, WriteHandler, SerialPortEventListener { } reliabilityLayer.stop(); reliabilityLayer = new ReliabilityLayer(this); + reliabilityLayer.start(); connected.set(false); offHook.release(); } diff --git a/briar-core/src/net/sf/briar/plugins/modem/ReliabilityLayer.java b/briar-core/src/net/sf/briar/plugins/modem/ReliabilityLayer.java index 838c9c46b8..edf67ac576 100644 --- a/briar-core/src/net/sf/briar/plugins/modem/ReliabilityLayer.java +++ b/briar-core/src/net/sf/briar/plugins/modem/ReliabilityLayer.java @@ -70,6 +70,7 @@ class ReliabilityLayer implements ReadHandler, WriteHandler { } void stop() { + if(!running) throw new IllegalStateException(); running = false; receiver.invalidate(); writes.add(new byte[0]); // Poison pill -- GitLab