diff --git a/hiredis.c b/hiredis.c index 664cc44..0b7a17e 100644 --- a/hiredis.c +++ b/hiredis.c @@ -326,6 +326,15 @@ void redisFreeReplyReader(void *reader) { free(r); } +int redisIsReplyReaderEmpty(void *reader) { + redisReader *r = reader; + if (r->buf != NULL && sdslen(r->buf) > 0) + return 0; + if (r->rlist != NULL && r->rpos < r->rlen) + return 0; + return 1; +} + static void redisSetReplyReaderError(redisReader *r, redisReply *error) { /* Clear remaining buffer when we see a protocol error. */ if (r->buf != NULL) { diff --git a/hiredis.h b/hiredis.h index 85fc540..482072e 100644 --- a/hiredis.h +++ b/hiredis.h @@ -54,6 +54,7 @@ void freeReplyObject(redisReply *r); redisReply *redisCommand(int fd, const char *format, ...); void *redisCreateReplyReader(); void redisFreeReplyReader(void *ptr); +int redisIsReplyReaderEmpty(void *ptr); void *redisFeedReplyReader(void *reader, char *buf, int len); #endif