diff --git a/src/ssl.c b/src/ssl.c index a0feebe..82ed595 100644 --- a/src/ssl.c +++ b/src/ssl.c @@ -182,6 +182,10 @@ static int ssl_send(void *ctx, const char *data, size_t count, size_t *sent, ssl->error = SSL_ERROR_SSL; return LSEC_IO_SSL; } + /* Return failure when SSL reports syscall error + * but errno is not set to break send operation. */ + if (errno == 0) + return LSEC_IO_SSL; if (err == 0) return IO_CLOSED; return lsec_socket_error();