aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorChristian Schneppe <christian.schneppe@pix-art.de>2019-10-26 16:52:31 +0200
committerChristian Schneppe <christian.schneppe@pix-art.de>2019-10-26 16:52:31 +0200
commit41e055953391700001da179fc251d2a304fa4157 (patch)
tree4905c701fb71b4326feb6ec90c720b80c0afd54b
parent25eb08ae486bb7342632478c4f7c818f178cad76 (diff)
fully read port in socks connection
incoming direct connections in receive mode wouldn’t clear the entire destination from the input stream; thus adding a leading 0x00 to the file
-rw-r--r--src/main/java/de/pixart/messenger/utils/SocksSocketFactory.java2
-rw-r--r--src/main/java/de/pixart/messenger/xmpp/jingle/JingleSocks5Transport.java5
2 files changed, 4 insertions, 3 deletions
diff --git a/src/main/java/de/pixart/messenger/utils/SocksSocketFactory.java b/src/main/java/de/pixart/messenger/utils/SocksSocketFactory.java
index 8a251a6a0..266bb9d8c 100644
--- a/src/main/java/de/pixart/messenger/utils/SocksSocketFactory.java
+++ b/src/main/java/de/pixart/messenger/utils/SocksSocketFactory.java
@@ -50,7 +50,7 @@ public class SocksSocketFactory {
return false;
}
- public static Socket createSocket(InetSocketAddress address, String destination, int port) throws IOException {
+ private static Socket createSocket(InetSocketAddress address, String destination, int port) throws IOException {
Socket socket = new Socket();
try {
socket.connect(address, Config.CONNECT_TIMEOUT * 1000);
diff --git a/src/main/java/de/pixart/messenger/xmpp/jingle/JingleSocks5Transport.java b/src/main/java/de/pixart/messenger/xmpp/jingle/JingleSocks5Transport.java
index 1fc69ec6f..5d3cef8ae 100644
--- a/src/main/java/de/pixart/messenger/xmpp/jingle/JingleSocks5Transport.java
+++ b/src/main/java/de/pixart/messenger/xmpp/jingle/JingleSocks5Transport.java
@@ -118,7 +118,8 @@ public class JingleSocks5Transport extends JingleTransport {
int destinationCount = inputStream.read();
final byte[] destination = new byte[destinationCount];
inputStream.read(destination);
- final int port = inputStream.read();
+ final byte[] port = new byte[2];
+ inputStream.read(port);
final String receivedDestination = new String(destination);
final ByteBuffer response = ByteBuffer.allocate(7 + destination.length);
final byte[] responseHeader;
@@ -134,7 +135,7 @@ public class JingleSocks5Transport extends JingleTransport {
response.put(responseHeader);
response.put((byte) destination.length);
response.put(destination);
- response.putShort((short) port);
+ response.put(port);
outputStream.write(response.array());
outputStream.flush();
if (success) {