]> granicus.if.org Git - neomutt/commitdiff
Make gnutls read function more robust against interruptions.
authorBrendan Cully <brendan@kublai.com>
Sun, 31 Aug 2008 03:21:45 +0000 (20:21 -0700)
committerBrendan Cully <brendan@kublai.com>
Sun, 31 Aug 2008 03:21:45 +0000 (20:21 -0700)
Signals should be masked off anyway, but see #3074.

ChangeLog
mutt_ssl_gnutls.c

index 7f3a9bf3337985f1a43fd788d1830db9af061f89..9ac7e8fa3b406d1016c94cdae86e7bbf54262f6d 100644 (file)
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,3 +1,39 @@
+2008-08-30 23:19 +0200  Rocco Rutte  <pdmef@gmx.net>  (996e4e2d2855)
+
+       * doc/manual.xml.head, init.h: Manual: use $variable syntax, only
+       quote non-variable links
+
+       * doc/manual.xml.head: Manual: Various fixes+improvements in chapters
+       1+2
+
+       * doc/gen-map-doc, doc/makedoc.c, doc/manual.xml.head, init.h: Manual:
+       Layout functions as <function-name>, s/ESC/Esc/ for consistency
+
+       * doc/devel-notes.txt, doc/makedoc.c: makedoc: Add support for
+       monospace fonts with \fC...\fP
+
+       * doc/manual.xml.head: Manual: trim trailing whitespace
+
+       * doc/manual.xml.head: Manual: Fix processing warnings by manually
+       assigning missing id attributes
+
+       * doc/manual.xml.head: Manual: Add a section on mutt core concepts as
+       introduction
+
+2008-08-30 19:59 -0700  Brendan Cully  <brendan@kublai.com>  (12a6de725483)
+
+       * curs_lib.c, enter.c, flags.c, keymap.c, menu.c: Rework timeout
+       handling to support keepalive in the line editor. Also allow
+       keepalives of less than $timeout without returning before $timeout,
+       so people who don't want to be notified of new mail don't have to
+       be.
+
+2008-08-29 23:10 -0700  Rado Smiljanic  <regrado@web.de>  (4f67fc336986)
+
+       * curs_main.c, keymap.c, menu.c, pager.c: Make curses timeout the
+       minimum of $timeout and $imap_keepalive. Do keepalive in km_dokey
+       instead of directly in menu. Closes #2747.
+
 2008-08-29 22:40 -0700  Brendan Cully  <brendan@kublai.com>  (e37ae3f79ec0)
 
        * imap/imap_private.h: Dead code
index 0fbf2465bdcb16a34b844760c38a2f73b96d9d42..805be288c8018530c863470f1f6226dd7a5e72d4 100644 (file)
@@ -98,13 +98,17 @@ static int tls_socket_read (CONNECTION* conn, char* buf, size_t len)
     return -1;
   }
 
-  ret = gnutls_record_recv (data->state, buf, len);
-  if (ret < 0 && gnutls_error_is_fatal(ret) == 1)
-  {
-    mutt_error ("tls_socket_read (%s)", gnutls_strerror (ret));
-    mutt_sleep (4);
-    return -1;
+  do {
+    ret = gnutls_record_recv (data->state, buf, len);
+    if (ret < 0 && gnutls_error_is_fatal(ret) == 1)
+    {
+      mutt_error ("tls_socket_read (%s)", gnutls_strerror (ret));
+      mutt_sleep (4);
+      return -1;
+    }
   }
+  while (ret == GNUTLS_E_AGAIN || ret == GNUTLS_E_INTERRUPTED);
+
   return ret;
 }