From: Brendan Cully Date: Sun, 31 Aug 2008 03:21:45 +0000 (-0700) Subject: Make gnutls read function more robust against interruptions. X-Git-Tag: mutt-1-5-19-rel~140 X-Git-Url: https://granicus.if.org/sourcecode?a=commitdiff_plain;h=81f5cf75f4426e2fb5f7bff50a025a05d2df0685;p=mutt Make gnutls read function more robust against interruptions. Signals should be masked off anyway, but see #3074. --- diff --git a/ChangeLog b/ChangeLog index 7f3a9bf3..9ac7e8fa 100644 --- a/ChangeLog +++ b/ChangeLog @@ -1,3 +1,39 @@ +2008-08-30 23:19 +0200 Rocco Rutte (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 , 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 (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 (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 (e37ae3f79ec0) * imap/imap_private.h: Dead code diff --git a/mutt_ssl_gnutls.c b/mutt_ssl_gnutls.c index 0fbf2465..805be288 100644 --- a/mutt_ssl_gnutls.c +++ b/mutt_ssl_gnutls.c @@ -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; }