dovecot-2.1: quota: Added quota_ignore_save_errors plugin setting.
dovecot at dovecot.org
dovecot at dovecot.org
Mon Jul 23 14:23:54 EEST 2012
details: http://hg.dovecot.org/dovecot-2.1/rev/a946a37af082
changeset: 14627:a946a37af082
user: Timo Sirainen <tss at iki.fi>
date: Mon Jul 23 14:23:32 2012 +0300
description:
quota: Added quota_ignore_save_errors plugin setting.
If mail is being saved but current quota usage lookup fails with internal
error, save the mail anyway instead of failing.
diffstat:
src/plugins/quota/quota-private.h | 1 +
src/plugins/quota/quota-storage.c | 5 +++--
src/plugins/quota/quota.c | 2 ++
3 files changed, 6 insertions(+), 2 deletions(-)
diffs (45 lines):
diff -r 35ae9569de5a -r a946a37af082 src/plugins/quota/quota-private.h
--- a/src/plugins/quota/quota-private.h Tue Jul 17 16:20:20 2012 +0300
+++ b/src/plugins/quota/quota-private.h Mon Jul 23 14:23:32 2012 +0300
@@ -25,6 +25,7 @@
uoff_t size, bool *too_large_r);
const char *quota_exceeded_msg;
+ unsigned int ignore_save_errors:1;
unsigned int debug:1;
};
diff -r 35ae9569de5a -r a946a37af082 src/plugins/quota/quota-storage.c
--- a/src/plugins/quota/quota-storage.c Tue Jul 17 16:20:20 2012 +0300
+++ b/src/plugins/quota/quota-storage.c Mon Jul 23 14:23:32 2012 +0300
@@ -147,7 +147,7 @@
} else {
mail_storage_set_critical(t->box->storage,
"Internal quota calculation error");
- return -1;
+ return qt->quota->set->ignore_save_errors ? 0 : -1;
}
}
@@ -204,7 +204,8 @@
} else if (ret < 0) {
mail_storage_set_critical(t->box->storage,
"Internal quota calculation error");
- return -1;
+ if (!qt->quota->set->ignore_save_errors)
+ return -1;
}
}
diff -r 35ae9569de5a -r a946a37af082 src/plugins/quota/quota.c
--- a/src/plugins/quota/quota.c Tue Jul 17 16:20:20 2012 +0300
+++ b/src/plugins/quota/quota.c Mon Jul 23 14:23:32 2012 +0300
@@ -195,6 +195,8 @@
quota_set->debug = user->mail_debug;
quota_set->quota_exceeded_msg =
mail_user_plugin_getenv(user, "quota_exceeded_message");
+ quota_set->ignore_save_errors =
+ mail_user_plugin_getenv(user, "quota_ignore_save_errors") != NULL;
if (quota_set->quota_exceeded_msg == NULL)
quota_set->quota_exceeded_msg = DEFAULT_QUOTA_EXCEEDED_MSG;
More information about the dovecot-cvs
mailing list