Commit ce68caea authored by Matt Stancliff's avatar Matt Stancliff
Browse files

Cluster: error out quicker if port is unusable

The default cluster control port is 10,000 ports higher than
the base Redis port.  If Redis is started on a too-high port,
Cluster can't start and everything will exit later anyway.
parent b20ae393
...@@ -329,6 +329,19 @@ void clusterInit(void) { ...@@ -329,6 +329,19 @@ void clusterInit(void) {
/* We need a listening TCP port for our cluster messaging needs. */ /* We need a listening TCP port for our cluster messaging needs. */
server.cfd_count = 0; server.cfd_count = 0;
/* Port sanity check II
The other handshake port check is triggered too late to stop
us from trying to use a too-high cluster port number.
*/
if (server.port > (65535-REDIS_CLUSTER_PORT_INCR)) {
redisLog(REDIS_WARNING, "Redis port number too high. "
"Cluster communication port is 10,000 port "
"numbers higher than your Redis port. "
"Your Redis port number must be "
"lower than 55535.");
}
if (listenToPort(server.port+REDIS_CLUSTER_PORT_INCR, if (listenToPort(server.port+REDIS_CLUSTER_PORT_INCR,
server.cfd,&server.cfd_count) == REDIS_ERR) server.cfd,&server.cfd_count) == REDIS_ERR)
{ {
......
Markdown is supported
0% or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment