summaryrefslogtreecommitdiff
path: root/read.c
diff options
context:
space:
mode:
authorMichael Grunder <michael.grunder@gmail.com>2020-05-21 11:12:18 -0700
committerGitHub <noreply@github.com>2020-05-21 11:12:18 -0700
commit83bba659b9dbd6c77baf2ff27ff6342317869a3e (patch)
treefde9796e555b926aa5822fed02691859b84ee2e8 /read.c
parentc8999c66024b0de347adecb774d14963c08a66db (diff)
Add logic to handle RESP3 push messages (#819)
Fixes #815
Diffstat (limited to 'read.c')
-rw-r--r--read.c7
1 files changed, 6 insertions, 1 deletions
diff --git a/read.c b/read.c
index 835eb65..4924014 100644
--- a/read.c
+++ b/read.c
@@ -250,7 +250,8 @@ static void moveToNextTask(redisReader *r) {
prv = r->task[r->ridx-1];
assert(prv->type == REDIS_REPLY_ARRAY ||
prv->type == REDIS_REPLY_MAP ||
- prv->type == REDIS_REPLY_SET);
+ prv->type == REDIS_REPLY_SET ||
+ prv->type == REDIS_REPLY_PUSH);
if (cur->idx == prv->elements-1) {
r->ridx--;
} else {
@@ -562,6 +563,9 @@ static int processItem(redisReader *r) {
case '=':
cur->type = REDIS_REPLY_VERB;
break;
+ case '>':
+ cur->type = REDIS_REPLY_PUSH;
+ break;
default:
__redisReaderSetErrorProtocolByte(r,*p);
return REDIS_ERR;
@@ -587,6 +591,7 @@ static int processItem(redisReader *r) {
case REDIS_REPLY_ARRAY:
case REDIS_REPLY_MAP:
case REDIS_REPLY_SET:
+ case REDIS_REPLY_PUSH:
return processAggregateItem(r);
default:
assert(NULL);