[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
Re: Timeout problem
"Rupa Schomaker (list)" <rupa-list@rupa.com> writes:
> I often enter a nnimap group and do some activity and then walk away
> from my desk. 30min later, my IMAP server times out the connection
> and the socket is dropped. If I then try to quit the group the
> connection is not re-established. Eventually something times out
> locally and in the server list the imap server has (denied) next to
> it. I then have to "close" the server than before I can use it
> again. If I read an article in the nnimap group the connection is
> reopened and then I can quit the group gracefully.
>
> Perhaps we need to add the "reopen the server" logic to when we quit a
> group...
Yup, I've submitted a patch to Lars about it.
1999-03-18 Simon Josefsson <jas@pdc.kth.se>
* gnus-sum.el (gnus-update-marks):
(gnus-update-read-articles):
(gnus-summary-expire-articles): Check server.
--- gnus-sum.el- Thu Mar 18 01:55:04 1999
+++ gnus-sum.el Thu Mar 18 01:53:35 1999
@@ -4305,9 +4305,11 @@
(set symbol (sort list '<)) t)))
newmarked)))
- (if delta-marks
- (gnus-request-set-mark gnus-newsgroup-name delta-marks))
-
+ (when delta-marks
+ (unless (gnus-check-group gnus-newsgroup-name)
+ (error "Can't open server for %s" gnus-newsgroup-name))
+ (gnus-request-set-mark gnus-newsgroup-name delta-marks))
+
;; Enter these new marks into the info of the group.
(if (nthcdr 3 info)
(setcar (nthcdr 3 info) newmarked)
@@ -7423,6 +7425,8 @@
;; There are expirable articles in this group, so we run them
;; through the expiry process.
(gnus-message 6 "Expiring articles...")
+ (unless (gnus-check-group gnus-newsgroup-name)
+ (error "Can't open server for %s" gnus-newsgroup-name))
;; The list of articles that weren't expired is returned.
(save-excursion
(if expiry-wait
@@ -9132,6 +9136,8 @@
(let ((del (gnus-remove-from-range (gnus-info-read info) read))
(add (gnus-remove-from-range read (gnus-info-read info))))
(when (or add del)
+ (unless (gnus-check-group group)
+ (error "Can't open server for %s" group))
(gnus-request-set-mark
group (delq nil (list (if add (list add 'add '(read)))
(if del (list del 'del '(read)))))))))