Lines Matching defs:chain
57 * Execute a module chain
65 pam_chain_t *chain;
81 /* pick a chain */
85 chain = pamh->chains[PAM_AUTH];
88 chain = pamh->chains[PAM_ACCOUNT];
92 chain = pamh->chains[PAM_SESSION];
95 chain = pamh->chains[PAM_PASSWORD];
104 for (; chain != NULL; chain = chain->next) {
105 if (chain->module->func[primitive] == NULL) {
107 chain->module->path, pam_sm_func_name[primitive]);
111 pamh->current = chain;
116 pam_sm_func_name[primitive], chain->module->path);
117 r = (chain->module->func[primitive])(pamh, flags,
118 chain->optc, (const char **)(intptr_t)chain->optv);
121 chain->module->path, pam_sm_func_name[primitive],
136 if ((chain->flag == PAM_SUFFICIENT ||
137 chain->flag == PAM_BINDING) && !fail &&
154 if ((chain->flag == PAM_REQUIRED ||
155 chain->flag == PAM_BINDING) && !fail) {
162 * If a requisite module fails, terminate the chain
165 if (chain->flag == PAM_REQUISITE) {
176 * Require the chain to be non-empty, and at least one module
177 * in the chain to be successful, so that we don't fail open.