From: dickmao Date: Sat, 19 Jun 2021 13:19:04 +0000 (+0200) Subject: De-obfuscate gnutls_handshake loop X-Git-Tag: archive/raspbian/1%29.2+1-2+rpi1^2~5^2~18^2~2331 X-Git-Url: https://dgit.raspbian.org/?a=commitdiff_plain;h=234bf1b6363a3d5db8e73c422d87a0bf1aa4b2e3;p=emacs.git De-obfuscate gnutls_handshake loop * src/gnutls.c (gnutls_try_handshake): Rewrite the handshake loop for greater clarity (bug#49055). --- 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;