summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--source3/include/includes.h6
-rw-r--r--source3/smbd/password.c9
2 files changed, 15 insertions, 0 deletions
diff --git a/source3/include/includes.h b/source3/include/includes.h
index 7403fc4b64..44707673ee 100644
--- a/source3/include/includes.h
+++ b/source3/include/includes.h
@@ -968,6 +968,12 @@ typedef int mode_t;
#define HAVE_VFORK 1
#endif
+/* For UnixWare 2.x's ia_uinfo routines. (tangent@cyberport.com) */
+#ifdef IA_UINFO
+#include <iaf.h>
+#include <ia.h>
+#endif
+
/*******************************************************************
end of the platform specific sections
diff --git a/source3/smbd/password.c b/source3/smbd/password.c
index 803418c97e..2ba09f5ad9 100644
--- a/source3/smbd/password.c
+++ b/source3/smbd/password.c
@@ -887,6 +887,15 @@ BOOL password_ok(char *user,char *password, int pwlen, struct passwd *pwd)
if (spass && spass->sp_pwdp)
pass->pw_passwd = spass->sp_pwdp;
}
+#elif defined(IA_UINFO)
+ {
+ /* Need to get password with SVR4.2's ia_ functions instead of
+ get{sp,pw}ent functions. Required by UnixWare 2.x, tested on
+ version 2.1. (tangent@cyberport.com) */
+ uinfo_t uinfo;
+ if (ia_openinfo(pass->pw_name, &uinfo) != -1)
+ ia_get_logpwd(uinfo, &(pass->pw_passwd));
+ }
#endif
#ifdef SecureWare