aboutsummaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
authorAnton Tananaev <anton.tananaev@gmail.com>2015-10-26 12:47:41 +1300
committerAnton Tananaev <anton.tananaev@gmail.com>2015-10-26 12:47:41 +1300
commitd938e1e4d8d54fec6aab26246b6b804d34addf66 (patch)
treea861e1320e1402f3c53db631317066d70ab61b50 /src
parentfbcc3d200aaf25bbe1a6cf30274dd169ecaa8b40 (diff)
downloadtraccar-server-d938e1e4d8d54fec6aab26246b6b804d34addf66.tar.gz
traccar-server-d938e1e4d8d54fec6aab26246b6b804d34addf66.tar.bz2
traccar-server-d938e1e4d8d54fec6aab26246b6b804d34addf66.zip
Modify Wondex frame decoder
Diffstat (limited to 'src')
-rw-r--r--src/org/traccar/helper/ChannelBufferTools.java31
-rw-r--r--src/org/traccar/protocol/WondexFrameDecoder.java9
2 files changed, 4 insertions, 36 deletions
diff --git a/src/org/traccar/helper/ChannelBufferTools.java b/src/org/traccar/helper/ChannelBufferTools.java
index ae6dfc830..d8d74b6ea 100644
--- a/src/org/traccar/helper/ChannelBufferTools.java
+++ b/src/org/traccar/helper/ChannelBufferTools.java
@@ -25,37 +25,6 @@ public final class ChannelBufferTools {
}
/**
- * Find string in network buffer
- */
- public static Integer find(
- ChannelBuffer buf,
- Integer start,
- Integer finish,
- String subString) {
-
- int index = start;
- boolean match;
-
- for (; index < finish; index++) {
- match = true;
-
- for (int i = 0; i < subString.length(); i++) {
- char c = (char) buf.getByte(index + i);
- if (c != subString.charAt(i)) {
- match = false;
- break;
- }
- }
-
- if (match) {
- return index;
- }
- }
-
- return null;
- }
-
- /**
* Convert hex to integer (length in hex digits)
*/
public static int readHexInteger(ChannelBuffer buf, int length) {
diff --git a/src/org/traccar/protocol/WondexFrameDecoder.java b/src/org/traccar/protocol/WondexFrameDecoder.java
index 1a66c9373..eee112e9d 100644
--- a/src/org/traccar/protocol/WondexFrameDecoder.java
+++ b/src/org/traccar/protocol/WondexFrameDecoder.java
@@ -20,6 +20,7 @@ import org.jboss.netty.channel.Channel;
import org.jboss.netty.channel.ChannelHandlerContext;
import org.jboss.netty.handler.codec.frame.FrameDecoder;
import org.traccar.helper.ChannelBufferTools;
+import org.traccar.helper.StringFinder;
public class WondexFrameDecoder extends FrameDecoder {
@@ -27,9 +28,7 @@ public class WondexFrameDecoder extends FrameDecoder {
@Override
protected Object decode(
- ChannelHandlerContext ctx,
- Channel channel,
- ChannelBuffer buf) throws Exception {
+ ChannelHandlerContext ctx, Channel channel, ChannelBuffer buf) throws Exception {
if (buf.readableBytes() < KEEP_ALIVE_LENGTH) {
return null;
@@ -45,8 +44,8 @@ public class WondexFrameDecoder extends FrameDecoder {
} else {
- Integer index = ChannelBufferTools.find(buf, buf.readerIndex(), buf.writerIndex(), "\r\n");
- if (index != null) {
+ int index = buf.indexOf(buf.readerIndex(), buf.writerIndex(), new StringFinder("\r\n"));
+ if (index != -1) {
ChannelBuffer frame = buf.readBytes(index - buf.readerIndex());
buf.skipBytes(2);
return frame;