Lines Matching defs:mod
472 ns_mod mod;
475 memset(&mod, 0, sizeof(mod));
476 mod.name = strdup(source);
477 if (mod.name == NULL) {
485 mod.handle = nss_builtin_handle;
490 if (snprintf(buf, sizeof(buf), "nss_%s.so.%d", mod.name,
493 mod.handle = libc_dlopen(buf, RTLD_LOCAL|RTLD_LAZY);
494 if (mod.handle == NULL) {
499 nss_log(LOG_DEBUG, "%s, %s", mod.name, dlerror());
503 fn = (nss_module_register_fn)dlfunc(mod.handle,
506 (void)dlclose(mod.handle);
507 mod.handle = NULL;
508 nss_log(LOG_ERR, "%s, %s", mod.name, dlerror());
512 mod.mtab = fn(mod.name, &mod.mtabsize, &mod.unregister);
513 if (mod.mtab == NULL || mod.mtabsize == 0) {
514 if (mod.handle != nss_builtin_handle)
515 (void)dlclose(mod.handle);
516 mod.handle = NULL;
517 nss_log(LOG_ERR, "%s, registration failed", mod.name);
520 if (mod.mtabsize > 1)
521 qsort(mod.mtab, mod.mtabsize, sizeof(mod.mtab[0]),
524 _nsmod = vector_append(&mod, _nsmod, &_nsmodsize, sizeof(*_nsmod));
531 ns_mod_free(ns_mod *mod)
534 free(mod->name);
535 if (mod->handle == NULL)
537 if (mod->unregister != NULL)
538 mod->unregister(mod->mtab, mod->mtabsize);
539 if (mod->handle != nss_builtin_handle)
540 (void)dlclose(mod->handle);
573 ns_mod *mod;
583 mod = vector_search(&source, _nsmod, _nsmodsize, sizeof(*_nsmod),
585 if (mod != NULL && mod->handle != NULL) {
588 match = bsearch(&key, mod->mtab, mod->mtabsize,
589 sizeof(mod->mtab[0]), mtab_compare);