mirror of
git://git.sv.gnu.org/emacs.git
synced 2026-01-10 05:30:45 -08:00
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.
This commit is contained in:
parent
02bee7860f
commit
202ff53da2
1 changed files with 9 additions and 2 deletions
11
src/gnutls.c
11
src/gnutls.c
|
|
@ -753,8 +753,15 @@ emacs_gnutls_read (struct Lisp_Process *proc, char *buf, ptrdiff_t nbyte)
|
||||||
/* The peer closed the connection. */
|
/* The peer closed the connection. */
|
||||||
return 0;
|
return 0;
|
||||||
else if (emacs_gnutls_handle_error (state, rtnval))
|
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 {
|
else {
|
||||||
/* a fatal error occurred */
|
/* a fatal error occurred */
|
||||||
return 0;
|
return 0;
|
||||||
|
|
|
||||||
Loading…
Add table
Add a link
Reference in a new issue