summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorantirez <antirez@gmail.com>2013-07-11 16:38:30 +0200
committerantirez <antirez@gmail.com>2013-07-11 16:38:40 +0200
commit73ae8558c17a486a694f49dede5a6febed99e9e5 (patch)
tree929d675bb18366489f0f53a1914cf778c444becc
parent3fc7f324d243c718d8076e9dcc71e0990deb8192 (diff)
downloadredis-ipv6.tar.gz
Sentinel: embed IPv6 address into [] when naming slave/sentinel instance.ipv6
-rw-r--r--src/sentinel.c8
1 files changed, 6 insertions, 2 deletions
diff --git a/src/sentinel.c b/src/sentinel.c
index 62473b5c1..659de29b8 100644
--- a/src/sentinel.c
+++ b/src/sentinel.c
@@ -835,7 +835,9 @@ sentinelRedisInstance *createSentinelRedisInstance(char *name, int flags, char *
/* For slaves and sentinel we use ip:port as name. */
if (flags & (SRI_SLAVE|SRI_SENTINEL)) {
- snprintf(slavename,sizeof(slavename),"%s:%d",hostname,port);
+ snprintf(slavename,sizeof(slavename),
+ strchr(hostname,':') ? "[%s]:%d" : "%s:%d",
+ hostname,port);
name = slavename;
}
@@ -943,7 +945,9 @@ sentinelRedisInstance *sentinelRedisInstanceLookupSlave(
sentinelRedisInstance *slave;
redisAssert(ri->flags & SRI_MASTER);
- key = sdscatprintf(sdsempty(),"%s:%d",ip,port);
+ key = sdscatprintf(sdsempty(),
+ strchr(ip,':') ? "[%s]:%d" : "%s:%d",
+ ip,port);
slave = dictFetchValue(ri->slaves,key);
sdsfree(key);
return slave;