Home | History | Annotate | Download | only in libpam

Lines Matching defs:chain

62  * Execute a module chain
70 pam_chain_t *chain;
86 /* pick a chain */
90 chain = pamh->chains[PAM_AUTH];
93 chain = pamh->chains[PAM_ACCOUNT];
97 chain = pamh->chains[PAM_SESSION];
100 chain = pamh->chains[PAM_PASSWORD];
110 for (; chain != NULL; chain = chain->next) {
111 if (chain->module->func[primitive] == NULL) {
113 chain->module->path, pam_sm_func_name[primitive]);
117 pamh->current = chain;
122 pam_sm_func_name[primitive], chain->module->path);
123 r = (chain->module->func[primitive])(pamh, flags,
124 chain->optc, (const char **)(intptr_t)chain->optv);
127 chain->module->path, pam_sm_func_name[primitive],
142 if ((chain->flag == PAM_SUFFICIENT ||
143 chain->flag == PAM_BINDING) && !fail &&
160 if ((chain->flag == PAM_REQUIRED ||
161 chain->flag == PAM_BINDING) && !fail) {
168 * If a requisite module fails, terminate the chain
171 if (chain->flag == PAM_REQUISITE) {
182 * Require the chain to be non-empty, and at least one module
183 * in the chain to be successful, so that we don't fail open.