diff options
-rw-r--r-- | source3/include/includes.h | 6 | ||||
-rw-r--r-- | source3/smbd/password.c | 9 |
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 |