]> git.ipfire.org Git - thirdparty/dovecot/core.git/commitdiff
auth: Added passdb/userdb { auth_verbose } setting.
authorTimo Sirainen <timo.sirainen@dovecot.fi>
Tue, 19 Apr 2016 08:55:00 +0000 (11:55 +0300)
committerTimo Sirainen <timo.sirainen@dovecot.fi>
Tue, 19 Apr 2016 15:49:37 +0000 (18:49 +0300)
If this is explicitly set to yes or no, it overrides the global auth_verbose
setting. However, auth_debug=yes overrides all of the auth_verbose settings.

src/auth/auth-request.c
src/auth/auth-settings.c
src/auth/auth-settings.h

index 24242d9d131fcd31a53d4478bf3c9e8443674a79..90095824b7a44f37193476e22ee75183e1a8d0f3 100644 (file)
@@ -2185,8 +2185,25 @@ void auth_request_log_info(struct auth_request *auth_request,
 {
        va_list va;
 
-       if (!auth_request->set->verbose)
-               return;
+       if (auth_request->set->debug) {
+               /* auth_debug=yes overrides auth_verbose settings */
+       } else {
+               const char *db_auth_verbose = auth_request->userdb_lookup ?
+                       auth_request->userdb->set->auth_verbose :
+                       auth_request->passdb->set->auth_verbose;
+               switch (db_auth_verbose[0]) {
+               case 'y':
+                       break;
+               case 'n':
+                       return;
+               case 'd':
+                       if (!auth_request->set->verbose)
+                               return;
+                       break;
+               default:
+                       i_unreached();
+               }
+       }
 
        va_start(va, format);
        T_BEGIN {
index 7eed12f5dbe92cc333409a48ab32df9f372b7b23..e5f6c76131c8317efac87c646524250d0527cb60 100644 (file)
@@ -121,6 +121,7 @@ static const struct setting_define auth_passdb_setting_defines[] = {
        DEF(SET_BOOL, deny),
        DEF(SET_BOOL, pass),
        DEF(SET_BOOL, master),
+       DEF(SET_ENUM, auth_verbose),
 
        SETTING_DEFINE_LIST_END
 };
@@ -139,7 +140,8 @@ static const struct auth_passdb_settings auth_passdb_default_settings = {
 
        .deny = FALSE,
        .pass = FALSE,
-       .master = FALSE
+       .master = FALSE,
+       .auth_verbose = "default:yes:no"
 };
 
 const struct setting_parser_info auth_passdb_setting_parser_info = {
@@ -171,6 +173,8 @@ static const struct setting_define auth_userdb_setting_defines[] = {
        DEF(SET_ENUM, result_failure),
        DEF(SET_ENUM, result_internalfail),
 
+       DEF(SET_ENUM, auth_verbose),
+
        SETTING_DEFINE_LIST_END
 };
 
@@ -185,7 +189,9 @@ static const struct auth_userdb_settings auth_userdb_default_settings = {
        .skip = "never:found:notfound",
        .result_success = "return-ok:return:return-fail:continue:continue-ok:continue-fail",
        .result_failure = "continue:return:return-ok:return-fail:continue-ok:continue-fail",
-       .result_internalfail = "continue:return:return-ok:return-fail:continue-ok:continue-fail"
+       .result_internalfail = "continue:return:return-ok:return-fail:continue-ok:continue-fail",
+
+       .auth_verbose = "default:yes:no"
 };
 
 const struct setting_parser_info auth_userdb_setting_parser_info = {
index c39f05151bb1a197c2a5b843f8ee6221680982ad..295420fa0af5d0461b81435448834a75e9fd34fe 100644 (file)
@@ -18,6 +18,7 @@ struct auth_passdb_settings {
        bool deny;
        bool pass; /* deprecated, use result_success=continue instead */
        bool master;
+       const char *auth_verbose;
 };
 
 struct auth_userdb_settings {
@@ -31,6 +32,7 @@ struct auth_userdb_settings {
        const char *result_success;
        const char *result_failure;
        const char *result_internalfail;
+       const char *auth_verbose;
 };
 
 struct auth_settings {