Commit 202ff53d authored by Noam Postavsky's avatar Noam Postavsky

Handle GNUTLS_E_AGAIN in emacs_gnutls_read (Bug#34341)

Don't merge to master, this has already been fixed there by 2019-01-15
"Fix unlikely races with GnuTLS, datagrams".
* src/gnutls.c (emacs_gnutls_read): Similar to emacs_gnutls_write,
when gnutls_record_recv returns GNUTLS_E_AGAIN set errno to EGAIN.
parent 02bee786
Pipeline #1652 passed with stage
in 27 minutes and 28 seconds
......@@ -753,8 +753,15 @@ emacs_gnutls_read (struct Lisp_Process *proc, char *buf, ptrdiff_t nbyte)
/* The peer closed the connection. */
return 0;
else if (emacs_gnutls_handle_error (state, rtnval))
/* non-fatal error */
return -1;
{
/* If we get GNUTLS_E_AGAIN, then set errno appropriately so that
wait_reading_process_output retries the correct way instead of
erroring out. */
if (rtnval == GNUTLS_E_AGAIN)
errno = EAGAIN;
/* non-fatal error */
return -1;
}
else {
/* a fatal error occurred */
return 0;
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment