openbsd-ports/x11/xscreensaver/patches/patch-driver_passwd_c
ajacoutot b07103d717 - implement bsd_auth(3) authentication ; benefits:
* no need to run xscreensaver setuid root anymore
* you can use whatever passwd backend you configured in login.conf(5)
  (kerberos, ldap...) to unlock the screen and not just local passwd

Sent upstream.

feedback from millert@
"get it in" jasper@
2008-10-27 19:49:39 +00:00

25 lines
1.1 KiB
Plaintext

$OpenBSD: patch-driver_passwd_c,v 1.1 2008/10/27 19:49:39 ajacoutot Exp $
--- driver/passwd.c.orig Sun Mar 2 06:04:35 2008
+++ driver/passwd.c Sat Oct 25 01:04:27 2008
@@ -78,6 +78,9 @@ extern void pam_try_unlock (saver_info *si, Bool verbo
extern Bool ext_priv_init (int argc, char **argv, Bool verbose_p);
extern Bool ext_passwd_valid_p (const char *typed_passwd, Bool verbose_p);
#endif
+#ifdef BSD_AUTH
+extern Bool bsdauth_passwd_valid_p (const char *typed_passwd, Bool verbose_p);
+#endif
extern Bool pwent_lock_init (int argc, char **argv, Bool verbose_p);
extern Bool pwent_priv_init (int argc, char **argv, Bool verbose_p);
extern Bool pwent_passwd_valid_p (const char *typed_passwd, Bool verbose_p);
@@ -104,6 +107,10 @@ struct auth_methods methods[] = {
{ "external", 0, ext_priv_init, ext_passwd_valid_p, 0,
False, False },
# endif
+# ifdef BSD_AUTH
+ { "bsd_auth", 0, 0, bsdauth_passwd_valid_p, 0,
+ False, False },
+#endif
{ "normal", pwent_lock_init, pwent_priv_init, pwent_passwd_valid_p, 0,
False, False }
};