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)
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;
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;
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;
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;
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;
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 ||
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 */
};
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.
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);
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;
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;
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;
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);
}
}
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;
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,
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);