Commit a4f3f93b authored by antirez's avatar antirez
Browse files

new parsing code bugfixing

parent 34a719d2
...@@ -664,6 +664,8 @@ void closeTimedoutClients(void) { ...@@ -664,6 +664,8 @@ void closeTimedoutClients(void) {
} }
void processInputBuffer(redisClient *c) { void processInputBuffer(redisClient *c) {
int seeknewline = 0;
again: again:
/* Before to process the input buffer, make sure the client is not /* Before to process the input buffer, make sure the client is not
* waitig for a blocking operation such as BLPOP. Note that the first * waitig for a blocking operation such as BLPOP. Note that the first
...@@ -672,6 +674,9 @@ again: ...@@ -672,6 +674,9 @@ again:
* in the input buffer the client may be blocked, and the "goto again" * in the input buffer the client may be blocked, and the "goto again"
* will try to reiterate. The following line will make it return asap. */ * will try to reiterate. The following line will make it return asap. */
if (c->flags & REDIS_BLOCKED || c->flags & REDIS_IO_WAIT) return; if (c->flags & REDIS_BLOCKED || c->flags & REDIS_IO_WAIT) return;
if (seeknewline && c->bulklen == -1) c->newline = strchr(c->querybuf,'\n');
seeknewline = 1;
if (c->bulklen == -1) { if (c->bulklen == -1) {
/* Read the first line of the query */ /* Read the first line of the query */
size_t querylen; size_t querylen;
......
Markdown is supported
0% or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment