summaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
authordickmao <none>2021-06-19 15:19:04 +0200
committerLars Ingebrigtsen <larsi@gnus.org>2021-06-19 15:19:04 +0200
commit234bf1b6363a3d5db8e73c422d87a0bf1aa4b2e3 (patch)
tree8e4e87f1dd9604714b877c1cc668c90ad2802594 /src
parent1293ece4613319629f08926d78b6cd5afdc9b2e9 (diff)
downloademacs-234bf1b6363a3d5db8e73c422d87a0bf1aa4b2e3.tar.gz
De-obfuscate gnutls_handshake loop
* src/gnutls.c (gnutls_try_handshake): Rewrite the handshake loop for greater clarity (bug#49055).
Diffstat (limited to 'src')
-rw-r--r--src/gnutls.c11
1 files changed, 3 insertions, 8 deletions
diff --git a/src/gnutls.c b/src/gnutls.c
index 4d5a909db0d..22e7f2cbc17 100644
--- a/src/gnutls.c
+++ b/src/gnutls.c
@@ -625,16 +625,11 @@ gnutls_try_handshake (struct Lisp_Process *proc)
while ((ret = gnutls_handshake (state)) < 0)
{
- if (gnutls_error_is_fatal (ret))
- return emacs_gnutls_handle_error (state, ret);
- do
- ret = gnutls_handshake (state);
- while (ret == GNUTLS_E_INTERRUPTED);
-
- if (0 <= ret || emacs_gnutls_handle_error (state, ret) == 0
- || non_blocking)
+ if (emacs_gnutls_handle_error (state, ret) == 0) /* fatal */
break;
maybe_quit ();
+ if (non_blocking && ret != GNUTLS_E_INTERRUPTED)
+ break;
}
proc->gnutls_initstage = GNUTLS_STAGE_HANDSHAKE_TRIED;