diff -u mutt-1.5.20/debian/changelog mutt-1.5.20/debian/changelog --- mutt-1.5.20/debian/changelog +++ mutt-1.5.20/debian/changelog @@ -1,3 +1,15 @@ +mutt (1.5.20-9ubuntu2ppa2) maverick; urgency=low + + * Apply the Exchange 2010 workaround to all versions of mutt. + + -- Joe MacDonald Thu, 18 Nov 2010 10:42:12 -0500 + +mutt (1.5.20-9ubuntu2ppa1) maverick; urgency=low + + * Integrate patch for handling Exchange 2010 non-compliant IMAP behaviour + + -- Joe MacDonald Wed, 17 Nov 2010 13:32:01 -0500 + mutt (1.5.20-9ubuntu2) maverick; urgency=low * Drop libtokyocabinet-dev (universe) from Build-Depends, use always diff -u mutt-1.5.20/debian/patches/series mutt-1.5.20/debian/patches/series --- mutt-1.5.20/debian/patches/series +++ mutt-1.5.20/debian/patches/series @@ -66,6 +66,10 @@ #misc/manpage-typos.patch misc/smime_keys-manpage.patch +# Mutt hangs when opening large IMAP mailboxes on an Exchange Server +# http://dev.mutt.org/trac/ticket/3459 +misc/exchange-2010-imap-chunk.patch + mutt.org # extra patches for mutt-patched mutt-patched/sidebar only in patch2: unchanged: --- mutt-1.5.20.orig/debian/patches/misc/exchange-2010-imap-chunk.patch +++ mutt-1.5.20/debian/patches/misc/exchange-2010-imap-chunk.patch @@ -0,0 +1,21 @@ +Recent Exchange servers (2007+) will sometimes omit FETCH responses when Mutt +requests "FETCH 1:n" where "n" is some largish (~2000) number. This causes Mutt +to hang because it expects the server to return all FETCH responses. + +http://dev.mutt.org/trac/ticket/3459 + +--- a/imap/message.c 2010-10-03 17:55:58.000000000 +0200 ++++ b/imap/message.c 2010-10-03 17:54:51.000000000 +0200 +@@ -240,7 +240,11 @@ + if (msgno + 1 > fetchlast) + { + fetchlast = msgend + 1; +- ++ /* Microsoft Exchange 2010 violates the IMAP protocol and ++ * starts omitting messages if one FETCHes more than 2047 (or ++ * or somewhere around that number. We therefore split the ++ * FETCH into chunks of 2000 messages each */ ++ if (fetchlast - msgno - 1 > 2000) fetchlast = msgno+1 + 2000; + snprintf (buf, sizeof (buf), + "FETCH %d:%d (UID FLAGS INTERNALDATE RFC822.SIZE %s)", msgno + 1, + fetchlast, hdrreq);