emacs-diffs
[Top][All Lists]
Advanced

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

[Emacs-diffs] /srv/bzr/emacs/trunk r101872: (emacs_gnutls_write): Check


From: Lars Magne Ingebrigtsen
Subject: [Emacs-diffs] /srv/bzr/emacs/trunk r101872: (emacs_gnutls_write): Check for GNUTLS_E_AGAIN and not EINTR.
Date: Sat, 09 Oct 2010 15:54:57 +0200
User-agent: Bazaar (2.0.3)

------------------------------------------------------------
revno: 101872
committer: Lars Magne Ingebrigtsen <address@hidden>
branch nick: trunk
timestamp: Sat 2010-10-09 15:54:57 +0200
message:
  (emacs_gnutls_write): Check for GNUTLS_E_AGAIN and not EINTR.
  
  According to the documentation, this is correct, and it seems to
  make things work.
modified:
  src/ChangeLog
  src/gnutls.c
=== modified file 'src/ChangeLog'
--- a/src/ChangeLog     2010-10-09 13:19:30 +0000
+++ b/src/ChangeLog     2010-10-09 13:54:57 +0000
@@ -5,6 +5,9 @@
        (emacs_gnutls_read): Return -1 if we got an error from
        gnutls_read().  This allows us to actually read lots of data from
        the GnuTLS stream.
+       (emacs_gnutls_write): Check for GNUTLS_E_AGAIN and not EINTR.
+       According to the documentation, this is correct, and it seems to
+       make things work.
 
 2010-10-09  Chong Yidong  <address@hidden>
 

=== modified file 'src/gnutls.c'
--- a/src/gnutls.c      2010-10-09 13:19:30 +0000
+++ b/src/gnutls.c      2010-10-09 13:54:57 +0000
@@ -86,9 +86,9 @@
     {
       rtnval = gnutls_write (state, buf, nbyte);
 
-      if (rtnval == -1)
+      if (rtnval < 0)
         {
-          if (errno == EINTR)
+          if (rtnval == GNUTLS_E_AGAIN || rtnval == GNUTLS_E_INTERRUPTED)
             continue;
           else
             return (bytes_written ? bytes_written : -1);


reply via email to

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