** Platform identification:
**
** __hpux HP-UX OS only
- ** __apollo Domain OS only
** sun SUN OS only
** SVR4 SUN OS et al.
** _AIX AIX only
/*
* Define as generic those without platform specific code.
*/
-#if !(defined(__hpux) || defined(__apollo) || defined(_AIX) || defined(sun))
+#if !(defined(__hpux) || defined(_AIX) || defined(sun))
#define generic
#endif
-#if defined(linux)
+#if defined(__linux__)
# include <shadow.h>
#endif
#ifdef __PASSWD_ETC
/*
- * If regular passwd check fails, try old-style Apollo SR
+ * If regular passwd check fails, try old-style SR
*/
if (rgy_$is_des(passwd, strlen(passwd), p->pw_passwd) == TRUE)
p = getpwnam(name);
-#if defined(linux)
+#if defined(__linux__)
/*
* Use the Linux Shadow Password system to get the crypt()ed password
*/
}
#endif
+#if defined(__OpenBSD__) && OSMAJORVERSION > 5
+ /*
+ * Use the OpenBSD getpwnam_shadow function to get the crypt()ed password
+ */
+ p = getpwnam_shadow(name);
+#endif
+
if (!p || strlen(name) == 0 ||
strcmp (crypt (passwd, p->pw_passwd), p->pw_passwd)) {