From d2c2cb476b4df2d0c689adc4347b3ed0d72532d4 Mon Sep 17 00:00:00 2001 From: 0xboobface <0xboobface@gmail.com> Date: Fri, 3 Jul 2020 18:56:59 +0200 Subject: [PATCH] Fix MyFreeCams websocket message parsing --- .../main/java/ctbrec/sites/mfc/MyFreeCamsClient.java | 10 ++++++---- 1 file changed, 6 insertions(+), 4 deletions(-) diff --git a/common/src/main/java/ctbrec/sites/mfc/MyFreeCamsClient.java b/common/src/main/java/ctbrec/sites/mfc/MyFreeCamsClient.java index b78816fa..ade01494 100644 --- a/common/src/main/java/ctbrec/sites/mfc/MyFreeCamsClient.java +++ b/common/src/main/java/ctbrec/sites/mfc/MyFreeCamsClient.java @@ -455,17 +455,19 @@ public class MyFreeCamsClient { } private Message parseMessage(StringBuilder msgBuffer) throws UnsupportedEncodingException { - if (msgBuffer.length() < 4) { + int packetLengthBytes = 6; + if (msgBuffer.length() < packetLengthBytes) { // packet size not transmitted completely return null; } else { try { - int packetLength = Integer.parseInt(msgBuffer.substring(0, 4)); - if (packetLength > msgBuffer.length() - 4) { + int packetLength = Integer.parseInt(msgBuffer.substring(0, packetLengthBytes)); + if (packetLength > msgBuffer.length() - packetLengthBytes) { // packet not complete return null; } else { - msgBuffer.delete(0, 4); + LOG.trace("<-- {}", msgBuffer); + msgBuffer.delete(0, packetLengthBytes); StringBuilder rawMessage = new StringBuilder(msgBuffer.substring(0, packetLength)); int type = parseNextInt(rawMessage); int sender = parseNextInt(rawMessage);