Don't reset the client when processCommand returns REDIS_ERR

This commit is contained in:
Pieter Noordhuis 2010-10-15 17:27:05 +02:00
parent dc11daf3b5
commit 9da6caac4e
2 changed files with 8 additions and 4 deletions

View File

@ -820,9 +820,13 @@ void processInputBuffer(redisClient *c) {
}
/* Multibulk processing could see a <= 0 length. */
if (c->argc > 0)
processCommand(c);
if (c->argc == 0) {
resetClient(c);
} else {
/* Only reset the client when the command was executed. */
if (processCommand(c) == REDIS_OK)
resetClient(c);
}
}
}

View File

@ -955,7 +955,7 @@ int processCommand(redisClient *c) {
addReply(c,shared.queued);
} else {
if (server.vm_enabled && server.vm_max_threads > 0 &&
blockClientOnSwappedKeys(c,cmd)) return 1;
blockClientOnSwappedKeys(c,cmd)) return REDIS_ERR;
call(c,cmd);
}
return REDIS_OK;