Lines Matching refs:chain
59 * Execute a module chain
67 pam_chain_t *chain;
83 /* pick a chain */
87 chain = pamh->chains[PAM_AUTH];
90 chain = pamh->chains[PAM_ACCOUNT];
94 chain = pamh->chains[PAM_SESSION];
97 chain = pamh->chains[PAM_PASSWORD];
106 for (; chain != NULL; chain = chain->next) {
107 if (chain->module->func[primitive] == NULL) {
109 chain->module->path, pam_sm_func_name[primitive]);
113 pamh->current = chain;
118 pam_sm_func_name[primitive], chain->module->path);
119 r = (chain->module->func[primitive])(pamh, flags,
120 chain->optc, (const char **)(intptr_t)chain->optv);
123 chain->module->path, pam_sm_func_name[primitive],
138 if ((chain->flag == PAM_SUFFICIENT ||
139 chain->flag == PAM_BINDING) && !fail &&
156 if ((chain->flag == PAM_REQUIRED ||
157 chain->flag == PAM_BINDING) && !fail) {
164 * If a requisite module fails, terminate the chain
167 if (chain->flag == PAM_REQUISITE) {
178 * Require the chain to be non-empty, and at least one module
179 * in the chain to be successful, so that we don't fail open.