summaryrefslogtreecommitdiff
path: root/extra/hiredis/libevent.h
diff options
context:
space:
mode:
Diffstat (limited to 'extra/hiredis/libevent.h')
-rw-r--r--extra/hiredis/libevent.h4
1 files changed, 3 insertions, 1 deletions
diff --git a/extra/hiredis/libevent.h b/extra/hiredis/libevent.h
index 6f7f9ad..be70b25 100644
--- a/extra/hiredis/libevent.h
+++ b/extra/hiredis/libevent.h
@@ -19,9 +19,11 @@ void libeventRedisReadEvent(int fd, short event, void *arg) {
event_add(&e->rev,NULL);
if (redisBufferRead(e->context) == REDIS_ERR) {
+ redisDisconnect(e->context);
e->err(e->context);
} else {
if (redisProcessCallbacks(e->context) == REDIS_ERR) {
+ redisDisconnect(e->context);
e->err(e->context);
}
}
@@ -33,7 +35,7 @@ void libeventRedisWriteEvent(int fd, short event, void *arg) {
int done = 0;
if (redisBufferWrite(e->context,&done) == REDIS_ERR) {
- /* Handle error */
+ redisDisconnect(e->context);
e->err(e->context);
} else {
/* Schedule write event again when writing is not done. */