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; }