From: Timo Sirainen Date: Thu, 6 Nov 2025 12:33:40 +0000 (+0200) Subject: auth: passdb.preinit() - Add passdb_parameters parameter X-Git-Url: http://git.ipfire.org/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=681e8365660407a0ff5f72cbce7e0348fb158bff;p=thirdparty%2Fdovecot%2Fcore.git auth: passdb.preinit() - Add passdb_parameters parameter --- diff --git a/src/auth/passdb-bsdauth.c b/src/auth/passdb-bsdauth.c index 1b86da4053..c4d1bda4e8 100644 --- a/src/auth/passdb-bsdauth.c +++ b/src/auth/passdb-bsdauth.c @@ -89,6 +89,7 @@ bsdauth_verify_plain(struct auth_request *request, const char *password, static int bsdauth_preinit(pool_t pool, struct event *event, + const struct passdb_parameters *passdb_params ATTR_UNUSED, struct passdb_module **module_r, const char **error_r) { diff --git a/src/auth/passdb-ldap.c b/src/auth/passdb-ldap.c index 6d7702c629..bc93b54509 100644 --- a/src/auth/passdb-ldap.c +++ b/src/auth/passdb-ldap.c @@ -438,9 +438,11 @@ static void ldap_lookup_credentials(struct auth_request *request, settings_free(ldap_pre); } -static int passdb_ldap_preinit(pool_t pool, struct event *event, - struct passdb_module **module_r, - const char **error_r) +static int +passdb_ldap_preinit(pool_t pool, struct event *event, + const struct passdb_parameters *passdb_params ATTR_UNUSED, + struct passdb_module **module_r, + const char **error_r) { const struct auth_passdb_post_settings *auth_post = NULL; const struct ldap_pre_settings *ldap_pre = NULL; diff --git a/src/auth/passdb-lua.c b/src/auth/passdb-lua.c index 861dca7858..d97903b426 100644 --- a/src/auth/passdb-lua.c +++ b/src/auth/passdb-lua.c @@ -106,6 +106,7 @@ passdb_lua_verify_plain(struct auth_request *request, const char *password, static int passdb_lua_preinit(pool_t pool, struct event *event, + const struct passdb_parameters *passdb_params ATTR_UNUSED, struct passdb_module **module_r, const char **error_r) { struct dlua_passdb_module *module; diff --git a/src/auth/passdb-oauth2.c b/src/auth/passdb-oauth2.c index 91fed06018..278fc45605 100644 --- a/src/auth/passdb-oauth2.c +++ b/src/auth/passdb-oauth2.c @@ -44,7 +44,9 @@ oauth2_verify_plain(struct auth_request *request, const char *password, } static int -oauth2_preinit(pool_t pool, struct event *event, struct passdb_module **module_r, +oauth2_preinit(pool_t pool, struct event *event, + const struct passdb_parameters *passdb_params ATTR_UNUSED, + struct passdb_module **module_r, const char **error_r) { struct oauth2_passdb_module *module; diff --git a/src/auth/passdb-pam.c b/src/auth/passdb-pam.c index fdf0f573ef..87a8863509 100644 --- a/src/auth/passdb-pam.c +++ b/src/auth/passdb-pam.c @@ -391,8 +391,10 @@ pam_verify_plain(struct auth_request *request, const char *password, } -static int pam_preinit(pool_t pool, struct event *event, - struct passdb_module **module_r, const char **error_r) +static int +pam_preinit(pool_t pool, struct event *event, + const struct passdb_parameters *passdb_params ATTR_UNUSED, + struct passdb_module **module_r, const char **error_r) { const struct auth_pam_settings *set; const struct auth_passdb_post_settings *post_set; diff --git a/src/auth/passdb-passwd-file.c b/src/auth/passdb-passwd-file.c index dcac36d0d6..0520a0717f 100644 --- a/src/auth/passdb-passwd-file.c +++ b/src/auth/passdb-passwd-file.c @@ -145,6 +145,7 @@ passwd_file_lookup_credentials(struct auth_request *request, static int passwd_file_preinit(pool_t pool, struct event *event, + const struct passdb_parameters *passdb_params ATTR_UNUSED, struct passdb_module **module_r, const char **error_r) { struct passwd_file_passdb_module *module; diff --git a/src/auth/passdb-passwd.c b/src/auth/passdb-passwd.c index 22e2eae7fa..99196d1a32 100644 --- a/src/auth/passdb-passwd.c +++ b/src/auth/passdb-passwd.c @@ -127,9 +127,11 @@ passwd_lookup_credentials(struct auth_request *request, PASSWD_PASS_SCHEME, callback, request); } -static int passwd_preinit(pool_t pool, struct event *event, - struct passdb_module **module_r, - const char **error_r ) +static int +passwd_preinit(pool_t pool, struct event *event, + const struct passdb_parameters *passdb_params ATTR_UNUSED, + struct passdb_module **module_r, + const char **error_r) { const struct auth_passdb_post_settings *post_set; struct passdb_module *module = p_new(pool, struct passdb_module, 1); diff --git a/src/auth/passdb-sql.c b/src/auth/passdb-sql.c index db1990dc47..635b6ffe9e 100644 --- a/src/auth/passdb-sql.c +++ b/src/auth/passdb-sql.c @@ -278,6 +278,7 @@ static void sql_set_credentials(struct auth_request *request, static int passdb_sql_preinit(pool_t pool, struct event *event, + const struct passdb_parameters *passdb_params ATTR_UNUSED, struct passdb_module **module_r, const char **error_r) { struct sql_passdb_module *module; diff --git a/src/auth/passdb.c b/src/auth/passdb.c index 0dd9628131..c8c3bf9dfc 100644 --- a/src/auth/passdb.c +++ b/src/auth/passdb.c @@ -187,7 +187,9 @@ passdb_preinit(pool_t pool, struct event *event, } if (iface->preinit != NULL) { - if (iface->preinit(pool, event, &passdb, &error) < 0) + struct passdb_parameters params; + i_zero(¶ms); + if (iface->preinit(pool, event, ¶ms, &passdb, &error) < 0) i_fatal("passdb %s: %s", set->name, error); passdb->default_pass_scheme = set->default_password_scheme; diff --git a/src/auth/passdb.h b/src/auth/passdb.h index 93d43f6e64..fe70d33448 100644 --- a/src/auth/passdb.h +++ b/src/auth/passdb.h @@ -34,12 +34,16 @@ typedef void lookup_credentials_callback_t(enum passdb_result result, typedef void set_credentials_callback_t(bool success, struct auth_request *request); +struct passdb_parameters { +}; + struct passdb_module_interface { const char *name; /* Create a new passdb_module based on the settings looked up via the given event. */ int (*preinit)(pool_t pool, struct event *event, + const struct passdb_parameters *passdb_params, struct passdb_module **module_r, const char **error_r); void (*init)(struct passdb_module *module); void (*deinit)(struct passdb_module *module);