}
while (strncmp (buf, seq, SEQLEN) != 0);
- if (CTX_DATA->status == IMAP_NEW_MAIL || CTX_DATA->status == IMAP_EXPUNGE)
+ if (!ctx->closing &&
+ (CTX_DATA->status == IMAP_NEW_MAIL || CTX_DATA->status == IMAP_EXPUNGE))
{
count = CTX_DATA->newMailCount;
unsigned int quiet : 1; /* inhibit status messages? */
unsigned int revsort : 1; /* mailbox sorted in reverse? */
unsigned int collapsed : 1; /* are all threads collapsed? */
+ unsigned int closing : 1; /* mailbox is being closed */
} CONTEXT;
typedef struct attachptr
char mbox[_POSIX_PATH_MAX];
char buf[SHORT_STRING];
+ ctx->closing = 1;
+
if (ctx->readonly || ctx->dontwrite)
{
/* mailbox is readonly or we don't want to write */