PAM_EXTERN int pam_sm_authenticate (pam_handle_t *pamh, int flags UNUSED, int argc, const char **argv) { int ctrl; ctrl = _pam_parse(pamh, argc, argv); return check_for_root (pamh, ctrl); }
/* * Main. */ int main (int argc, char* argv[]) { struct command_line cmdline; int rc, finalrc; /* Find out what we're supposed to do */ rc = get_command_line (argc, argv, &cmdline); if (rc) { return 1; } rc= check_key_state (&cmdline); if (rc) { return 1; } /* Check for priority options --help and --version */ if (cmdline.parm[cmd_keyword_help].kw_given) { print_usage (); return 0; } else if (cmdline.parm[cmd_keyword_version].kw_given) { print_version (); return 0; } /* Make sure we're running as root */ if (check_for_root ()) { return 1; } /* Do each of the commands on each of the devices * and don't care about the return codes */ if (cmdline.device_id >= argc) { error_print ("Missing device"); print_usage (); return 1; } finalrc = 0; while (cmdline.device_id < argc) { rc = do_command (argv[cmdline.device_id], cmdline); if (rc && !finalrc) finalrc = rc; cmdline.device_id++; } return finalrc; }