diff options
| -rw-r--r-- | hiredis.c | 14 | 
1 files changed, 5 insertions, 9 deletions
| @@ -800,15 +800,11 @@ int redisGetReply(redisContext *c, void **reply) {      void *aux = NULL;      /* Try to read pending replies */ -    if (__redisGetReply(c,&aux) == REDIS_ERR) { +    if (__redisGetReply(c,&aux) == REDIS_ERR)          return REDIS_ERR; -    } else { -        /* Return immediately if there was a pending reply */ -        if (aux != NULL) return REDIS_OK; -    }      /* For the blocking context, flush output buffer and read reply */ -    if (c->flags & REDIS_BLOCK) { +    if (aux == NULL && c->flags & REDIS_BLOCK) {          /* Write until done */          do {              if (redisBufferWrite(c,&wdone) == REDIS_ERR) @@ -822,10 +818,10 @@ int redisGetReply(redisContext *c, void **reply) {              if (__redisGetReply(c,&aux) == REDIS_ERR)                  return REDIS_ERR;          } while (aux == NULL); - -        /* Set reply object */ -        if (reply != NULL) *reply = aux;      } + +    /* Set reply object */ +    if (reply != NULL) *reply = aux;      return REDIS_OK;  } | 
