From 28af51b156ef5734da023594ed7fdaa7f8c23ea2 Mon Sep 17 00:00:00 2001 From: akwizgran <michael@briarproject.org> Date: Sat, 15 Dec 2012 05:07:03 +0000 Subject: [PATCH] SLIP classes don't need to depend on SLTP classes. --- .../src/net/sf/briar/reliability/ReliabilityLayerImpl.java | 6 +++--- briar-core/src/net/sf/briar/reliability/SlipDecoder.java | 5 +++-- briar-core/src/net/sf/briar/reliability/SlipEncoder.java | 1 - 3 files changed, 6 insertions(+), 6 deletions(-) diff --git a/briar-core/src/net/sf/briar/reliability/ReliabilityLayerImpl.java b/briar-core/src/net/sf/briar/reliability/ReliabilityLayerImpl.java index 7b17ba877d..ed1df1a1a7 100644 --- a/briar-core/src/net/sf/briar/reliability/ReliabilityLayerImpl.java +++ b/briar-core/src/net/sf/briar/reliability/ReliabilityLayerImpl.java @@ -45,7 +45,7 @@ class ReliabilityLayerImpl implements ReliabilityLayer, WriteHandler { SlipEncoder encoder = new SlipEncoder(this); final Sender sender = new Sender(clock, encoder); receiver = new Receiver(clock, sender); - decoder = new SlipDecoder(receiver); + decoder = new SlipDecoder(receiver, Data.MAX_LENGTH); inputStream = new ReceiverInputStream(receiver); outputStream = new SenderOutputStream(sender); running = true; @@ -97,12 +97,12 @@ class ReliabilityLayerImpl implements ReliabilityLayer, WriteHandler { return outputStream; } - // The transport calls this method to pass data up to the SLIP decoder + // The lower layer calls this method to pass data up to the SLIP decoder public void handleRead(byte[] b) throws IOException { if(running) decoder.handleRead(b); } - // The SLIP encoder calls this method to pass data down to the transport + // The SLIP encoder calls this method to pass data down to the lower layer public void handleWrite(byte[] b) { if(running && b.length > 0) writes.add(b); } diff --git a/briar-core/src/net/sf/briar/reliability/SlipDecoder.java b/briar-core/src/net/sf/briar/reliability/SlipDecoder.java index cfe3a464e9..3d210139b4 100644 --- a/briar-core/src/net/sf/briar/reliability/SlipDecoder.java +++ b/briar-core/src/net/sf/briar/reliability/SlipDecoder.java @@ -11,13 +11,14 @@ class SlipDecoder implements ReadHandler { private static final byte TEND = (byte) 220, TESC = (byte) 221; private final ReadHandler readHandler; + private final byte[] buf; - private byte[] buf = new byte[Data.MAX_LENGTH]; private int decodedLength = 0; private boolean escape = false; - SlipDecoder(ReadHandler readHandler) { + SlipDecoder(ReadHandler readHandler, int maxDecodedLength) { this.readHandler = readHandler; + buf = new byte[maxDecodedLength]; } public void handleRead(byte[] b) throws IOException { diff --git a/briar-core/src/net/sf/briar/reliability/SlipEncoder.java b/briar-core/src/net/sf/briar/reliability/SlipEncoder.java index 4f2459779a..3cc6d6474c 100644 --- a/briar-core/src/net/sf/briar/reliability/SlipEncoder.java +++ b/briar-core/src/net/sf/briar/reliability/SlipEncoder.java @@ -17,7 +17,6 @@ class SlipEncoder implements WriteHandler { } public void handleWrite(byte[] b) throws IOException { - if(b.length > Data.MAX_LENGTH) throw new IllegalArgumentException(); int encodedLength = b.length + 2; for(int i = 0; i < b.length; i++) if(b[i] == END || b[i] == ESC) encodedLength++; -- GitLab