* This replaces auth-pam.c
*/
void
start_pam(const char *user)
start_pam(const char *user, Authctxt *authctxt)
{
if (!options.use_pam)
fatal("PAM: initialisation requested when UsePAM=no");
if (sshpam_init(user) == -1)
fatal("PAM: initialisation failed");
force_pwchange = &authctxt->force_pwchange;
}
# define SSHD_PAM_SERVICE __progname
#endif
void start_pam(const char *);
void start_pam(const char *, Authctxt *);
void finish_pam(void);
u_int do_pam_account(void);
void do_pam_session(void);
#ifdef USE_PAM
if (options.use_pam)
PRIVSEP(start_pam(user));
PRIVSEP(start_pam(user, authctxt));
/*
debug2("input_userauth_request: setting up authctxt for %s", user);
PRIVSEP(start_pam(authctxt->pw->pw_name));
PRIVSEP(start_pam(authctxt->pw->pw_name, authctxt));
} else {
logit("input_userauth_request: illegal user %s", user);
authctxt->pw = fakepw();
setproctitle("%s%s", authctxt->pw ? user : "unknown",
user = buffer_get_string(m, NULL);
start_pam(user);
start_pam(user, authctxt);
xfree(user);
mm_start_pam(char *user)
mm_start_pam(char *user, struct Authctxt *authctxt)
Buffer m;
void mm_start_pam(char *);
void mm_start_pam(char *, struct Authctxt *authctxt);
u_int mm_do_pam_account(void);
void *mm_sshpam_init_ctx(struct Authctxt *);
int mm_sshpam_query(void *, char **, char **, u_int *, char ***, u_int **);