Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- diff --git a/src/org/traccar/protocol/WatchFrameDecoder.java b/src/org/traccar/protocol/WatchFrameDecoder.java
- index 826a8b4d..c1a1c868 100644
- --- a/src/org/traccar/protocol/WatchFrameDecoder.java
- +++ b/src/org/traccar/protocol/WatchFrameDecoder.java
- @@ -21,7 +21,6 @@ import org.jboss.netty.channel.Channel;
- import org.jboss.netty.channel.ChannelHandlerContext;
- import org.jboss.netty.handler.codec.frame.FrameDecoder;
- -import java.nio.charset.StandardCharsets;
- public class WatchFrameDecoder extends FrameDecoder {
- @@ -34,11 +33,9 @@ public class WatchFrameDecoder extends FrameDecoder {
- if (buf.readableBytes() >= MESSAGE_HEADER) {
- ChannelBuffer lengthBuffer = ChannelBuffers.dynamicBuffer();
- buf.getBytes(buf.readerIndex() + MESSAGE_HEADER - 4 - 1, lengthBuffer, 4);
- - int length = Integer.parseInt(lengthBuffer.toString(StandardCharsets.US_ASCII), 16) + MESSAGE_HEADER + 1;
- - if (buf.readableBytes() >= length) {
- + if (buf.readableBytes() >= 10) {
- ChannelBuffer frame = ChannelBuffers.dynamicBuffer();
- - int endIndex = buf.readerIndex() + length;
- - while (buf.readerIndex() < endIndex) {
- + while (true) {
- byte b = buf.readByte();
- if (b == 0x7D) {
- switch (buf.readByte()) {
- @@ -63,6 +60,9 @@ public class WatchFrameDecoder extends FrameDecoder {
- } else {
- frame.writeByte(b);
- }
- + if (b == 0x5D) { // await the terminating ']' character;
- + break;
- + }
- }
- return frame;
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement