From 28b54b5d94c3d5b139dfa434f4cca7ffcc61b0f6 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 dbceb6ce..38a37346 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; } @@ -649,6 +651,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);