From 0d38b2f403fa873159138b194c0d45bc4c7e61cc Mon Sep 17 00:00:00 2001 From: Lars Magne Ingebrigtsen Date: Sun, 15 Feb 2015 23:11:41 +0000 Subject: [PATCH] Don't mark nnimap articles as read on a server hangup * lisp/gnus/nnimap.el (nnimap-retrieve-headers): If the server closes connection during header retrieval, error out instead of interpreting the data in the buffer as the only messages there. This way, we don't mark articles as read on a server hangup (bug#19035). --- lisp/gnus/ChangeLog | 5 +++++ lisp/gnus/nnimap.el | 2 ++ 2 files changed, 7 insertions(+) diff --git a/lisp/gnus/ChangeLog b/lisp/gnus/ChangeLog index b9ae796782d..7910d74fb15 100644 --- a/lisp/gnus/ChangeLog +++ b/lisp/gnus/ChangeLog @@ -1,5 +1,10 @@ 2015-02-14 Lars Ingebrigtsen + * nnimap.el (nnimap-retrieve-headers): If the server closes connection + during header retrieval, error out instead of interpreting the data in + the buffer as the only messages there. This way, we don't mark + articles as read on a server hangup (bug#19035). + * mm-decode.el (mm-head-p): New function. (mm-display-part): Go to a blank line when inserting parts internally. diff --git a/lisp/gnus/nnimap.el b/lisp/gnus/nnimap.el index e7f91b7cc33..4a9ca744b9f 100644 --- a/lisp/gnus/nnimap.el +++ b/lisp/gnus/nnimap.el @@ -196,6 +196,8 @@ textual parts.") (nnimap-article-ranges (gnus-compress-sequence articles)) (nnimap-header-parameters)) t) + (unless (process-live-p (get-buffer-process (current-buffer))) + (error "Server closed connection")) (nnimap-transform-headers) (nnheader-remove-cr-followed-by-lf)) (insert-buffer-substring -- 2.39.2