summaryrefslogtreecommitdiffstats
path: root/src/com
diff options
context:
space:
mode:
Diffstat (limited to 'src/com')
-rw-r--r--src/com/isode/stroke/base/ByteArray.java10
-rw-r--r--src/com/isode/stroke/base/SafeByteArray.java10
-rw-r--r--src/com/isode/stroke/filetransfer/ByteArrayReadBytestream.java10
-rw-r--r--src/com/isode/stroke/filetransfer/OutgoingJingleFileTransfer.java3
-rw-r--r--src/com/isode/stroke/filetransfer/SOCKS5BytestreamClientSession.java15
-rw-r--r--src/com/isode/stroke/filetransfer/SOCKS5BytestreamServerSession.java17
-rw-r--r--src/com/isode/stroke/network/DummyNetworkEnvironment.java32
7 files changed, 76 insertions, 21 deletions
diff --git a/src/com/isode/stroke/base/ByteArray.java b/src/com/isode/stroke/base/ByteArray.java
index 997cc6e..f1181f5 100644
--- a/src/com/isode/stroke/base/ByteArray.java
+++ b/src/com/isode/stroke/base/ByteArray.java
@@ -5,3 +5,3 @@
/*
- * Copyright (c) 2010-2015, Isode Limited, London, England.
+ * Copyright (c) 2010-2016, Isode Limited, London, England.
* All rights reserved.
@@ -63,2 +63,10 @@ public class ByteArray {
}
+
+ /**
+ * Constructs a new {@link ByteArray} containing the user supplied byte.
+ * @param b a byte.
+ */
+ public ByteArray(byte b) {
+ append(b);
+ }
diff --git a/src/com/isode/stroke/base/SafeByteArray.java b/src/com/isode/stroke/base/SafeByteArray.java
index 437346f..f07cbe1 100644
--- a/src/com/isode/stroke/base/SafeByteArray.java
+++ b/src/com/isode/stroke/base/SafeByteArray.java
@@ -1,3 +1,3 @@
/*
- * Copyright (c) 2011-2015, Isode Limited, London, England.
+ * Copyright (c) 2011-2016, Isode Limited, London, England.
* All rights reserved.
@@ -36,2 +36,10 @@ public class SafeByteArray extends ByteArray {
}
+
+ /**
+ * Constructs a new {@link SafeByteArray} containing the user supplied byte.
+ * @param b a byte.
+ */
+ public SafeByteArray(byte b) {
+ super(b);
+ }
diff --git a/src/com/isode/stroke/filetransfer/ByteArrayReadBytestream.java b/src/com/isode/stroke/filetransfer/ByteArrayReadBytestream.java
index 41528fa..5b3542f 100644
--- a/src/com/isode/stroke/filetransfer/ByteArrayReadBytestream.java
+++ b/src/com/isode/stroke/filetransfer/ByteArrayReadBytestream.java
@@ -1,3 +1,3 @@
/*
- * Copyright (c) 2010-2015 Isode Limited.
+ * Copyright (c) 2010-2016 Isode Limited.
* All rights reserved.
@@ -13,2 +13,4 @@ package com.isode.stroke.filetransfer;
+import java.util.Arrays;
+
import com.isode.stroke.base.ByteArray;
@@ -32,5 +34,5 @@ public class ByteArrayReadBytestream extends ReadBytestream {
}
- String s = data.toString();
- s = s.substring(position, position+readSize);
- ByteArray result = new ByteArray(s);
+ byte[] rawBytes = data.getData();
+ byte[] resultRawBytes = Arrays.copyOfRange(rawBytes, position, position+readSize);
+ ByteArray result = new ByteArray(resultRawBytes);
diff --git a/src/com/isode/stroke/filetransfer/OutgoingJingleFileTransfer.java b/src/com/isode/stroke/filetransfer/OutgoingJingleFileTransfer.java
index 10760a1..c5a1f11 100644
--- a/src/com/isode/stroke/filetransfer/OutgoingJingleFileTransfer.java
+++ b/src/com/isode/stroke/filetransfer/OutgoingJingleFileTransfer.java
@@ -6,3 +6,3 @@
/*
- * Copyright (c) 2013-2015 Isode Limited.
+ * Copyright (c) 2013-2016 Isode Limited.
* All rights reserved.
@@ -102,2 +102,3 @@ public class OutgoingJingleFileTransfer extends JingleFileTransfer implements Ou
this.fileInfo = fileInfo;
+ this.options = options;
this.session = session;
diff --git a/src/com/isode/stroke/filetransfer/SOCKS5BytestreamClientSession.java b/src/com/isode/stroke/filetransfer/SOCKS5BytestreamClientSession.java
index 3e51b5f..18e4484 100644
--- a/src/com/isode/stroke/filetransfer/SOCKS5BytestreamClientSession.java
+++ b/src/com/isode/stroke/filetransfer/SOCKS5BytestreamClientSession.java
@@ -57,3 +57,3 @@ public class SOCKS5BytestreamClientSession extends SOCKS5AbstractBytestreamSessi
- private ByteArray unprocessedData;
+ private final ByteArray unprocessedData = new ByteArray();
private ByteArray authenticateAddress;
@@ -229,8 +229,5 @@ public class SOCKS5BytestreamClientSession extends SOCKS5AbstractBytestreamSessi
logger_.fine("\n");
- SafeByteArray header = new SafeByteArray(new byte[]{0x05, 0x01, 0x00, 0x03});
- SafeByteArray message = header;
- String destinationlength = Integer.toString(destination.length());
- message.append(new SafeByteArray(destinationlength));
- authenticateAddress = new ByteArray(destination);
- message.append(authenticateAddress);
+ SafeByteArray message = new SafeByteArray(new byte[]{0x05, 0x01, 0x00, 0x03});
+ message.append((byte)destination.length());
+ message.append(destination);
message.append(new SafeByteArray(new byte[]{0x00, 0x00})); // 2 byte for port
@@ -326,3 +323,5 @@ public class SOCKS5BytestreamClientSession extends SOCKS5AbstractBytestreamSessi
connectFinishedConnection.disconnect();
- dataWrittenConnection.disconnect();
+ if (dataWrittenConnection != null) {
+ dataWrittenConnection.disconnect();
+ }
dataReadConnection.disconnect();
diff --git a/src/com/isode/stroke/filetransfer/SOCKS5BytestreamServerSession.java b/src/com/isode/stroke/filetransfer/SOCKS5BytestreamServerSession.java
index 8452e36..8facca0 100644
--- a/src/com/isode/stroke/filetransfer/SOCKS5BytestreamServerSession.java
+++ b/src/com/isode/stroke/filetransfer/SOCKS5BytestreamServerSession.java
@@ -17,2 +17,3 @@ import com.isode.stroke.base.ByteArray;
import com.isode.stroke.base.SafeByteArray;
+import com.isode.stroke.base.StartStoppable;
import com.isode.stroke.signals.SignalConnection;
@@ -25,3 +26,3 @@ import java.util.logging.Logger;
-public class SOCKS5BytestreamServerSession extends SOCKS5AbstractBytestreamSession {
+public class SOCKS5BytestreamServerSession extends SOCKS5AbstractBytestreamSession implements StartStoppable {
@@ -29,3 +30,3 @@ public class SOCKS5BytestreamServerSession extends SOCKS5AbstractBytestreamSess
private SOCKS5BytestreamRegistry bytestreams;
- private ByteArray unprocessedData;
+ private ByteArray unprocessedData = new ByteArray();
private State state;
@@ -133,4 +134,8 @@ public class SOCKS5BytestreamServerSession extends SOCKS5AbstractBytestreamSess
dataReadConnection.disconnect();
- dataWrittenConnection.disconnect();
- dataAvailableConnection.disconnect();
+ if (dataWrittenConnection != null) {
+ dataWrittenConnection.disconnect();
+ }
+ if (dataAvailableConnection != null) {
+ dataAvailableConnection.disconnect();
+ }
readBytestream = null;
@@ -182,6 +187,6 @@ public class SOCKS5BytestreamServerSession extends SOCKS5AbstractBytestreamSess
boolean hasBytestream = bytestreams.hasBytestream(streamID);
- SafeByteArray result = new SafeByteArray("0x05");
+ SafeByteArray result = new SafeByteArray((byte)0x05);
result.append(hasBytestream ? (byte)0x0 : (byte)0x4);
result.append(new ByteArray(new byte[]{0x00, 0x03}));
- result.append(Integer.toString(requestID.getSize()));
+ result.append((byte)requestID.getSize());
result.append(requestID.append(new ByteArray(new byte[]{0x00, 0x00})));
diff --git a/src/com/isode/stroke/network/DummyNetworkEnvironment.java b/src/com/isode/stroke/network/DummyNetworkEnvironment.java
new file mode 100644
index 0000000..32524d9
--- /dev/null
+++ b/src/com/isode/stroke/network/DummyNetworkEnvironment.java
@@ -0,0 +1,32 @@
+/* Copyright (c) 2016, Isode Limited, London, England.
+ * All rights reserved.
+ *
+ * Acquisition and use of this software and related materials for any
+ * purpose requires a written license agreement from Isode Limited,
+ * or a written license from an organisation licensed by Isode Limited
+ * to grant such a license.
+ *
+ */
+package com.isode.stroke.network;
+
+import java.util.Vector;
+
+/**
+ * Dummy {@link NetworkEnvironment} for testing, returns an empty vector
+ * of {@link NetworkInterface}
+ */
+public class DummyNetworkEnvironment extends NetworkEnvironment {
+
+ /**
+ * Constructor
+ */
+ public DummyNetworkEnvironment() {
+ // Empty Constructor
+ }
+
+ @Override
+ public Vector<NetworkInterface> getNetworkInterfaces() {
+ return new Vector<NetworkInterface>();
+ }
+
+}