Fix "can't bind to address" error reporting.

Report the actual port used for the listening attempt instead of
server.port.

Originally, Redis would just listen on server.port.
But, with clustering, Redis uses a Cluster Port too,
so we can't say server.port is always where we are listening.

If you tried to launch Redis with a too-high port number (any
port where Port+10000 > 65535), Redis would refuse to start, but
only print an error saying it can't connect to the Redis port.

This patch fixes much confusions.
This commit is contained in:
Matt Stancliff
2014-02-19 17:26:33 -05:00
committed by antirez
parent 4d5ba5962c
commit 6f4b5ef6d5

View File

@ -1582,7 +1582,7 @@ int listenToPort(int port, int *fds, int *count) {
redisLog(REDIS_WARNING, redisLog(REDIS_WARNING,
"Creating Server TCP listening socket %s:%d: %s", "Creating Server TCP listening socket %s:%d: %s",
server.bindaddr[j] ? server.bindaddr[j] : "*", server.bindaddr[j] ? server.bindaddr[j] : "*",
server.port, server.neterr); port, server.neterr);
return REDIS_ERR; return REDIS_ERR;
} }
(*count)++; (*count)++;