From 1d22eaac93de41319918a1fc6de42bb302e25c1a Mon Sep 17 00:00:00 2001 From: Timo Sirainen Date: Sat, 13 Mar 2010 17:28:18 +0200 Subject: [PATCH] auth: auth_userdb and auth_passdb no longer has pointer to struct auth. --HG-- branch : HEAD --- src/auth/auth-request.c | 4 ++++ src/auth/auth-settings.c | 2 ++ src/auth/auth-settings.h | 2 ++ src/auth/auth-worker-server.c | 14 +++++--------- src/auth/auth-worker-server.h | 3 +-- src/auth/auth.h | 4 ++-- src/auth/main.c | 9 +++++---- src/auth/passdb-blocking.c | 7 +++---- src/auth/passdb-bsdauth.c | 5 ++--- src/auth/passdb-checkpassword.c | 4 ++-- src/auth/passdb-ldap.c | 4 ++-- src/auth/passdb-pam.c | 6 +++--- src/auth/passdb-passwd-file.c | 13 +++++-------- src/auth/passdb-sql.c | 4 ++-- src/auth/passdb-vpopmail.c | 5 ++--- src/auth/passdb.c | 2 +- src/auth/userdb-blocking.c | 6 ++---- src/auth/userdb-checkpassword.c | 4 ++-- src/auth/userdb-ldap.c | 12 +++++------- src/auth/userdb-nss.c | 2 +- src/auth/userdb-passwd-file.c | 12 ++++-------- src/auth/userdb-passwd.c | 4 ++-- src/auth/userdb-sql.c | 4 ++-- src/auth/userdb-static.c | 4 ++-- src/auth/userdb-vpopmail.c | 2 +- src/auth/userdb.c | 2 +- 26 files changed, 65 insertions(+), 75 deletions(-) diff --git a/src/auth/auth-request.c b/src/auth/auth-request.c index bec6fbcb56..45c9d08d9b 100644 --- a/src/auth/auth-request.c +++ b/src/auth/auth-request.c @@ -63,6 +63,10 @@ struct auth_request *auth_request_new_dummy(struct auth *auth) auth_request->refcount = 1; auth_request->last_access = ioloop_time; + if (auth == NULL) { + auth = p_new(pool, struct auth, 1); + auth->set = global_auth_settings; + } auth_request->auth = auth; auth_request->passdb = auth->passdbs; auth_request->userdb = auth->userdbs; diff --git a/src/auth/auth-settings.c b/src/auth/auth-settings.c index d50cd77dfe..522bad36af 100644 --- a/src/auth/auth-settings.c +++ b/src/auth/auth-settings.c @@ -288,6 +288,8 @@ auth_userdb_settings_check(void *_set, pool_t pool ATTR_UNUSED, } /* */ +struct auth_settings *global_auth_settings; + struct auth_settings * auth_settings_read(struct master_service *service) { diff --git a/src/auth/auth-settings.h b/src/auth/auth-settings.h index 3972bb14ec..bd7b7df493 100644 --- a/src/auth/auth-settings.h +++ b/src/auth/auth-settings.h @@ -50,6 +50,8 @@ struct auth_settings { const char *const *realms_arr; }; +extern struct auth_settings *global_auth_settings; + struct auth_settings *auth_settings_read(struct master_service *service); #endif diff --git a/src/auth/auth-worker-server.c b/src/auth/auth-worker-server.c index 34df86bf1a..7767b44096 100644 --- a/src/auth/auth-worker-server.c +++ b/src/auth/auth-worker-server.c @@ -28,7 +28,6 @@ struct auth_worker_request { }; struct auth_worker_connection { - struct auth *auth; int fd; struct io *io; @@ -120,12 +119,12 @@ static void auth_worker_request_send_next(struct auth_worker_connection *conn) auth_worker_request_send(conn, request); } -static struct auth_worker_connection *auth_worker_create(struct auth *auth) +static struct auth_worker_connection *auth_worker_create(void) { struct auth_worker_connection *conn; int fd; - if (array_count(&connections) >= auth->set->worker_max_count) + if (array_count(&connections) >= global_auth_settings->worker_max_count) return NULL; fd = net_connect_unix_with_retries(worker_socket_path, 5000); @@ -135,7 +134,6 @@ static struct auth_worker_connection *auth_worker_create(struct auth *auth) } conn = i_new(struct auth_worker_connection, 1); - conn->auth = auth; conn->fd = fd; conn->input = i_stream_create_fd(fd, AUTH_WORKER_MAX_LINE_LENGTH, FALSE); @@ -154,7 +152,6 @@ static void auth_worker_destroy(struct auth_worker_connection **_conn, const char *reason, bool restart) { struct auth_worker_connection *conn = *_conn; - struct auth *auth = conn->auth; struct auth_worker_connection *const *conns; unsigned int idx; @@ -188,7 +185,7 @@ static void auth_worker_destroy(struct auth_worker_connection **_conn, i_free(conn); if (idle_count == 0 && restart) { - conn = auth_worker_create(auth); + conn = auth_worker_create(); auth_worker_request_send_next(conn); } } @@ -286,8 +283,7 @@ static void worker_input(struct auth_worker_connection *conn) } struct auth_worker_connection * -auth_worker_call(struct auth *auth, pool_t pool, - struct auth_stream_reply *data, +auth_worker_call(pool_t pool, struct auth_stream_reply *data, auth_worker_callback_t *callback, void *context) { struct auth_worker_connection *conn; @@ -307,7 +303,7 @@ auth_worker_call(struct auth *auth, pool_t pool, conn = auth_worker_find_free(); if (conn == NULL) { /* no free connections, create a new one */ - conn = auth_worker_create(auth); + conn = auth_worker_create(); } } if (conn != NULL) diff --git a/src/auth/auth-worker-server.h b/src/auth/auth-worker-server.h index d9bae6c5c5..ed492b329e 100644 --- a/src/auth/auth-worker-server.h +++ b/src/auth/auth-worker-server.h @@ -7,8 +7,7 @@ struct auth_stream_reply; typedef bool auth_worker_callback_t(const char *reply, void *context); struct auth_worker_connection * -auth_worker_call(struct auth *auth, pool_t pool, - struct auth_stream_reply *data, +auth_worker_call(pool_t pool, struct auth_stream_reply *data, auth_worker_callback_t *callback, void *context); void auth_worker_server_resume_input(struct auth_worker_connection *conn); diff --git a/src/auth/auth.h b/src/auth/auth.h index 9e2e28750d..31958da6e8 100644 --- a/src/auth/auth.h +++ b/src/auth/auth.h @@ -6,7 +6,7 @@ #define PASSWORD_HIDDEN_STR "" struct auth_passdb { - struct auth *auth; + pool_t pool; struct auth_passdb *next; /* id is used by blocking passdb to identify the passdb */ @@ -21,7 +21,7 @@ struct auth_passdb { }; struct auth_userdb { - struct auth *auth; + pool_t pool; struct auth_userdb *next; unsigned int num; diff --git a/src/auth/main.c b/src/auth/main.c index a9edf1e967..fd528dd5f5 100644 --- a/src/auth/main.c +++ b/src/auth/main.c @@ -37,7 +37,7 @@ static struct module *modules = NULL; static struct auth *auth; static ARRAY_DEFINE(listen_fd_types, enum auth_socket_type); -static void main_preinit(struct auth_settings *set) +static void main_preinit(void) { struct module_dir_load_settings mod_set; @@ -56,12 +56,12 @@ static void main_preinit(struct auth_settings *set) memset(&mod_set, 0, sizeof(mod_set)); mod_set.version = master_service_get_version_string(master_service); mod_set.require_init_funcs = TRUE; - mod_set.debug = set->debug; + mod_set.debug = global_auth_settings->debug; modules = module_dir_load(AUTH_MODULE_DIR, NULL, &mod_set); module_dir_init(modules); - auth = auth_preinit(set); + auth = auth_preinit(global_auth_settings); /* Password lookups etc. may require roots, allow it. */ restrict_access_by_env(NULL, FALSE); @@ -189,7 +189,8 @@ int main(int argc, char *argv[]) } } - main_preinit(auth_settings_read(master_service)); + global_auth_settings = auth_settings_read(master_service); + main_preinit(); master_service_init_finish(master_service); main_init(); diff --git a/src/auth/passdb-blocking.c b/src/auth/passdb-blocking.c index 3da2802a02..5a7ca461cd 100644 --- a/src/auth/passdb-blocking.c +++ b/src/auth/passdb-blocking.c @@ -85,8 +85,7 @@ void passdb_blocking_verify_plain(struct auth_request *request) auth_request_export(request, reply); auth_request_ref(request); - auth_worker_call(request->auth, request->pool, reply, - verify_plain_callback, request); + auth_worker_call(request->pool, reply, verify_plain_callback, request); } static bool lookup_credentials_callback(const char *reply, void *context) @@ -128,7 +127,7 @@ void passdb_blocking_lookup_credentials(struct auth_request *request) auth_request_export(request, reply); auth_request_ref(request); - auth_worker_call(request->auth, request->pool, reply, + auth_worker_call(request->pool, reply, lookup_credentials_callback, request); } @@ -156,6 +155,6 @@ void passdb_blocking_set_credentials(struct auth_request *request, auth_request_export(request, reply); auth_request_ref(request); - auth_worker_call(request->auth, request->pool, reply, + auth_worker_call(request->pool, reply, set_credentials_callback, request); } diff --git a/src/auth/passdb-bsdauth.c b/src/auth/passdb-bsdauth.c index 801927f670..708dc3dcd6 100644 --- a/src/auth/passdb-bsdauth.c +++ b/src/auth/passdb-bsdauth.c @@ -53,13 +53,12 @@ bsdauth_preinit(struct auth_passdb *auth_passdb, const char *args) { struct passdb_module *module; - module = p_new(auth_passdb->auth->pool, struct passdb_module, 1); + module = p_new(auth_passdb->pool, struct passdb_module, 1); module->default_pass_scheme = "PLAIN"; /* same reason as PAM */ if (strncmp(args, "cache_key=", 10) == 0) { module->cache_key = - auth_cache_parse_key(auth_passdb->auth->pool, - args + 10); + auth_cache_parse_key(auth_passdb->pool, args + 10); } else if (*args != '\0') i_fatal("passdb bsdauth: Unknown setting: %s", args); return module; diff --git a/src/auth/passdb-checkpassword.c b/src/auth/passdb-checkpassword.c index 8b2ac31e43..d0ca024d48 100644 --- a/src/auth/passdb-checkpassword.c +++ b/src/auth/passdb-checkpassword.c @@ -239,9 +239,9 @@ checkpassword_preinit(struct auth_passdb *auth_passdb, const char *args) { struct checkpassword_passdb_module *module; - module = p_new(auth_passdb->auth->pool, + module = p_new(auth_passdb->pool, struct checkpassword_passdb_module, 1); - module->checkpassword_path = p_strdup(auth_passdb->auth->pool, args); + module->checkpassword_path = p_strdup(auth_passdb->pool, args); module->checkpassword_reply_path = PKG_LIBEXECDIR"/checkpassword-reply"; diff --git a/src/auth/passdb-ldap.c b/src/auth/passdb-ldap.c index 5525af53ff..7df6b2d195 100644 --- a/src/auth/passdb-ldap.c +++ b/src/auth/passdb-ldap.c @@ -397,7 +397,7 @@ passdb_ldap_preinit(struct auth_passdb *auth_passdb, const char *args) struct ldap_passdb_module *module; struct ldap_connection *conn; - module = p_new(auth_passdb->auth->pool, struct ldap_passdb_module, 1); + module = p_new(auth_passdb->pool, struct ldap_passdb_module, 1); module->conn = conn = db_ldap_init(args); conn->pass_attr_map = hash_table_create(default_pool, conn->pool, 0, str_hash, @@ -407,7 +407,7 @@ passdb_ldap_preinit(struct auth_passdb *auth_passdb, const char *args) conn->pass_attr_map, conn->set.auth_bind ? "password" : NULL); module->module.cache_key = - auth_cache_parse_key(auth_passdb->auth->pool, + auth_cache_parse_key(auth_passdb->pool, t_strconcat(conn->set.base, conn->set.pass_filter, NULL)); module->module.default_pass_scheme = conn->set.default_pass_scheme; diff --git a/src/auth/passdb-pam.c b/src/auth/passdb-pam.c index 17977a67b9..1d42d7f7ee 100644 --- a/src/auth/passdb-pam.c +++ b/src/auth/passdb-pam.c @@ -333,7 +333,7 @@ pam_preinit(struct auth_passdb *auth_passdb, const char *args) const char *const *t_args; int i; - module = p_new(auth_passdb->auth->pool, struct pam_passdb_module, 1); + module = p_new(auth_passdb->pool, struct pam_passdb_module, 1); module->service_name = "dovecot"; /* we're caching the password by using directly the plaintext password given by the auth mechanism */ @@ -351,7 +351,7 @@ pam_preinit(struct auth_passdb *auth_passdb, const char *args) module->pam_setcred = TRUE; else if (strncmp(t_args[i], "cache_key=", 10) == 0) { module->module.cache_key = - auth_cache_parse_key(auth_passdb->auth->pool, + auth_cache_parse_key(auth_passdb->pool, t_args[i] + 10); } else if (strcmp(t_args[i], "blocking=yes") == 0) { /* ignore, for backwards compatibility */ @@ -364,7 +364,7 @@ pam_preinit(struct auth_passdb *auth_passdb, const char *args) module->requests_left = atoi(t_args[i] + 13); } else if (t_args[i+1] == NULL) { module->service_name = - p_strdup(auth_passdb->auth->pool, t_args[i]); + p_strdup(auth_passdb->pool, t_args[i]); } else { i_fatal("passdb pam: Unknown setting: %s", t_args[i]); } diff --git a/src/auth/passdb-passwd-file.c b/src/auth/passdb-passwd-file.c index 49da1e60b4..42b2f71831 100644 --- a/src/auth/passdb-passwd-file.c +++ b/src/auth/passdb-passwd-file.c @@ -14,7 +14,6 @@ struct passwd_file_passdb_module { struct passdb_module module; - struct auth *auth; struct db_passwd_file *pwf; }; @@ -136,9 +135,9 @@ passwd_file_preinit(struct auth_passdb *auth_passdb, const char *args) args++; if (strcmp(key, "scheme") == 0) - scheme = p_strdup(auth_passdb->auth->pool, value); + scheme = p_strdup(auth_passdb->pool, value); else if (strcmp(key, "username_format") == 0) - format = p_strdup(auth_passdb->auth->pool, value); + format = p_strdup(auth_passdb->pool, value); else i_fatal("passdb passwd-file: Unknown setting: %s", key); } @@ -146,17 +145,15 @@ passwd_file_preinit(struct auth_passdb *auth_passdb, const char *args) if (*args == '\0') i_fatal("passdb passwd-file: Missing args"); - module = p_new(auth_passdb->auth->pool, - struct passwd_file_passdb_module, 1); - module->auth = auth_passdb->auth; + module = p_new(auth_passdb->pool, struct passwd_file_passdb_module, 1); module->pwf = db_passwd_file_init(args, format, FALSE, - module->auth->set->debug); + global_auth_settings->debug); if (!module->pwf->vars) module->module.cache_key = format; else { module->module.cache_key = - auth_cache_parse_key(auth_passdb->auth->pool, + auth_cache_parse_key(auth_passdb->pool, t_strconcat(format, module->pwf->path, NULL)); } diff --git a/src/auth/passdb-sql.c b/src/auth/passdb-sql.c index 167129f7ef..2b54a0f633 100644 --- a/src/auth/passdb-sql.c +++ b/src/auth/passdb-sql.c @@ -230,11 +230,11 @@ passdb_sql_preinit(struct auth_passdb *auth_passdb, const char *args) struct sql_passdb_module *module; struct sql_connection *conn; - module = p_new(auth_passdb->auth->pool, struct sql_passdb_module, 1); + module = p_new(auth_passdb->pool, struct sql_passdb_module, 1); module->conn = conn = db_sql_init(args); module->module.cache_key = - auth_cache_parse_key(auth_passdb->auth->pool, + auth_cache_parse_key(auth_passdb->pool, conn->set.password_query); module->module.default_pass_scheme = conn->set.default_pass_scheme; return &module->module; diff --git a/src/auth/passdb-vpopmail.c b/src/auth/passdb-vpopmail.c index 71ce5a7e4e..dc4532ff05 100644 --- a/src/auth/passdb-vpopmail.c +++ b/src/auth/passdb-vpopmail.c @@ -164,15 +164,14 @@ vpopmail_preinit(struct auth_passdb *auth_passdb, const char *args) struct vpopmail_passdb_module *module; const char *const *tmp; - module = p_new(auth_passdb->auth->pool, - struct vpopmail_passdb_module, 1); + module = p_new(auth_passdb->pool, struct vpopmail_passdb_module, 1); module->module.default_pass_scheme = VPOPMAIL_DEFAULT_PASS_SCHEME; tmp = t_strsplit_spaces(args, " "); for (; *tmp != NULL; tmp++) { if (strncmp(*tmp, "cache_key=", 10) == 0) { module->module.cache_key = - auth_cache_parse_key(auth_passdb->auth->pool, + auth_cache_parse_key(auth_passdb->pool, *tmp + 10); } else if (strncmp(*tmp, "webmail=", 8) == 0) { if (net_addr2ip(*tmp + 8, &module->webmail_ip) < 0) diff --git a/src/auth/passdb.c b/src/auth/passdb.c index 5fb7fddecc..2c8d190bd0 100644 --- a/src/auth/passdb.c +++ b/src/auth/passdb.c @@ -161,7 +161,7 @@ passdb_preinit(struct auth *auth, struct auth_passdb_settings *set) struct auth_passdb *auth_passdb, **dest; auth_passdb = p_new(auth->pool, struct auth_passdb, 1); - auth_passdb->auth = auth; + auth_passdb->pool = auth->pool; auth_passdb->args = set->args == NULL ? "" : p_strdup(auth->pool, set->args); auth_passdb->deny = set->deny; diff --git a/src/auth/userdb-blocking.c b/src/auth/userdb-blocking.c index cfcd804704..b6371f47a8 100644 --- a/src/auth/userdb-blocking.c +++ b/src/auth/userdb-blocking.c @@ -48,8 +48,7 @@ void userdb_blocking_lookup(struct auth_request *request) auth_request_export(request, reply); auth_request_ref(request); - auth_worker_call(request->auth, request->pool, reply, - user_callback, request); + auth_worker_call(request->pool, reply, user_callback, request); } static bool iter_callback(const char *reply, void *context) @@ -89,8 +88,7 @@ userdb_blocking_iter_init(struct auth_userdb *userdb, ctx->ctx.context = context; ctx->pool = pool; - ctx->conn = auth_worker_call(userdb->auth, pool, reply, - iter_callback, ctx); + ctx->conn = auth_worker_call(pool, reply, iter_callback, ctx); return &ctx->ctx; } diff --git a/src/auth/userdb-checkpassword.c b/src/auth/userdb-checkpassword.c index 55b6e0af4a..e6c0432672 100644 --- a/src/auth/userdb-checkpassword.c +++ b/src/auth/userdb-checkpassword.c @@ -222,9 +222,9 @@ checkpassword_preinit(struct auth_userdb *auth_userdb, const char *args) { struct checkpassword_userdb_module *module; - module = p_new(auth_userdb->auth->pool, + module = p_new(auth_userdb->pool, struct checkpassword_userdb_module, 1); - module->checkpassword_path = p_strdup(auth_userdb->auth->pool, args); + module->checkpassword_path = p_strdup(auth_userdb->pool, args); module->checkpassword_reply_path = PKG_LIBEXECDIR"/checkpassword-reply"; diff --git a/src/auth/userdb-ldap.c b/src/auth/userdb-ldap.c index ebecbc4ad8..0ef9e50030 100644 --- a/src/auth/userdb-ldap.c +++ b/src/auth/userdb-ldap.c @@ -35,7 +35,7 @@ struct userdb_iter_ldap_request { struct ldap_userdb_iterate_context { struct userdb_iterate_context ctx; struct userdb_iter_ldap_request request; - struct auth *auth; + pool_t pool; struct ldap_connection *conn; bool continued, in_callback; }; @@ -189,18 +189,16 @@ userdb_ldap_iterate_init(struct auth_userdb *userdb, ctx->ctx.userdb = userdb->userdb; ctx->ctx.callback = callback; ctx->ctx.context = context; - ctx->auth = userdb->auth; ctx->conn = conn; request = &ctx->request; request->ctx = ctx; - request->request.request.auth_request = - auth_request_new_dummy(userdb->auth); + request->request.request.auth_request = auth_request_new_dummy(NULL); request->request.base = conn->set.base; request->request.filter = conn->set.iterate_filter; request->request.attributes = conn->iterate_attr_names; - if (userdb->auth->set->debug) { + if (global_auth_settings->debug) { i_debug("ldap: iterate: base=%s scope=%s filter=%s fields=%s", conn->set.base, conn->set.scope, request->request.filter, attr_names == NULL ? "(all)" : @@ -239,7 +237,7 @@ userdb_ldap_preinit(struct auth_userdb *auth_userdb, const char *args) struct ldap_userdb_module *module; struct ldap_connection *conn; - module = p_new(auth_userdb->auth->pool, struct ldap_userdb_module, 1); + module = p_new(auth_userdb->pool, struct ldap_userdb_module, 1); module->conn = conn = db_ldap_init(args); conn->user_attr_map = hash_table_create(default_pool, conn->pool, 0, str_hash, @@ -254,7 +252,7 @@ userdb_ldap_preinit(struct auth_userdb *auth_userdb, const char *args) &conn->iterate_attr_names, conn->iterate_attr_map, NULL); module->module.cache_key = - auth_cache_parse_key(auth_userdb->auth->pool, + auth_cache_parse_key(auth_userdb->pool, t_strconcat(conn->set.base, conn->set.user_filter, NULL)); return &module->module; diff --git a/src/auth/userdb-nss.c b/src/auth/userdb-nss.c index 7fc27d85e9..ad9494aa29 100644 --- a/src/auth/userdb-nss.c +++ b/src/auth/userdb-nss.c @@ -105,7 +105,7 @@ userdb_nss_preinit(struct auth_userdb *auth_userdb, const char *args) { struct nss_userdb_module *module; const char *const *tmp; - pool_t pool = auth_userdb->auth->pool; + pool_t pool = auth_userdb->pool; module = p_new(pool, struct nss_userdb_module, 1); module->bufsize = sysconf(_SC_GETPW_R_SIZE_MAX); diff --git a/src/auth/userdb-passwd-file.c b/src/auth/userdb-passwd-file.c index f343bcd345..50ef25a92d 100644 --- a/src/auth/userdb-passwd-file.c +++ b/src/auth/userdb-passwd-file.c @@ -25,7 +25,6 @@ struct passwd_file_userdb_iterate_context { struct passwd_file_userdb_module { struct userdb_module module; - struct auth *auth; struct db_passwd_file *pwf; }; @@ -168,8 +167,7 @@ passwd_file_preinit(struct auth_userdb *auth_userdb, const char *args) format = args; args = ""; } else { - format = p_strdup_until(auth_userdb->auth->pool, - args, p); + format = p_strdup_until(auth_userdb->pool, args, p); args = p + 1; } } @@ -177,17 +175,15 @@ passwd_file_preinit(struct auth_userdb *auth_userdb, const char *args) if (*args == '\0') i_fatal("userdb passwd-file: Missing args"); - module = p_new(auth_userdb->auth->pool, - struct passwd_file_userdb_module, 1); - module->auth = auth_userdb->auth; + module = p_new(auth_userdb->pool, struct passwd_file_userdb_module, 1); module->pwf = db_passwd_file_init(args, format, TRUE, - module->auth->set->debug); + global_auth_settings->debug); if (!module->pwf->vars) module->module.cache_key = PASSWD_FILE_CACHE_KEY; else { module->module.cache_key = - auth_cache_parse_key(auth_userdb->auth->pool, + auth_cache_parse_key(auth_userdb->pool, t_strconcat(PASSWD_FILE_CACHE_KEY, module->pwf->path, NULL)); diff --git a/src/auth/userdb-passwd.c b/src/auth/userdb-passwd.c index 35ce6cdd94..9932d5e63c 100644 --- a/src/auth/userdb-passwd.c +++ b/src/auth/userdb-passwd.c @@ -140,9 +140,9 @@ passwd_passwd_preinit(struct auth_userdb *auth_userdb, const char *args) struct passwd_userdb_module *module; const char *value; - module = p_new(auth_userdb->auth->pool, struct passwd_userdb_module, 1); + module = p_new(auth_userdb->pool, struct passwd_userdb_module, 1); module->module.cache_key = USER_CACHE_KEY; - module->tmpl = userdb_static_template_build(auth_userdb->auth->pool, + module->tmpl = userdb_static_template_build(auth_userdb->pool, "passwd", args); if (userdb_static_template_remove(module->tmpl, "blocking", diff --git a/src/auth/userdb-sql.c b/src/auth/userdb-sql.c index 7239c75ea1..d3b888c706 100644 --- a/src/auth/userdb-sql.c +++ b/src/auth/userdb-sql.c @@ -230,11 +230,11 @@ userdb_sql_preinit(struct auth_userdb *auth_userdb, const char *args) { struct sql_userdb_module *module; - module = p_new(auth_userdb->auth->pool, struct sql_userdb_module, 1); + module = p_new(auth_userdb->pool, struct sql_userdb_module, 1); module->conn = db_sql_init(args); module->module.cache_key = - auth_cache_parse_key(auth_userdb->auth->pool, + auth_cache_parse_key(auth_userdb->pool, module->conn->set.user_query); return &module->module; } diff --git a/src/auth/userdb-static.c b/src/auth/userdb-static.c index f1cc72b50a..d6fee5d191 100644 --- a/src/auth/userdb-static.c +++ b/src/auth/userdb-static.c @@ -217,8 +217,8 @@ static_preinit(struct auth_userdb *auth_userdb, const char *args) struct static_userdb_module *module; const char *value; - module = p_new(auth_userdb->auth->pool, struct static_userdb_module, 1); - module->tmpl = userdb_static_template_build(auth_userdb->auth->pool, + module = p_new(auth_userdb->pool, struct static_userdb_module, 1); + module->tmpl = userdb_static_template_build(auth_userdb->pool, "static", args); if (userdb_static_template_remove(module->tmpl, "allow_all_users", diff --git a/src/auth/userdb-vpopmail.c b/src/auth/userdb-vpopmail.c index 533c8645fd..1e146825c6 100644 --- a/src/auth/userdb-vpopmail.c +++ b/src/auth/userdb-vpopmail.c @@ -141,7 +141,7 @@ vpopmail_preinit(struct auth_userdb *auth_userdb, const char *args) { struct vpopmail_userdb_module *module; const char *const *tmp, *p; - pool_t pool = auth_userdb->auth->pool; + pool_t pool = auth_userdb->pool; module = p_new(pool, struct vpopmail_userdb_module, 1); diff --git a/src/auth/userdb.c b/src/auth/userdb.c index 7cfe2967fd..13e44b22d4 100644 --- a/src/auth/userdb.c +++ b/src/auth/userdb.c @@ -112,7 +112,7 @@ void userdb_preinit(struct auth *auth, struct auth_userdb_settings *set) struct auth_userdb *auth_userdb, **dest; auth_userdb = p_new(auth->pool, struct auth_userdb, 1); - auth_userdb->auth = auth; + auth_userdb->pool = auth->pool; auth_userdb->args = set->args == NULL ? "" : p_strdup(auth->pool, set->args); -- 2.47.3