Lines Matching defs:passdb
7 #include "passdb.h"
35 /* replacing a "support not compiled in" passdb */
158 /* We're doing a passdb lookup (not authenticating).
162 passdb lookup. auth_request_lookup_credentials_finish()
196 struct passdb_module *passdb;
206 i_fatal("Unknown passdb driver '%s'", set->driver);
208 i_fatal("Support not compiled in for passdb driver '%s'",
213 i_fatal("passdb %s: No args are supported: %s",
217 passdb = passdb_find(set->driver, set->args, &idx);
218 if (passdb != NULL)
219 return passdb;
222 passdb = p_new(pool, struct passdb_module, 1);
224 passdb = iface->preinit(pool, set->args);
225 passdb->id = ++auth_passdb_id;
226 passdb->iface = *iface;
227 passdb->args = p_strdup(pool, set->args);
229 passdb->mechanisms = NULL;
231 passdb->mechanisms = (const char *const[]){NULL};
233 passdb->mechanisms = (const char* const*)p_strsplit_spaces(pool, set->mechanisms, " ,");
237 passdb->username_filter = NULL;
239 passdb->username_filter = (const char* const*)p_strsplit_spaces(pool, set->username_filter, " ,");
241 array_append(&passdb_modules, &passdb, 1);
242 return passdb;
245 void passdb_init(struct passdb_module *passdb)
247 if (passdb->iface.init != NULL && passdb->init_refcount == 0)
248 passdb->iface.init(passdb);
249 passdb->init_refcount++;
252 void passdb_deinit(struct passdb_module *passdb)
256 i_assert(passdb->init_refcount > 0);
258 if (--passdb->init_refcount > 0)
261 if (passdb_find(passdb->iface.name, passdb->args, &idx) == NULL)
265 if (passdb->iface.deinit != NULL)
266 passdb->iface.deinit(passdb);
268 /* make sure passdb isn't accessed again */
269 passdb->iface = passdb_iface_deinit;