From 50a8f5a6256e810216853cf0772dd5bc1e1d6c63 Mon Sep 17 00:00:00 2001 From: Balint Molnar Date: Thu, 28 Mar 2024 15:16:10 +0100 Subject: [PATCH] Set ssl engine fail when return is not eagain erestartsys or ewouldblock --- src/ssl/ssl_io.c | 11 ++++++----- 1 file changed, 6 insertions(+), 5 deletions(-) diff --git a/src/ssl/ssl_io.c b/src/ssl/ssl_io.c index ed88c89..5bad81b 100644 --- a/src/ssl/ssl_io.c +++ b/src/ssl/ssl_io.c @@ -121,13 +121,14 @@ run_until(br_sslio_context *ctx, unsigned target) buf = br_ssl_engine_recvrec_buf(ctx->engine, &len); rlen = ctx->low_read(ctx->read_context, buf, len); - if (rlen <= 0) { - // br_ssl_engine_fail(ctx->engine, BR_ERR_IO); + if (rlen <= 0) + { + if (rlen != -ERESTARTSYS && rlen != -EAGAIN && rlen != -EWOULDBLOCK) + br_ssl_engine_fail(ctx->engine, BR_ERR_IO); return rlen; } - if (rlen > 0) { - br_ssl_engine_recvrec_ack(ctx->engine, rlen); - } + + br_ssl_engine_recvrec_ack(ctx->engine, rlen); continue; }