From: Timo Sirainen Date: Sat, 13 Mar 2010 19:17:17 +0000 (+0200) Subject: auth: Store args in passdb/userdb_module, so init() doesn't need it as parameter. X-Git-Tag: 2.0.beta4~67 X-Git-Url: http://git.ipfire.org/gitweb.cgi?a=commitdiff_plain;h=f3d506e525a720f214020ca0f989a1966b30edae;p=thirdparty%2Fdovecot%2Fcore.git auth: Store args in passdb/userdb_module, so init() doesn't need it as parameter. --HG-- branch : HEAD --- diff --git a/src/auth/auth.c b/src/auth/auth.c index d3d82f49cc..7f624028f5 100644 --- a/src/auth/auth.c +++ b/src/auth/auth.c @@ -234,11 +234,11 @@ void auth_init(struct auth *auth) const char *const *mechanisms; for (passdb = auth->masterdbs; passdb != NULL; passdb = passdb->next) - passdb_init(passdb->passdb, passdb->set->args); + passdb_init(passdb->passdb); for (passdb = auth->passdbs; passdb != NULL; passdb = passdb->next) - passdb_init(passdb->passdb, passdb->set->args); + passdb_init(passdb->passdb); for (userdb = auth->userdbs; userdb != NULL; userdb = userdb->next) - userdb_init(userdb->userdb, userdb->set->args); + userdb_init(userdb->userdb); /* caching is handled only by the main auth process */ if (!worker) diff --git a/src/auth/passdb-ldap.c b/src/auth/passdb-ldap.c index 42a1ac9b86..b93e524721 100644 --- a/src/auth/passdb-ldap.c +++ b/src/auth/passdb-ldap.c @@ -414,8 +414,7 @@ passdb_ldap_preinit(pool_t pool, const char *args) return &module->module; } -static void passdb_ldap_init(struct passdb_module *_module, - const char *args ATTR_UNUSED) +static void passdb_ldap_init(struct passdb_module *_module) { struct ldap_passdb_module *module = (struct ldap_passdb_module *)_module; diff --git a/src/auth/passdb-passwd-file.c b/src/auth/passdb-passwd-file.c index b01e1fcf9e..9ec3585855 100644 --- a/src/auth/passdb-passwd-file.c +++ b/src/auth/passdb-passwd-file.c @@ -160,8 +160,7 @@ passwd_file_preinit(pool_t pool, const char *args) return &module->module; } -static void passwd_file_init(struct passdb_module *_module, - const char *args ATTR_UNUSED) +static void passwd_file_init(struct passdb_module *_module) { struct passwd_file_passdb_module *module = (struct passwd_file_passdb_module *)_module; diff --git a/src/auth/passdb-passwd.c b/src/auth/passdb-passwd.c index d7873c8b23..3fdb3acffb 100644 --- a/src/auth/passdb-passwd.c +++ b/src/auth/passdb-passwd.c @@ -57,12 +57,12 @@ passwd_verify_plain(struct auth_request *request, const char *password, callback(PASSDB_RESULT_OK, request); } -static void passwd_init(struct passdb_module *module, const char *args) +static void passwd_init(struct passdb_module *module) { - if (strcmp(args, "blocking=yes") == 0) + if (strcmp(module->args, "blocking=yes") == 0) module->blocking = TRUE; - else if (*args != '\0') - i_fatal("passdb passwd: Unknown setting: %s", args); + else if (*module->args != '\0') + i_fatal("passdb passwd: Unknown setting: %s", module->args); module->cache_key = PASSWD_CACHE_KEY; module->default_pass_scheme = PASSWD_PASS_SCHEME; diff --git a/src/auth/passdb-shadow.c b/src/auth/passdb-shadow.c index 9c746a0e20..8d46ab3393 100644 --- a/src/auth/passdb-shadow.c +++ b/src/auth/passdb-shadow.c @@ -57,12 +57,12 @@ shadow_verify_plain(struct auth_request *request, const char *password, callback(PASSDB_RESULT_OK, request); } -static void shadow_init(struct passdb_module *module, const char *args) +static void shadow_init(struct passdb_module *module) { - if (strcmp(args, "blocking=yes") == 0) + if (strcmp(module->args, "blocking=yes") == 0) module->blocking = TRUE; - else if (*args != '\0') - i_fatal("passdb shadow: Unknown setting: %s", args); + else if (*module->args != '\0') + i_fatal("passdb shadow: Unknown setting: %s", module->args); module->cache_key = SHADOW_CACHE_KEY; module->default_pass_scheme = SHADOW_PASS_SCHEME; diff --git a/src/auth/passdb-sql.c b/src/auth/passdb-sql.c index 153bd07d2f..fb2bb9ba8b 100644 --- a/src/auth/passdb-sql.c +++ b/src/auth/passdb-sql.c @@ -239,8 +239,7 @@ passdb_sql_preinit(pool_t pool, const char *args) return &module->module; } -static void passdb_sql_init(struct passdb_module *_module, - const char *args ATTR_UNUSED) +static void passdb_sql_init(struct passdb_module *_module) { struct sql_passdb_module *module = (struct sql_passdb_module *)_module; diff --git a/src/auth/passdb.c b/src/auth/passdb.c index 9e9cbce270..bf7b8c7b01 100644 --- a/src/auth/passdb.c +++ b/src/auth/passdb.c @@ -178,14 +178,15 @@ passdb_preinit(pool_t pool, const char *driver, const char *args) passdb = iface->preinit(pool, args); passdb->id = ++auth_passdb_id; passdb->iface = *iface; + passdb->args = p_strdup(pool, args); return passdb; } -void passdb_init(struct passdb_module *passdb, const char *args) +void passdb_init(struct passdb_module *passdb) { if (passdb->iface.init != NULL && !passdb->initialized) { passdb->initialized = TRUE; - passdb->iface.init(passdb, args); + passdb->iface.init(passdb); } i_assert(passdb->default_pass_scheme != NULL || diff --git a/src/auth/passdb.h b/src/auth/passdb.h index 5b34ba1d1e..e4cc581384 100644 --- a/src/auth/passdb.h +++ b/src/auth/passdb.h @@ -31,7 +31,7 @@ struct passdb_module_interface { const char *name; struct passdb_module *(*preinit)(pool_t pool, const char *args); - void (*init)(struct passdb_module *module, const char *args); + void (*init)(struct passdb_module *module); void (*deinit)(struct passdb_module *module); /* Check if plaintext password matches */ @@ -50,6 +50,7 @@ struct passdb_module_interface { }; struct passdb_module { + const char *args; /* The caching key for this module, or NULL if caching isn't wanted. */ const char *cache_key; /* Default password scheme for this module. @@ -86,7 +87,7 @@ void passdb_handle_credentials(enum passdb_result result, struct passdb_module * passdb_preinit(pool_t pool, const char *driver, const char *args); -void passdb_init(struct passdb_module *passdb, const char *args); +void passdb_init(struct passdb_module *passdb); void passdb_deinit(struct passdb_module *passdb); void passdb_register_module(struct passdb_module_interface *iface); diff --git a/src/auth/userdb-ldap.c b/src/auth/userdb-ldap.c index cc3b9ee210..58776b8bad 100644 --- a/src/auth/userdb-ldap.c +++ b/src/auth/userdb-ldap.c @@ -258,8 +258,7 @@ userdb_ldap_preinit(pool_t pool, const char *args) return &module->module; } -static void userdb_ldap_init(struct userdb_module *_module, - const char *args ATTR_UNUSED) +static void userdb_ldap_init(struct userdb_module *_module) { struct ldap_userdb_module *module = (struct ldap_userdb_module *)_module; diff --git a/src/auth/userdb-passwd-file.c b/src/auth/userdb-passwd-file.c index 194e5c23c5..25d8b537c8 100644 --- a/src/auth/userdb-passwd-file.c +++ b/src/auth/userdb-passwd-file.c @@ -191,8 +191,7 @@ passwd_file_preinit(pool_t pool, const char *args) return &module->module; } -static void passwd_file_init(struct userdb_module *_module, - const char *args ATTR_UNUSED) +static void passwd_file_init(struct userdb_module *_module) { struct passwd_file_userdb_module *module = (struct passwd_file_userdb_module *)_module; diff --git a/src/auth/userdb-sql.c b/src/auth/userdb-sql.c index 2cee1c10f6..d715a52a7a 100644 --- a/src/auth/userdb-sql.c +++ b/src/auth/userdb-sql.c @@ -238,8 +238,7 @@ userdb_sql_preinit(pool_t pool, const char *args) return &module->module; } -static void userdb_sql_init(struct userdb_module *_module, - const char *args ATTR_UNUSED) +static void userdb_sql_init(struct userdb_module *_module) { struct sql_userdb_module *module = (struct sql_userdb_module *)_module; diff --git a/src/auth/userdb.c b/src/auth/userdb.c index 5d0561f00c..fc22c26ee9 100644 --- a/src/auth/userdb.c +++ b/src/auth/userdb.c @@ -130,14 +130,15 @@ userdb_preinit(pool_t pool, const char *driver, const char *args) userdb = iface->preinit(pool, args); userdb->id = ++auth_userdb_id; userdb->iface = iface; + userdb->args = p_strdup(pool, args); return userdb; } -void userdb_init(struct userdb_module *userdb, const char *args) +void userdb_init(struct userdb_module *userdb) { if (userdb->iface->init != NULL && !userdb->initialized) { userdb->initialized = TRUE; - userdb->iface->init(userdb, args); + userdb->iface->init(userdb); } } diff --git a/src/auth/userdb.h b/src/auth/userdb.h index f25f47adf6..e1933e72d5 100644 --- a/src/auth/userdb.h +++ b/src/auth/userdb.h @@ -19,6 +19,7 @@ typedef void userdb_callback_t(enum userdb_result result, typedef void userdb_iter_callback_t(const char *user, void *context); struct userdb_module { + const char *args; /* The caching key for this module, or NULL if caching isn't wanted. */ const char *cache_key; @@ -45,7 +46,7 @@ struct userdb_module_interface { const char *name; struct userdb_module *(*preinit)(pool_t pool, const char *args); - void (*init)(struct userdb_module *module, const char *args); + void (*init)(struct userdb_module *module); void (*deinit)(struct userdb_module *module); void (*lookup)(struct auth_request *auth_request, @@ -64,7 +65,7 @@ gid_t userdb_parse_gid(struct auth_request *request, const char *str); struct userdb_module * userdb_preinit(pool_t pool, const char *driver, const char *args); -void userdb_init(struct userdb_module *userdb, const char *args); +void userdb_init(struct userdb_module *userdb); void userdb_deinit(struct userdb_module *userdb); void userdb_register_module(struct userdb_module_interface *iface);