From 8e024b26068dc29318759d15afe6963d9b6a3a01 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Micha=C3=ABl=20Van=20Canneyt?= Date: Sun, 5 Nov 2023 10:25:44 +0100 Subject: [PATCH] * Fix by Dokkie8844 to treat error codes by GnuTLS in a more graceful manner. Fixes issue #40195 --- packages/gnutls/src/gnutlssockets.pp | 8 ++++++-- 1 file changed, 6 insertions(+), 2 deletions(-) diff --git a/packages/gnutls/src/gnutlssockets.pp b/packages/gnutls/src/gnutlssockets.pp index ac8a01e109..15945ab602 100644 --- a/packages/gnutls/src/gnutlssockets.pp +++ b/packages/gnutls/src/gnutlssockets.pp @@ -588,7 +588,9 @@ Var begin P:=PByte(@Buffer); - Result:=Check(gnutls_record_send(Fsession,P,Count)); + repeat + Result:=Check(gnutls_record_send(FSession,P,Count)); + until (Result <> GNUTLS_E_AGAIN) and (Result <> GNUTLS_E_INTERRUPTED); if Result<0 then Result:=-1; end; @@ -600,7 +602,9 @@ Var begin P:=PByte(@Buffer); - Result:=Check(gnutls_record_recv(FSession,P,Count)); + repeat + Result:=Check(gnutls_record_recv(FSession,P,Count)); + until (Result <> GNUTLS_E_AGAIN) and (Result <> GNUTLS_E_INTERRUPTED); if Result<0 then Result:=-1; end;