summaryrefslogtreecommitdiff
path: root/deps/hiredis
diff options
context:
space:
mode:
authorantirez <antirez@gmail.com>2018-12-06 11:33:58 +0100
committerantirez <antirez@gmail.com>2019-01-09 17:00:30 +0100
commitee4c355a3e5f46ed9ce5749228f9c15e2b1be427 (patch)
treea6b0e393fe853c21a2d7ff6f1484c7c71eeaddf1 /deps/hiredis
parentb8134dbfa734426c43741e8cd50bbdc5a7295dd1 (diff)
downloadredis-ee4c355a3e5f46ed9ce5749228f9c15e2b1be427.tar.gz
RESP3: hiredis: implement null type.
Diffstat (limited to 'deps/hiredis')
-rw-r--r--deps/hiredis/read.c9
1 files changed, 9 insertions, 0 deletions
diff --git a/deps/hiredis/read.c b/deps/hiredis/read.c
index 2726d4481..32f1c9220 100644
--- a/deps/hiredis/read.c
+++ b/deps/hiredis/read.c
@@ -308,6 +308,11 @@ static int processLineItem(redisReader *r) {
} else {
obj = (void*)REDIS_REPLY_DOUBLE;
}
+ } else if (cur->type == REDIS_REPLY_NIL) {
+ if (r->fn && r->fn->createNil)
+ obj = r->fn->createNil(cur);
+ else
+ obj = (void*)REDIS_REPLY_NIL;
} else {
/* Type will be error or status. */
if (r->fn && r->fn->createString)
@@ -493,6 +498,9 @@ static int processItem(redisReader *r) {
case ',':
cur->type = REDIS_REPLY_DOUBLE;
break;
+ case '_':
+ cur->type = REDIS_REPLY_NIL;
+ break;
case '$':
cur->type = REDIS_REPLY_STRING;
break;
@@ -521,6 +529,7 @@ static int processItem(redisReader *r) {
case REDIS_REPLY_STATUS:
case REDIS_REPLY_INTEGER:
case REDIS_REPLY_DOUBLE:
+ case REDIS_REPLY_NIL:
return processLineItem(r);
case REDIS_REPLY_STRING:
return processBulkItem(r);