aboutsummaryrefslogtreecommitdiff
path: root/src/org
diff options
context:
space:
mode:
Diffstat (limited to 'src/org')
-rw-r--r--src/org/traccar/DetectorHandler.java122
-rw-r--r--src/org/traccar/ServerManager.java26
2 files changed, 1 insertions, 147 deletions
diff --git a/src/org/traccar/DetectorHandler.java b/src/org/traccar/DetectorHandler.java
deleted file mode 100644
index 223985906..000000000
--- a/src/org/traccar/DetectorHandler.java
+++ /dev/null
@@ -1,122 +0,0 @@
-/*
- * Copyright 2015 Anton Tananaev (anton.tananaev@gmail.com)
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-package org.traccar;
-
-import org.jboss.netty.buffer.ChannelBuffer;
-import org.jboss.netty.channel.Channel;
-import org.jboss.netty.channel.ChannelHandlerContext;
-import org.jboss.netty.channel.ChannelPipeline;
-import org.jboss.netty.channel.MessageEvent;
-import org.jboss.netty.channel.SimpleChannelHandler;
-import org.jboss.netty.handler.codec.frame.FrameDecoder;
-import org.jboss.netty.handler.codec.string.StringDecoder;
-import org.traccar.helper.Log;
-
-import java.lang.reflect.Method;
-import java.net.SocketAddress;
-import java.util.List;
-
-public class DetectorHandler extends SimpleChannelHandler {
-
- private final List<TrackerServer> serverList;
-
- private boolean showFailed;
-
- DetectorHandler(List<TrackerServer> serverList) {
- this.serverList = serverList;
- }
-
- public void checkPipeline(String protocol, ChannelPipeline pipeline, ChannelBuffer buf) throws Exception {
- Object tmp = buf.duplicate();
-
- // Frame decoder
- FrameDecoder frameDecoder = (FrameDecoder) pipeline.get("frameDecoder");
- if (frameDecoder != null) {
- try {
- Method method = frameDecoder.getClass().getDeclaredMethod(
- "decode", ChannelHandlerContext.class, Channel.class, ChannelBuffer.class);
- method.setAccessible(true);
- tmp = method.invoke(frameDecoder, null, null, tmp);
- } catch (NoSuchMethodException error) {
- Method method = frameDecoder.getClass().getSuperclass().getDeclaredMethod(
- "decode", ChannelHandlerContext.class, Channel.class, ChannelBuffer.class);
- method.setAccessible(true);
- tmp = method.invoke(frameDecoder, null, null, tmp);
- }
- }
-
- // String decoder
- if (pipeline.get("stringDecoder") != null) {
- StringDecoder stringDecoder = new StringDecoder();
- if (tmp != null) {
- try {
- Method method = stringDecoder.getClass().getDeclaredMethod(
- "decode", ChannelHandlerContext.class, Channel.class, Object.class);
- method.setAccessible(true);
- tmp = method.invoke(stringDecoder, null, null, tmp);
- } catch (NoSuchMethodException error) {
- Method method = stringDecoder.getClass().getSuperclass().getDeclaredMethod(
- "decode", ChannelHandlerContext.class, Channel.class, Object.class);
- method.setAccessible(true);
- tmp = method.invoke(stringDecoder, null, null, tmp);
- }
- }
- }
-
- // Protocol decoder
- BaseProtocolDecoder protocolDecoder = (BaseProtocolDecoder) pipeline.get("objectDecoder");
- if (tmp != null) {
- try {
- Method method = protocolDecoder.getClass().getDeclaredMethod(
- "decode", ChannelHandlerContext.class, Channel.class, SocketAddress.class, Object.class);
- method.setAccessible(true);
- tmp = method.invoke(protocolDecoder, null, null, null, tmp);
- } catch (NoSuchMethodException error) {
- Method method = protocolDecoder.getClass().getSuperclass().getDeclaredMethod(
- "decode", ChannelHandlerContext.class, Channel.class, SocketAddress.class, Object.class);
- method.setAccessible(true);
- tmp = method.invoke(protocolDecoder, null, null, null, tmp);
- }
- }
-
- if (tmp != null) {
- Log.info("Protocol " + protocol + " possible match");
- } else if (showFailed) {
- Log.info("Protocol " + protocol + " no match");
- }
- }
-
- @Override
- public void messageReceived(ChannelHandlerContext ctx, MessageEvent e) {
-
- if (e.getMessage() instanceof ChannelBuffer) {
- ChannelBuffer buf = (ChannelBuffer) e.getMessage();
-
- for (TrackerServer server : serverList) {
- try {
- if (!server.getProtocol().equals("detector")) {
- checkPipeline(server.getProtocol(), server.getPipelineFactory().getPipeline(), buf);
- }
- } catch (Exception error) {
- if (showFailed) {
- Log.info("Protocol " + server.getProtocol() + " error");
- }
- }
- }
- }
- }
-
-}
diff --git a/src/org/traccar/ServerManager.java b/src/org/traccar/ServerManager.java
index 08557a5d6..2fa44831f 100644
--- a/src/org/traccar/ServerManager.java
+++ b/src/org/traccar/ServerManager.java
@@ -68,8 +68,6 @@ public class ServerManager {
initProtocolServer((BaseProtocol) protocolClass.newInstance());
}
}
-
- initProtocolDetector();
}
public void start() {
@@ -88,30 +86,8 @@ public class ServerManager {
GlobalTimer.release();
}
- private boolean isProtocolEnabled(String protocol) {
- return Context.getConfig().hasKey(protocol + ".port");
- }
-
- private void initProtocolDetector() {
- String protocol = "detector";
- if (isProtocolEnabled(protocol)) {
- serverList.add(new TrackerServer(new ServerBootstrap(), protocol) {
- @Override
- protected void addSpecificHandlers(ChannelPipeline pipeline) {
- pipeline.addLast("detectorHandler", new DetectorHandler(serverList));
- }
- });
- serverList.add(new TrackerServer(new ConnectionlessBootstrap(), protocol) {
- @Override
- protected void addSpecificHandlers(ChannelPipeline pipeline) {
- pipeline.addLast("detectorHandler", new DetectorHandler(serverList));
- }
- });
- }
- }
-
private void initProtocolServer(final Protocol protocol) {
- if (isProtocolEnabled(protocol.getName())) {
+ if (Context.getConfig().hasKey(protocol.getName() + ".port")) {
protocol.initTrackerServers(serverList);
}
}