Mercurial > dovecot > core-2.2
changeset 19923:81df79443d12
auth: If auth request contains "debug" field, enable auth_debug=yes for the request.
author | Timo Sirainen <timo.sirainen@dovecot.fi> |
---|---|
date | Fri, 11 Mar 2016 18:37:04 +1300 |
parents | 377ec37208e5 |
children | 5a4b25374acd |
files | src/auth/auth-request.c src/auth/auth-request.h src/auth/db-ldap.c src/auth/passdb-imap.c src/auth/userdb-prefetch.c |
diffstat | 5 files changed, 15 insertions(+), 4 deletions(-) [+] |
line wrap: on
line diff
--- a/src/auth/auth-request.c Thu Mar 10 14:59:46 2016 +1300 +++ b/src/auth/auth-request.c Fri Mar 11 18:37:04 2016 +1300 @@ -64,6 +64,7 @@ request->session_pid = (pid_t)-1; request->set = global_auth_settings; + request->debug = request->set->debug; request->mech = mech; request->mech_name = mech->mech_name; request->extra_fields = auth_fields_init(request->pool); @@ -86,6 +87,7 @@ request->last_access = ioloop_time; request->session_pid = (pid_t)-1; request->set = global_auth_settings; + request->debug = request->set->debug; request->extra_fields = auth_fields_init(request->pool); return request; } @@ -110,6 +112,9 @@ auth = auth_request_get_auth(request); request->set = auth->set; + /* NOTE: request->debug may already be TRUE here */ + if (request->set->debug) + request->debug = TRUE; request->passdb = auth->passdbs; request->userdb = auth->userdbs; } @@ -260,6 +265,8 @@ str_printfa(dest, "\treal_lport=%u", request->real_local_port); if (request->real_remote_port != 0) str_printfa(dest, "\treal_rport=%u", request->real_remote_port); + if (request->debug) + str_append(dest, "\tdebug"); if (request->secured) str_append(dest, "\tsecured"); if (request->skip_password_check) @@ -307,6 +314,8 @@ (void)net_str2port(value, &request->real_remote_port); else if (strcmp(key, "session") == 0) request->session_id = p_strdup(request->pool, value); + else if (strcmp(key, "debug") == 0) + request->debug = TRUE; else return FALSE; return TRUE; @@ -2152,7 +2161,7 @@ { va_list va; - if (!auth_request->set->debug) + if (!auth_request->debug) return; va_start(va, format);
--- a/src/auth/auth-request.h Thu Mar 10 14:59:46 2016 +1300 +++ b/src/auth/auth-request.h Fri Mar 11 18:37:04 2016 +1300 @@ -102,6 +102,8 @@ unsigned int userdb_lookup:1; /* DIGEST-MD5 kludge */ unsigned int domain_is_realm:1; + /* auth_debug is enabled for this request */ + unsigned int debug:1; /* flags received from auth client: */ unsigned int secured:1;
--- a/src/auth/db-ldap.c Thu Mar 10 14:59:46 2016 +1300 +++ b/src/auth/db-ldap.c Fri Mar 11 18:37:04 2016 +1300 @@ -1552,7 +1552,7 @@ ctx->skip_null_values = skip_null_values; ctx->iter_dn_values = iter_dn_values; hash_table_create(&ctx->ldap_attrs, pool, 0, strcase_hash, strcasecmp); - if (ctx->auth_request->set->debug) + if (ctx->auth_request->debug) ctx->debug = t_str_new(256); get_ldap_fields(ctx, conn, res, "");
--- a/src/auth/passdb-imap.c Thu Mar 10 14:59:46 2016 +1300 +++ b/src/auth/passdb-imap.c Fri Mar 11 18:37:04 2016 +1300 @@ -79,7 +79,7 @@ string_t *str; set = module->set; - set.debug = auth_request->set->debug; + set.debug = auth_request->debug; set.dns_client_socket_path = t_strconcat(auth_request->set->base_dir, "/", DNS_CLIENT_SOCKET_NAME, NULL);
--- a/src/auth/userdb-prefetch.c Thu Mar 10 14:59:46 2016 +1300 +++ b/src/auth/userdb-prefetch.c Fri Mar 11 18:37:04 2016 +1300 @@ -27,7 +27,7 @@ callback(USERDB_RESULT_INTERNAL_FAILURE, auth_request); return; } - if (!auth_request->userdb_lookup || auth_request->set->debug) { + if (!auth_request->userdb_lookup || auth_request->debug) { /* more userdbs, they may know the user */ auth_request_log_debug(auth_request, AUTH_SUBSYS_DB, "passdb didn't return userdb entries, "