From 40b6947e3d2e1a721e8cf2c063ea420a392aba26 Mon Sep 17 00:00:00 2001 From: wmorgan Date: Wed, 3 Jan 2007 06:08:23 +0000 Subject: [PATCH] retry on EPIPE git-svn-id: svn://rubyforge.org/var/svn/sup/trunk@147 5c8cc53c-5e98-4d25-b20a-d8db53a31250 --- lib/sup/imap.rb | 7 +++++++ 1 file changed, 7 insertions(+) diff --git a/lib/sup/imap.rb b/lib/sup/imap.rb index 296a5d3..715a98e 100644 --- a/lib/sup/imap.rb +++ b/lib/sup/imap.rb @@ -149,6 +149,7 @@ class IMAP < Source end def get_imap_field id, field + retries = 0 f = nil imap_id = @imap_ids[id] or raise SourceError, "Unknown message id #{id}. It is likely that messages have been deleted from this IMAP mailbox." begin @@ -157,6 +158,12 @@ class IMAP < Source raise SourceError, "IMAP message mismatch: requested #{id}, got #{got_id}. It is likely the IMAP mailbox has been modified." unless got_id == id rescue Net::IMAP::Error => e raise SourceError, e.message + rescue Errno::EPIPE + if (retries += 1) <= 3 + @imap = nil + connect + retry + end end raise SourceError, "null IMAP field '#{field}' for message with id #{id} imap id #{imap_id}" if f.nil? -- 2.45.2