Advertisement
Guest User

Untitled

a guest
Jan 4th, 2018
362
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Diff 1.74 KB | None | 0 0
  1. diff --git a/src/org/traccar/protocol/WatchFrameDecoder.java b/src/org/traccar/protocol/WatchFrameDecoder.java
  2. index 826a8b4d..c1a1c868 100644
  3. --- a/src/org/traccar/protocol/WatchFrameDecoder.java
  4. +++ b/src/org/traccar/protocol/WatchFrameDecoder.java
  5. @@ -21,7 +21,6 @@ import org.jboss.netty.channel.Channel;
  6.  import org.jboss.netty.channel.ChannelHandlerContext;
  7.  import org.jboss.netty.handler.codec.frame.FrameDecoder;
  8.  
  9. -import java.nio.charset.StandardCharsets;
  10.  
  11.  public class WatchFrameDecoder extends FrameDecoder {
  12.  
  13. @@ -34,11 +33,9 @@ public class WatchFrameDecoder extends FrameDecoder {
  14.          if (buf.readableBytes() >= MESSAGE_HEADER) {
  15.              ChannelBuffer lengthBuffer = ChannelBuffers.dynamicBuffer();
  16.              buf.getBytes(buf.readerIndex() + MESSAGE_HEADER - 4 - 1, lengthBuffer, 4);
  17. -            int length = Integer.parseInt(lengthBuffer.toString(StandardCharsets.US_ASCII), 16) + MESSAGE_HEADER + 1;
  18. -            if (buf.readableBytes() >= length) {
  19. +            if (buf.readableBytes() >= 10) {
  20.                  ChannelBuffer frame = ChannelBuffers.dynamicBuffer();
  21. -                int endIndex = buf.readerIndex() + length;
  22. -                while (buf.readerIndex() < endIndex) {
  23. +                while (true) {
  24.                      byte b = buf.readByte();
  25.                      if (b == 0x7D) {
  26.                          switch (buf.readByte()) {
  27. @@ -63,6 +60,9 @@ public class WatchFrameDecoder extends FrameDecoder {
  28.                      } else {
  29.                          frame.writeByte(b);
  30.                      }
  31. +                    if (b == 0x5D) { // await the terminating ']' character;
  32. +                        break;
  33. +                    }
  34.                  }
  35.                  return frame;
  36.              }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement