X-Git-Url: http://git.hungrycats.org/cgi-bin/gitweb.cgi?p=xscreensaver;a=blobdiff_plain;f=driver%2Fpasswd.c;h=b55334c936aad2c53157de05298cfece5c0feeee;hp=1847d1be1f7cddce077ccc22ffdfc35c0787a96c;hb=278c59e14c53fd412b734e699bd4f314f766f804;hpb=551b3de3f619c04c2dd1971ee9b3f02e270c28c9 diff --git a/driver/passwd.c b/driver/passwd.c index 1847d1be..b55334c9 100644 --- a/driver/passwd.c +++ b/driver/passwd.c @@ -51,7 +51,7 @@ extern Bool kerberos_lock_init (int argc, char **argv, Bool verbose_p); extern Bool kerberos_passwd_valid_p (const char *typed_passwd, Bool verbose_p); #endif #ifdef HAVE_PAM -extern Bool pam_lock_init (int argc, char **argv, Bool verbose_p); +extern Bool pam_priv_init (int argc, char **argv, Bool verbose_p); extern Bool pam_passwd_valid_p (const char *typed_passwd, Bool verbose_p); #endif extern Bool pwent_lock_init (int argc, char **argv, Bool verbose_p); @@ -70,7 +70,7 @@ struct auth_methods methods[] = { False, False }, # endif # ifdef HAVE_PAM - { "PAM", pam_lock_init, 0, pam_passwd_valid_p, + { "PAM", 0, pam_priv_init, pam_passwd_valid_p, False, False }, # endif { "normal", pwent_lock_init, pwent_priv_init, pwent_passwd_valid_p, @@ -111,7 +111,11 @@ lock_init (int argc, char **argv, Bool verbose_p) if (!methods[i].priv_initted_p) /* Bail if lock_priv_init failed. */ continue; - methods[i].initted_p = methods[i].init (argc, argv, verbose_p); + if (!methods[i].init) + methods[i].initted_p = True; + else + methods[i].initted_p = methods[i].init (argc, argv, verbose_p); + if (methods[i].initted_p) any_ok = True; else if (verbose_p) @@ -136,7 +140,7 @@ passwd_valid_p (const char *typed_passwd, Bool verbose_p) an earlier authentication method fails and a later one succeeds, something screwy is probably going on.) */ - if (verbose_p) + if (verbose_p && i > 0) { for (j = 0; j < i; j++) if (methods[j].initted_p)