dovecot-2.0: mail storage service: mail_debug=yes now logs what ...

dovecot at dovecot.org dovecot at dovecot.org
Tue Mar 9 16:36:34 EET 2010


details:   http://hg.dovecot.org/dovecot-2.0/rev/2d082200657d
changeset: 10880:2d082200657d
user:      Timo Sirainen <tss at iki.fi>
date:      Tue Mar 09 16:36:32 2010 +0200
description:
mail storage service: mail_debug=yes now logs what happens to userdb settings.

diffstat:

 src/lib-storage/mail-storage-service.c |  31 +++++++++++++++++++++----------
 1 files changed, 21 insertions(+), 10 deletions(-)

diffs (85 lines):

diff -r ce166f70ea71 -r 2d082200657d src/lib-storage/mail-storage-service.c
--- a/src/lib-storage/mail-storage-service.c	Tue Mar 09 16:24:57 2010 +0200
+++ b/src/lib-storage/mail-storage-service.c	Tue Mar 09 16:36:32 2010 +0200
@@ -98,6 +98,17 @@
 	return FALSE;
 }
 
+static bool
+mail_user_set_get_mail_debug(const struct setting_parser_info *user_info,
+			     const struct mail_user_settings *user_set)
+{
+	const struct mail_storage_settings *mail_set;
+
+	mail_set = mail_user_set_get_driver_settings(user_info, user_set,
+						MAIL_STORAGE_SET_DRIVER_NAME);
+	return mail_set->mail_debug;
+}
+
 static int
 user_reply_handle(struct mail_storage_service_user *user,
 		  const struct auth_user_reply *reply,
@@ -106,8 +117,11 @@
 	struct setting_parser_context *set_parser = user->set_parser;
 	const char *const *str, *p, *line, *key;
 	unsigned int i, count;
+	bool mail_debug;
 	int ret = 0;
 
+	mail_debug = mail_user_set_get_mail_debug(user->user_info,
+						  user->user_set);
 	if (reply->uid != (uid_t)-1) {
 		if (reply->uid == 0) {
 			*error_r = "userdb returned 0 as uid";
@@ -160,6 +174,11 @@
 			}
 
 			ret = settings_parse_line(set_parser, line);
+			if (mail_debug && ret >= 0) {
+				i_debug(ret == 0 ?
+					"Unknown userdb setting: %s" :
+					"Added userdb setting: %s", line);
+			}
 		} T_END;
 	}
 
@@ -672,15 +691,11 @@
 				const struct setting_parser_info *user_info,
 				const struct mail_user_settings *user_set)
 {
-	const struct mail_storage_settings *mail_set;
 	enum auth_master_flags flags = 0;
 
 	i_assert(ctx->conn == NULL);
 
-	mail_set = mail_user_set_get_driver_settings(user_info, user_set,
-						MAIL_STORAGE_SET_DRIVER_NAME);
-	ctx->debug = mail_set->mail_debug;
-
+	ctx->debug = mail_user_set_get_mail_debug(user_info, user_set);
 	if (ctx->debug)
 		flags |= AUTH_MASTER_FLAG_DEBUG;
 	if ((ctx->flags & MAIL_STORAGE_SERVICE_FLAG_NO_IDLE_TIMEOUT) != 0)
@@ -696,7 +711,6 @@
 				  const struct setting_parser_info *user_info,
 				  const struct mail_user_settings *user_set)
 {
-	const struct mail_storage_settings *mail_set;
 	struct module_dir_load_settings mod_set;
 
 	if (*user_set->mail_plugins == '\0')
@@ -704,13 +718,10 @@
 	if ((ctx->flags & MAIL_STORAGE_SERVICE_FLAG_NO_PLUGINS) != 0)
 		return;
 
-	mail_set = mail_user_set_get_driver_settings(user_info, user_set,
-						MAIL_STORAGE_SET_DRIVER_NAME);
-
 	memset(&mod_set, 0, sizeof(mod_set));
 	mod_set.version = master_service_get_version_string(ctx->service);
 	mod_set.require_init_funcs = TRUE;
-	mod_set.debug = mail_set->mail_debug;
+	mod_set.debug = mail_user_set_get_mail_debug(user_info, user_set);
 
 	mail_storage_service_modules =
 		module_dir_load_missing(mail_storage_service_modules,


More information about the dovecot-cvs mailing list