From e157ac7f549b158f395af825b60cb3364ee9bfa5 Mon Sep 17 00:00:00 2001 From: Nikita Koksharov Date: Mon, 20 Jan 2020 09:45:39 +0300 Subject: [PATCH] Improvement - natMap doesn't support port mapping --- .../java/org/redisson/cluster/ClusterConnectionManager.java | 4 ++++ .../org/redisson/connection/SentinelConnectionManager.java | 4 ++-- 2 files changed, 6 insertions(+), 2 deletions(-) diff --git a/redisson/src/main/java/org/redisson/cluster/ClusterConnectionManager.java b/redisson/src/main/java/org/redisson/cluster/ClusterConnectionManager.java index 3fb2f824c..d23f00b68 100644 --- a/redisson/src/main/java/org/redisson/cluster/ClusterConnectionManager.java +++ b/redisson/src/main/java/org/redisson/cluster/ClusterConnectionManager.java @@ -686,8 +686,12 @@ public class ClusterConnectionManager extends MasterSlaveConnectionManager { return result; } + @Override public RedisURI applyNatMap(RedisURI address) { String mappedAddress = natMap.get(address.getHost() + ":" + address.getPort()); + if (mappedAddress == null && natMap.get(address.getHost()) != null) { + mappedAddress = natMap.get(address.getHost()) + ":" + address.getPort(); + } if (mappedAddress != null) { return new RedisURI(address.getScheme() + "://" + mappedAddress); } diff --git a/redisson/src/main/java/org/redisson/connection/SentinelConnectionManager.java b/redisson/src/main/java/org/redisson/connection/SentinelConnectionManager.java index c531095c6..516719543 100755 --- a/redisson/src/main/java/org/redisson/connection/SentinelConnectionManager.java +++ b/redisson/src/main/java/org/redisson/connection/SentinelConnectionManager.java @@ -637,8 +637,8 @@ public class SentinelConnectionManager extends MasterSlaveConnectionManager { private String applyNatMap(String ip, int port) { String mappedAddress = natMap.get(ip + ":" + port); - if (mappedAddress == null) { - mappedAddress = natMap.get(ip); + if (mappedAddress == null && natMap.get(ip) != null) { + mappedAddress = natMap.get(ip) + ":" + port; } if (mappedAddress != null) { return mappedAddress;