From bbc1cd0bd9cb50e0734a98d066ccc7d0171fc652 Mon Sep 17 00:00:00 2001 From: Matt Stancliff Date: Fri, 28 Mar 2014 23:08:56 -0400 Subject: [PATCH] redis-cli: Re-attach selected DB after auth Previously, if you did SELECT then AUTH, redis-cli would show your SELECT'd db even though it didn't happen. Note: running into this situation is a (hopefully) very limited used case of people using multiple DBs and AUTH all at the same time. Fixes antirez#1639 --- src/redis-cli.c | 6 +++++- 1 file changed, 5 insertions(+), 1 deletion(-) diff --git a/src/redis-cli.c b/src/redis-cli.c index 907e62b7..8c3e013e 100644 --- a/src/redis-cli.c +++ b/src/redis-cli.c @@ -320,8 +320,10 @@ static int cliSelect() { reply = redisCommand(context,"SELECT %d",config.dbnum); if (reply != NULL) { + int result = REDIS_OK; + if (reply->type == REDIS_REPLY_ERROR) result = REDIS_ERR; freeReplyObject(reply); - return REDIS_OK; + return result; } return REDIS_ERR; } @@ -650,6 +652,8 @@ static int cliSendCommand(int argc, char **argv, int repeat) { if (!strcasecmp(command,"select") && argc == 2) { config.dbnum = atoi(argv[1]); cliRefreshPrompt(); + } else if (!strcasecmp(command,"auth") && argc == 2) { + cliSelect(); } } if (config.interval) usleep(config.interval);