summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorJoey Grover <joeygrover@gmail.com>2017-02-16 14:53:59 -0500
committerJoey Grover <joeygrover@gmail.com>2017-02-16 14:53:59 -0500
commitce208c273ab4fa3844e10ea389b79215fc7f2397 (patch)
tree047c21b59de843531f97b756ae3bb720e24f8760
parent1f6f6a232009f02e632635adb4b0555f56747b5b (diff)
downloadsdl_android-bugfix/issue_418.tar.gz
Refactor all streaming classes to use sessions MTU rather than arbitrary values.bugfix/issue_418
-rw-r--r--sdl_android_lib/src/com/smartdevicelink/streaming/AbstractPacketizer.java8
-rw-r--r--sdl_android_lib/src/com/smartdevicelink/streaming/StreamPacketizer.java8
-rw-r--r--sdl_android_lib/src/com/smartdevicelink/streaming/StreamRPCPacketizer.java3
3 files changed, 11 insertions, 8 deletions
diff --git a/sdl_android_lib/src/com/smartdevicelink/streaming/AbstractPacketizer.java b/sdl_android_lib/src/com/smartdevicelink/streaming/AbstractPacketizer.java
index b4ee3ed1f..81dbdd0b0 100644
--- a/sdl_android_lib/src/com/smartdevicelink/streaming/AbstractPacketizer.java
+++ b/sdl_android_lib/src/com/smartdevicelink/streaming/AbstractPacketizer.java
@@ -10,13 +10,13 @@ import com.smartdevicelink.proxy.RPCRequest;
abstract public class AbstractPacketizer {
protected IStreamListener _streamListener = null;
- private final static int BUFF_READ_SIZE = 1000000;
protected byte _rpcSessionID = 0;
protected SessionType _serviceType = null;
protected SdlSession _session = null;
protected InputStream is = null;
- protected byte[] buffer = new byte[BUFF_READ_SIZE];
+ protected int bufferSize;
+ protected byte[] buffer;
protected boolean upts = false;
protected RPCRequest _request = null;
protected byte _wiproVersion = 1;
@@ -30,6 +30,8 @@ abstract public class AbstractPacketizer {
_rpcSessionID = rpcSessionID;
_serviceType = sType;
this._session = session;
+ bufferSize = this._session.getMtu();
+ buffer = new byte[bufferSize];
}
public AbstractPacketizer(IStreamListener streamListener, InputStream is, RPCRequest request, SessionType sType, byte rpcSessionID, byte wiproVersion, SdlSession session) throws IOException {
@@ -40,6 +42,8 @@ abstract public class AbstractPacketizer {
_request = request;
_wiproVersion = wiproVersion;
this._session = session;
+ bufferSize = this._session.getMtu();
+ buffer = new byte[bufferSize];
}
public abstract void start() throws IOException;
diff --git a/sdl_android_lib/src/com/smartdevicelink/streaming/StreamPacketizer.java b/sdl_android_lib/src/com/smartdevicelink/streaming/StreamPacketizer.java
index a71da63f1..525d94739 100644
--- a/sdl_android_lib/src/com/smartdevicelink/streaming/StreamPacketizer.java
+++ b/sdl_android_lib/src/com/smartdevicelink/streaming/StreamPacketizer.java
@@ -20,17 +20,17 @@ public class StreamPacketizer extends AbstractPacketizer implements Runnable{
private Object mPauseLock;
private boolean mPaused;
private boolean isServiceProtected = false;
- private int bufferSize = BUFF_READ_SIZE;
public StreamPacketizer(IStreamListener streamListener, InputStream is, SessionType sType, byte rpcSessionID, SdlSession session) throws IOException {
super(streamListener, is, sType, rpcSessionID, session);
mPauseLock = new Object();
mPaused = false;
isServiceProtected = _session.isServiceProtected(_serviceType);
- if(!isServiceProtected){ //If our service is encrypted we can only use 1024 as the max buffer size. If it's not, we can use the default MTU for the current session
- bufferSize = _session.getMtu();
+ if(isServiceProtected){ //If our service is encrypted we can only use 1024 as the max buffer size.
+ bufferSize = BUFF_READ_SIZE;
+ buffer = new byte[bufferSize];
}
- buffer = new byte[bufferSize];
+
}
public void start() throws IOException {
diff --git a/sdl_android_lib/src/com/smartdevicelink/streaming/StreamRPCPacketizer.java b/sdl_android_lib/src/com/smartdevicelink/streaming/StreamRPCPacketizer.java
index 2fc35a5a9..5652aafc3 100644
--- a/sdl_android_lib/src/com/smartdevicelink/streaming/StreamRPCPacketizer.java
+++ b/sdl_android_lib/src/com/smartdevicelink/streaming/StreamRPCPacketizer.java
@@ -26,7 +26,6 @@ import com.smartdevicelink.proxy.rpc.listeners.OnPutFileUpdateListener;
public class StreamRPCPacketizer extends AbstractPacketizer implements IPutFileResponseListener, Runnable{
private Integer iInitialCorrID = 0;
- private final static int BUFF_READ_SIZE = 1000000;
private Hashtable<Integer, OnStreamRPC> notificationList = new Hashtable<Integer, OnStreamRPC>();
private Thread thread = null;
private long lFileSize = 0;
@@ -192,7 +191,7 @@ public class StreamRPCPacketizer extends AbstractPacketizer implements IPutFileR
}
}
- length = is.read(buffer, 0, BUFF_READ_SIZE);
+ length = is.read(buffer, 0, bufferSize);
if (length == -1)
stop();