emacs-diffs
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

[Emacs-diffs] /srv/bzr/emacs/trunk r107271: Further GnuTLS EAGAIN write


From: Lars Ingebrigtsen
Subject: [Emacs-diffs] /srv/bzr/emacs/trunk r107271: Further GnuTLS EAGAIN write fixups
Date: Mon, 13 Feb 2012 20:37:48 +0100
User-agent: Bazaar (2.3.1)

------------------------------------------------------------
revno: 107271
committer: Lars Ingebrigtsen <address@hidden>
branch nick: trunk
timestamp: Mon 2012-02-13 20:37:48 +0100
message:
  Further GnuTLS EAGAIN write fixups
  
  * gnutls.c (emacs_gnutls_write): Set errno appropriately for
  send_process.
modified:
  src/ChangeLog
  src/gnutls.c
=== modified file 'src/ChangeLog'
--- a/src/ChangeLog     2012-02-13 15:55:27 +0000
+++ b/src/ChangeLog     2012-02-13 19:37:48 +0000
@@ -1,3 +1,8 @@
+2012-02-13  Lars Ingebrigtsen  <address@hidden>
+
+       * gnutls.c (emacs_gnutls_write): Set errno appropriately for
+       send_process.
+
 2012-02-13  Stefan Monnier  <address@hidden>
 
        * keymap.c (Fsingle_key_description): Handle char ranges.

=== modified file 'src/gnutls.c'
--- a/src/gnutls.c      2012-02-11 17:06:14 +0000
+++ b/src/gnutls.c      2012-02-13 19:37:48 +0000
@@ -365,8 +365,20 @@
        {
          if (rtnval == GNUTLS_E_INTERRUPTED)
            continue;
-         else
+         else {
+           /* If we get EAGAIN, then set errno appropriately so that
+              send_process retries the correct way instead of
+              erroring out. */
+           if (rtnval == EAGAIN) {
+#ifdef EWOULDBLOCK
+             errno = EWOULDBLOCK;
+#endif
+#ifdef EAGAIN
+             errno = EAGAIN;
+#endif
+           }
            break;
+         }
        }
 
       buf += rtnval;


reply via email to

[Prev in Thread] Current Thread [Next in Thread]