From 69692587055fefe65e930817ec3d45dbc9378cee Mon Sep 17 00:00:00 2001 From: Georg Hopp Date: Mon, 30 Sep 2013 22:59:11 +0100 Subject: [PATCH] fix the fix...with the last change taskrambler closes connections unexpectedly. Hopefully this fixes ssl handling. --- src/stream/read.c | 9 +++++---- src/stream/write.c | 7 ++++--- 2 files changed, 9 insertions(+), 7 deletions(-) diff --git a/src/stream/read.c b/src/stream/read.c index 2db19ae..7bfbdca 100644 --- a/src/stream/read.c +++ b/src/stream/read.c @@ -66,7 +66,9 @@ streamRead(Stream this, void * buf, size_t count) case STREAM_SSL: done = SSL_read((this->handle).ssl, buf, count); - if (0 >= done) { + if (0 == done) { + done = -2; + } else if (0 > done) { switch (SSL_get_error((this->handle).ssl, done)) { case SSL_ERROR_SYSCALL: { @@ -80,7 +82,7 @@ streamRead(Stream this, void * buf, size_t count) done = -1; break; default: - done = -2; + done = -1; break; } } @@ -100,7 +102,6 @@ streamRead(Stream this, void * buf, size_t count) // DROP THROUGH case SSL_ERROR_ZERO_RETURN: - default: done = -2; break; } @@ -109,7 +110,7 @@ streamRead(Stream this, void * buf, size_t count) break; default: - done = 0; + done = -2; break; } diff --git a/src/stream/write.c b/src/stream/write.c index edfc5e6..00aa9aa 100644 --- a/src/stream/write.c +++ b/src/stream/write.c @@ -70,7 +70,9 @@ streamWrite(Stream this, void * buf, size_t count) */ done = SSL_write((this->handle).ssl, buf, count); - if (0 >= done) { + if (0 == done) { + done = -2; + } else if (0 > done) { switch (SSL_get_error((this->handle).ssl, done)) { case SSL_ERROR_SYSCALL: { @@ -104,7 +106,6 @@ streamWrite(Stream this, void * buf, size_t count) // DROP THROUGH case SSL_ERROR_ZERO_RETURN: - default: done = -2; break; } @@ -113,7 +114,7 @@ streamWrite(Stream this, void * buf, size_t count) break; default: - done = 0; + done = -2; break; }