aboutsummaryrefslogtreecommitdiff
path: root/jim-aio.c
diff options
context:
space:
mode:
authorSteve Bennett <steveb@workware.net.au>2020-07-24 15:17:47 +1000
committerSteve Bennett <steveb@workware.net.au>2020-07-24 15:33:46 +1000
commit5508c2501ead3dd6fba1700cdcafd539c3636c33 (patch)
tree0b2cd0cdcd2821a148191ecc4fe2091f4bcc7e03 /jim-aio.c
parentda293a1eef2ddd709f10b63744032302ca3597d3 (diff)
downloadjimtcl-5508c2501ead3dd6fba1700cdcafd539c3636c33.zip
jimtcl-5508c2501ead3dd6fba1700cdcafd539c3636c33.tar.gz
jimtcl-5508c2501ead3dd6fba1700cdcafd539c3636c33.tar.bz2
aio: ssl: connection close isn't an error
A return code of SSL_ERROR_ZERO_RETURN means the connection was closed. It isn't an error. Signed-off-by: Steve Bennett <steveb@workware.net.au>
Diffstat (limited to 'jim-aio.c')
-rw-r--r--jim-aio.c6
1 files changed, 5 insertions, 1 deletions
diff --git a/jim-aio.c b/jim-aio.c
index 473aa7e..e189781 100644
--- a/jim-aio.c
+++ b/jim-aio.c
@@ -299,7 +299,11 @@ static const char *ssl_getline(struct AioFile *af, char *buf, int len)
static int ssl_error(const struct AioFile *af)
{
int ret = SSL_get_error(af->ssl, 0);
- if (ret == SSL_ERROR_SYSCALL || ret == 0) {
+ /* XXX should we be following the same logic as ssl_reader() here? */
+ if (ret == SSL_ERROR_ZERO_RETURN || ret == SSL_ERROR_NONE) {
+ return JIM_OK;
+ }
+ if (ret == SSL_ERROR_SYSCALL) {
return stdio_error(af);
}
return JIM_ERR;