aboutsummaryrefslogtreecommitdiff
path: root/src/main
diff options
context:
space:
mode:
Diffstat (limited to 'src/main')
-rw-r--r--src/main/java/org/traccar/BaseProtocolDecoder.java6
-rw-r--r--src/main/java/org/traccar/config/Keys.java21
2 files changed, 24 insertions, 3 deletions
diff --git a/src/main/java/org/traccar/BaseProtocolDecoder.java b/src/main/java/org/traccar/BaseProtocolDecoder.java
index 71e43df5c..a40756796 100644
--- a/src/main/java/org/traccar/BaseProtocolDecoder.java
+++ b/src/main/java/org/traccar/BaseProtocolDecoder.java
@@ -63,7 +63,7 @@ public abstract class BaseProtocolDecoder extends ExtendedObjectDecoder {
}
public String getServer(Channel channel, char delimiter) {
- String server = config.getString(getProtocolName() + ".server");
+ String server = config.getString(Keys.PROTOCOL_SERVER.withPrefix(getProtocolName()));
if (server == null && channel != null) {
InetSocketAddress address = (InetSocketAddress) channel.localAddress();
server = address.getAddress().getHostAddress() + ":" + address.getPort();
@@ -148,8 +148,8 @@ public abstract class BaseProtocolDecoder extends ExtendedObjectDecoder {
public DeviceSession getDeviceSession(
Channel channel, SocketAddress remoteAddress, boolean ignoreCache, String... uniqueIds) {
if (channel != null && BasePipelineFactory.getHandler(channel.pipeline(), HttpRequestDecoder.class) != null
- || ignoreCache || config.getBoolean(getProtocolName() + ".ignoreSessionCache")
- || config.getBoolean("decoder.ignoreSessionCache")) {
+ || ignoreCache || config.getBoolean(Keys.PROTOCOL_IGNORE_SESSIONS_CACHE.withPrefix(getProtocolName()))
+ || config.getBoolean(Keys.DECODER_IGNORE_SESSIONS_CACHE)) {
long deviceId = findDeviceId(remoteAddress, uniqueIds);
if (deviceId != 0) {
if (connectionManager != null) {
diff --git a/src/main/java/org/traccar/config/Keys.java b/src/main/java/org/traccar/config/Keys.java
index d443509e5..598cac66f 100644
--- a/src/main/java/org/traccar/config/Keys.java
+++ b/src/main/java/org/traccar/config/Keys.java
@@ -138,6 +138,27 @@ public final class Keys {
Collections.singletonList(KeyType.GLOBAL));
/**
+ * Some devices require server address confirmation. Use this parameter to configure correct public address.
+ */
+ public static final ConfigSuffix<String> PROTOCOL_SERVER = new ConfigSuffix<>(
+ ".server",
+ Collections.singletonList(KeyType.GLOBAL));
+
+ /**
+ * Skip device connection session cache. Per protocol configuration.
+ */
+ public static final ConfigSuffix<Boolean> PROTOCOL_IGNORE_SESSIONS_CACHE = new ConfigSuffix<>(
+ ".ignoreSessionCache",
+ Collections.singletonList(KeyType.GLOBAL));
+
+ /**
+ * Skip device connection session cache. Global configuration.
+ */
+ public static final ConfigKey<Boolean> DECODER_IGNORE_SESSIONS_CACHE = new ConfigKey<>(
+ "decoder.ignoreSessionCache",
+ Collections.singletonList(KeyType.GLOBAL));
+
+ /**
* Server wide connection timeout value in seconds. See protocol timeout for more information.
*/
public static final ConfigKey<Integer> SERVER_TIMEOUT = new ConfigKey<>(