diff options
Diffstat (limited to 'libproto')
-rw-r--r-- | libproto/dotmail/dotmail.c | 6 |
1 files changed, 6 insertions, 0 deletions
diff --git a/libproto/dotmail/dotmail.c b/libproto/dotmail/dotmail.c index 48ca75673..fa083bb98 100644 --- a/libproto/dotmail/dotmail.c +++ b/libproto/dotmail/dotmail.c @@ -326,12 +326,15 @@ dotmail_rescan_unlocked (mu_mailbox_t mailbox, mu_off_t offset) "x-imapbase:", "x-uid: ", }; int i, j; int force_init_uids = 0; + if (!(mailbox->flags & MU_STREAM_READ)) + return 0; + rc = mu_streamref_create (&stream, mailbox->stream); if (rc) { mu_debug (MU_DEBCAT_MAILBOX, MU_DEBUG_ERROR, ("%s:%s (%s): %s", __func__, "mu_streamref_create", dmp->name, @@ -587,12 +590,15 @@ dotmail_rescan (mu_mailbox_t mailbox, mu_off_t offset) struct mu_dotmail_mailbox *dmp = mailbox->data; int rc; if (!dmp) return EINVAL; + if (!(mailbox->flags & MU_STREAM_READ)) + return 0; + mu_monitor_wrlock (mailbox->monitor); #ifdef WITH_PTHREAD pthread_cleanup_push (dotmail_cleanup, (void *)mailbox); #endif rc = mu_stream_size (mailbox->stream, &dmp->size); |