userdb.c revision 2521482f3f897c83f7d5a2f9e17fe99fa4ba2cbe
a8c5a86d183db25a57bf193c06b41e092ec2e151Timo Sirainen/* Copyright (C) 2002-2003 Timo Sirainen */
96f89d51e8315f644f46804a9f0fc4f685ac48bfTimo Sirainenextern struct userdb_module_interface userdb_prefetch;
96f89d51e8315f644f46804a9f0fc4f685ac48bfTimo Sirainenextern struct userdb_module_interface userdb_static;
96f89d51e8315f644f46804a9f0fc4f685ac48bfTimo Sirainenextern struct userdb_module_interface userdb_passwd;
96f89d51e8315f644f46804a9f0fc4f685ac48bfTimo Sirainenextern struct userdb_module_interface userdb_passwd_file;
96f89d51e8315f644f46804a9f0fc4f685ac48bfTimo Sirainenextern struct userdb_module_interface userdb_vpopmail;
96f89d51e8315f644f46804a9f0fc4f685ac48bfTimo Sirainenextern struct userdb_module_interface userdb_ldap;
96f89d51e8315f644f46804a9f0fc4f685ac48bfTimo Sirainenextern struct userdb_module_interface userdb_sql;
96f89d51e8315f644f46804a9f0fc4f685ac48bfTimo Sirainenextern struct userdb_module_interface userdb_nss;
96f89d51e8315f644f46804a9f0fc4f685ac48bfTimo Sirainenstruct userdb_module_interface *userdb_interfaces[] = {
96f89d51e8315f644f46804a9f0fc4f685ac48bfTimo Sirainenuid_t userdb_parse_uid(struct auth_request *request, const char *str)
96f89d51e8315f644f46804a9f0fc4f685ac48bfTimo Sirainen if (*p == '\0')
96f89d51e8315f644f46804a9f0fc4f685ac48bfTimo Sirainengid_t userdb_parse_gid(struct auth_request *request, const char *str)
96f89d51e8315f644f46804a9f0fc4f685ac48bfTimo Sirainen if (*p == '\0')
96f89d51e8315f644f46804a9f0fc4f685ac48bfTimo Sirainenvoid userdb_preinit(struct auth *auth, const char *driver, const char *args)
96f89d51e8315f644f46804a9f0fc4f685ac48bfTimo Sirainen auth_userdb = p_new(auth->pool, struct auth_userdb, 1);
96f89d51e8315f644f46804a9f0fc4f685ac48bfTimo Sirainen auth_userdb->args = p_strdup(auth->pool, args);
96f89d51e8315f644f46804a9f0fc4f685ac48bfTimo Sirainen for (dest = &auth->userdbs; *dest != NULL; dest = &(*dest)->next)
96f89d51e8315f644f46804a9f0fc4f685ac48bfTimo Sirainen for (p = userdb_interfaces; *p != NULL; p++) {
96f89d51e8315f644f46804a9f0fc4f685ac48bfTimo Sirainen auth_userdb->module = auth_module_open(driver);
96f89d51e8315f644f46804a9f0fc4f685ac48bfTimo Sirainen "(typo, or Dovecot was built without support for it? "
96f89d51e8315f644f46804a9f0fc4f685ac48bfTimo Sirainen "Check with dovecot --build-options)",
7db7fbea5d8a07463b625f93d69166d56018dadfTimo Sirainen iface->preinit(auth_userdb, auth_userdb->args);
96f89d51e8315f644f46804a9f0fc4f685ac48bfTimo Sirainen userdb->userdb->iface->init(userdb->userdb, userdb->args);
96f89d51e8315f644f46804a9f0fc4f685ac48bfTimo Sirainen /* blocking userdb - we need an auth server */