aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorAnton Tananaev <anton.tananaev@gmail.com>2016-10-15 08:31:09 +1300
committerAnton Tananaev <anton.tananaev@gmail.com>2016-10-15 08:31:09 +1300
commitedaa07444d1363f3197cbd0f2c56f9ffe1000bf4 (patch)
tree2bcc142888dc889c011a5ebcccb6105a924491d8
parent974fccb9b808f2ff615f9c9e04f3b722301d2ace (diff)
downloadtrackermap-server-edaa07444d1363f3197cbd0f2c56f9ffe1000bf4.tar.gz
trackermap-server-edaa07444d1363f3197cbd0f2c56f9ffe1000bf4.tar.bz2
trackermap-server-edaa07444d1363f3197cbd0f2c56f9ffe1000bf4.zip
Option to ignore session cache (fix #2372)
-rw-r--r--debug.xml2
-rw-r--r--src/org/traccar/BaseProtocolDecoder.java11
2 files changed, 13 insertions, 0 deletions
diff --git a/debug.xml b/debug.xml
index 0b07ed140..58ae764f6 100644
--- a/debug.xml
+++ b/debug.xml
@@ -43,6 +43,8 @@
<entry key='deviceManager.lookupGroupsAttribute'>true</entry>
+ <entry key='decoder.ignoreSessionCache'>false</entry>
+
<entry key='event.enable'>true</entry>
<entry key='event.overspeedHandler'>true</entry>
<entry key='event.overspeed.notRepeat'>true</entry>
diff --git a/src/org/traccar/BaseProtocolDecoder.java b/src/org/traccar/BaseProtocolDecoder.java
index 15f5471e9..f1101567d 100644
--- a/src/org/traccar/BaseProtocolDecoder.java
+++ b/src/org/traccar/BaseProtocolDecoder.java
@@ -89,6 +89,17 @@ public abstract class BaseProtocolDecoder extends ExtendedObjectDecoder {
}
public DeviceSession getDeviceSession(Channel channel, SocketAddress remoteAddress, String... uniqueIds) {
+ if (Context.getConfig().getBoolean("decoder.ignoreSessionCache")) {
+ long deviceId = findDeviceId(remoteAddress, uniqueIds);
+ if (deviceId != 0) {
+ if (Context.getConnectionManager() != null) {
+ Context.getConnectionManager().addActiveDevice(deviceId, protocol, channel, remoteAddress);
+ }
+ return new DeviceSession(deviceId);
+ } else {
+ return null;
+ }
+ }
if (channel instanceof DatagramChannel) {
long deviceId = findDeviceId(remoteAddress, uniqueIds);
DeviceSession deviceSession = addressDeviceSessions.get(remoteAddress);