redis-cli: Do not use hostsocket when we got redirected in cluster mode (#8870)

When redis-cli was used with both -c (cluster) and -s (unix socket),
it would have kept trying to use that unix socket, even if it got
redirected by the cluster (resulting in an infinite loop).

(cherry picked from commit 416f2773395ffcd72d8d8408e1558f49d59a0077)
This commit is contained in:
Binbin 2021-04-28 18:19:55 +08:00 committed by Oran Agra
parent ee542fbbd9
commit e919deac12

View File

@ -844,7 +844,9 @@ static int cliConnect(int flags) {
cliRefreshPrompt(); cliRefreshPrompt();
} }
if (config.hostsocket == NULL) { /* Do not use hostsocket when we got redirected in cluster mode */
if (config.hostsocket == NULL ||
(config.cluster_mode && config.cluster_reissue_command)) {
context = redisConnect(config.hostip,config.hostport); context = redisConnect(config.hostip,config.hostport);
} else { } else {
context = redisConnectUnix(config.hostsocket); context = redisConnectUnix(config.hostsocket);