diff options
author | antirez <antirez@gmail.com> | 2013-07-11 16:38:30 +0200 |
---|---|---|
committer | antirez <antirez@gmail.com> | 2013-07-11 17:10:09 +0200 |
commit | 1e23848ed357f68bfb3dc60937f605cd147cb5f2 (patch) | |
tree | c294ed19a336407a9afc7bf65761a31af299cfff | |
parent | 076f6395b984d446e2d4b3b47e2f928371144a1a (diff) | |
download | redis-1e23848ed357f68bfb3dc60937f605cd147cb5f2.tar.gz |
Sentinel: embed IPv6 address into [] when naming slave/sentinel instance.
-rw-r--r-- | src/sentinel.c | 8 |
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; |