In some situations involving Internet access not being fully
functional, gnutls_handshake returns a fatal error, which we were
ignoring, causing us to call gnutls_handshake again. Now we check for
the error and return it to the caller.
* src/gnutls.c (gnutls_try_handshake): Return immediately if
gnutls_handshake returns a fatal error (Bug#46709).
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);