diff options
-rw-r--r-- | src/main/java/org/traccar/BaseProtocolDecoder.java | 6 | ||||
-rw-r--r-- | src/main/java/org/traccar/config/Keys.java | 21 |
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<>( |