]> git.saurik.com Git - redis.git/commitdiff
Store SELECTed database for reconnect (issue #468)
authorPieter Noordhuis <pcnoordhuis@gmail.com>
Sun, 6 Mar 2011 19:46:40 +0000 (20:46 +0100)
committerPieter Noordhuis <pcnoordhuis@gmail.com>
Sun, 6 Mar 2011 19:46:49 +0000 (20:46 +0100)
src/redis-cli.c

index e19a555f4ba2415252b4ca0ee3f6fee0fdcf2329..fc2d4d73202bab87b746e45aa55daa64ffc946d0 100644 (file)
@@ -263,11 +263,9 @@ static int cliAuth() {
 /* Send SELECT dbnum to the server */
 static int cliSelect() {
     redisReply *reply;
 /* Send SELECT dbnum to the server */
 static int cliSelect() {
     redisReply *reply;
-    char dbnum[16];
     if (config.dbnum == 0) return REDIS_OK;
 
     if (config.dbnum == 0) return REDIS_OK;
 
-    snprintf(dbnum,sizeof(dbnum),"%d",config.dbnum);
-    reply = redisCommand(context,"SELECT %s",dbnum);
+    reply = redisCommand(context,"SELECT %d",config.dbnum);
     if (reply != NULL) {
         freeReplyObject(reply);
         return REDIS_OK;
     if (reply != NULL) {
         freeReplyObject(reply);
         return REDIS_OK;
@@ -491,6 +489,10 @@ static int cliSendCommand(int argc, char **argv, int repeat) {
         if (cliReadReply(output_raw) != REDIS_OK) {
             free(argvlen);
             return REDIS_ERR;
         if (cliReadReply(output_raw) != REDIS_OK) {
             free(argvlen);
             return REDIS_ERR;
+        } else {
+            /* Store database number when SELECT was successfully executed. */
+            if (!strcasecmp(command,"select") && argc == 2)
+                config.dbnum = atoi(argv[1]);
         }
     }
 
         }
     }