From ca78446c55a09e9e871d55f8421da35016b7bda1 Mon Sep 17 00:00:00 2001 From: Geoff Garside Date: Sat, 18 Jun 2011 19:43:47 +0100 Subject: [PATCH] Mark places that might want changing for IPv6. Any places which I feel might want to be updated to work differently with IPv6 have been marked with a comment starting "IPV6:". Currently the only comments address places where an IP address is combined with a port using the standard : separated form. These may want to be changed when printing IPv6 addresses to wrap the address in [] such as [2001:db8::c0:ffee]:6379 instead of 2001:db8::c0:ffee:6379 as the latter format is a technically valid IPv6 address and it is hard to distinguish the IPv6 address component from the port unless you know the port is supposed to be there. --- src/cluster.c | 1 + src/networking.c | 1 + 2 files changed, 2 insertions(+) diff --git a/src/cluster.c b/src/cluster.c index b2b5ca43..195cfe5d 100644 --- a/src/cluster.c +++ b/src/cluster.c @@ -317,6 +317,7 @@ void clusterAcceptHandler(aeEventLoop *el, int fd, void *privdata, int mask) { redisLog(REDIS_VERBOSE,"Accepting cluster node: %s", server.neterr); return; } + /* IPV6: might want to wrap a v6 address in [] */ redisLog(REDIS_VERBOSE,"Accepted cluster node %s:%d", cip, cport); /* We need to create a temporary node in order to read the incoming * packet in a valid contest. This node will be released once we diff --git a/src/networking.c b/src/networking.c index e58db607..b220055f 100644 --- a/src/networking.c +++ b/src/networking.c @@ -1216,6 +1216,7 @@ void clientCommand(redisClient *c) { client = listNodeValue(ln); if (anetPeerToString(client->fd,ip,sizeof(ip),&port) == -1) continue; + /* IPV6: might want to wrap a v6 address in [] */ snprintf(addr,sizeof(addr),"%s:%d",ip,port); if (strcmp(addr,c->argv[2]->ptr) == 0) { addReply(c,shared.ok);