If command is a shutdown, ignore errors on reply

This commit is contained in:
Bruno Deferrari 2010-05-14 11:04:01 -03:00
parent ba798261ce
commit a57d9cc437

View File

@ -356,6 +356,7 @@ static int selectDb(int fd) {
static int cliSendCommand(int argc, char **argv, int repeat) { static int cliSendCommand(int argc, char **argv, int repeat) {
struct redisCommand *rc = lookupCommand(argv[0]); struct redisCommand *rc = lookupCommand(argv[0]);
int shutdown = 0;
int fd, j, retval = 0; int fd, j, retval = 0;
sds cmd; sds cmd;
@ -370,6 +371,8 @@ static int cliSendCommand(int argc, char **argv, int repeat) {
fprintf(stderr,"Wrong number of arguments for '%s'\n",rc->name); fprintf(stderr,"Wrong number of arguments for '%s'\n",rc->name);
return 1; return 1;
} }
if (!strcasecmp(rc->name,"shutdown")) shutdown = 1;
if (!strcasecmp(rc->name,"monitor")) config.monitor_mode = 1; if (!strcasecmp(rc->name,"monitor")) config.monitor_mode = 1;
if (!strcasecmp(rc->name,"subscribe") || if (!strcasecmp(rc->name,"subscribe") ||
!strcasecmp(rc->name,"psubscribe")) config.pubsub_mode = 1; !strcasecmp(rc->name,"psubscribe")) config.pubsub_mode = 1;
@ -408,7 +411,7 @@ static int cliSendCommand(int argc, char **argv, int repeat) {
retval = cliReadReply(fd); retval = cliReadReply(fd);
if (retval) { if (retval) {
return retval; return shutdown ? 0 : retval;
} }
} }
return 0; return 0;