X-Git-Url: https://git.saurik.com/redis.git/blobdiff_plain/0ace6ce463695df1ff4c7ba848554f4c9b822f36..6856c7b4d64f6afc00249128fc952c575d8c84bf:/src/networking.c diff --git a/src/networking.c b/src/networking.c index 3979ab62..7ed5c6fc 100644 --- a/src/networking.c +++ b/src/networking.c @@ -625,6 +625,8 @@ void resetClient(redisClient *c) { c->reqtype = 0; c->multibulklen = 0; c->bulklen = -1; + /* We clear the ASKING flag as well if we are not inside a MULTI. */ + if (!(c->flags & REDIS_MULTI)) c->flags &= (~REDIS_ASKING); } void closeTimedoutClients(void) { @@ -703,7 +705,7 @@ int processMultibulkBuffer(redisClient *c) { if (c->multibulklen == 0) { /* The client should have been reset */ - redisAssert(c->argc == 0); + redisAssertWithInfo(c,NULL,c->argc == 0); /* Multi bulk length cannot be read without a \r\n */ newline = strchr(c->querybuf,'\r'); @@ -716,7 +718,7 @@ int processMultibulkBuffer(redisClient *c) { /* We know for sure there is a whole line since newline != NULL, * so go ahead and find out the multi bulk length. */ - redisAssert(c->querybuf[0] == '*'); + redisAssertWithInfo(c,NULL,c->querybuf[0] == '*'); ok = string2ll(c->querybuf+1,newline-(c->querybuf+1),&ll); if (!ok || ll > 1024*1024) { addReplyError(c,"Protocol error: invalid multibulk length"); @@ -737,7 +739,7 @@ int processMultibulkBuffer(redisClient *c) { c->argv = zmalloc(sizeof(robj*)*c->multibulklen); } - redisAssert(c->multibulklen > 0); + redisAssertWithInfo(c,NULL,c->multibulklen > 0); while(c->multibulklen) { /* Read bulk length if unknown */ if (c->bulklen == -1) { @@ -970,7 +972,7 @@ void rewriteClientCommandVector(redisClient *c, int argc, ...) { c->argv = argv; c->argc = argc; c->cmd = lookupCommand(c->argv[0]->ptr); - redisAssert(c->cmd != NULL); + redisAssertWithInfo(c,NULL,c->cmd != NULL); va_end(ap); } @@ -979,7 +981,7 @@ void rewriteClientCommandVector(redisClient *c, int argc, ...) { void rewriteClientCommandArgument(redisClient *c, int i, robj *newval) { robj *oldval; - redisAssert(i < c->argc); + redisAssertWithInfo(c,NULL,i < c->argc); oldval = c->argv[i]; c->argv[i] = newval; incrRefCount(newval); @@ -988,6 +990,6 @@ void rewriteClientCommandArgument(redisClient *c, int i, robj *newval) { /* If this is the command name make sure to fix c->cmd. */ if (i == 0) { c->cmd = lookupCommand(c->argv[0]->ptr); - redisAssert(c->cmd != NULL); + redisAssertWithInfo(c,NULL,c->cmd != NULL); } }