changeset 19600:5c99b32f6b28

lib-storage: Enable autoexpunge only when MAIL_STORAGE_SERVICE_FLAG_AUTOEXPUNGE is set.
author Timo Sirainen <timo.sirainen@dovecot.fi>
date Wed, 20 Jan 2016 13:30:34 +0200
parents bf292cebbf7c
children 6cc236e74455
files src/lib-storage/mail-storage-service.c src/lib-storage/mail-storage-service.h src/lib-storage/mail-user.c src/lib-storage/mail-user.h
diffstat 4 files changed, 9 insertions(+), 2 deletions(-) [+]
line wrap: on
line diff
--- a/src/lib-storage/mail-storage-service.c	Wed Jan 20 13:22:15 2016 +0200
+++ b/src/lib-storage/mail-storage-service.c	Wed Jan 20 13:30:34 2016 +0200
@@ -661,6 +661,8 @@
 		p_strdup(mail_user->pool, user->input.session_id);
 	mail_user->userdb_fields = user->input.userdb_fields == NULL ? NULL :
 		p_strarray_dup(mail_user->pool, user->input.userdb_fields);
+	mail_user->autoexpunge_enabled =
+		(user->flags & MAIL_STORAGE_SERVICE_FLAG_AUTOEXPUNGE) != 0;
 	
 	mail_set = mail_user_set_get_storage_set(mail_user);
 
--- a/src/lib-storage/mail-storage-service.h	Wed Jan 20 13:22:15 2016 +0200
+++ b/src/lib-storage/mail-storage-service.h	Wed Jan 20 13:30:34 2016 +0200
@@ -33,7 +33,9 @@
 	/* When executing doveconf, tell it to use sysexits codes */
 	MAIL_STORAGE_SERVICE_FLAG_USE_SYSEXITS		= 0x400,
 	/* Don't create namespaces, only the user. */
-	MAIL_STORAGE_SERVICE_FLAG_NO_NAMESPACES		= 0x800
+	MAIL_STORAGE_SERVICE_FLAG_NO_NAMESPACES		= 0x800,
+	/* Enable autoexpunging at deinit. */
+	MAIL_STORAGE_SERVICE_FLAG_AUTOEXPUNGE		= 0x1000
 };
 
 struct mail_storage_service_input {
--- a/src/lib-storage/mail-user.c	Wed Jan 20 13:22:15 2016 +0200
+++ b/src/lib-storage/mail-user.c	Wed Jan 20 13:30:34 2016 +0200
@@ -164,7 +164,8 @@
 		return;
 	}
 
-	mail_user_autoexpunge(user);
+	if (user->autoexpunge_enabled)
+		mail_user_autoexpunge(user);
 
 	user->deinitializing = TRUE;
 
--- a/src/lib-storage/mail-user.h	Wed Jan 20 13:22:15 2016 +0200
+++ b/src/lib-storage/mail-user.h	Wed Jan 20 13:30:34 2016 +0200
@@ -89,6 +89,8 @@
 	unsigned int admin:1;
 	/* Enable all statistics gathering */
 	unsigned int stats_enabled:1;
+	/* Enable autoexpunging at deinit. */
+	unsigned int autoexpunge_enabled:1;
 };
 
 struct mail_user_module_register {