summaryrefslogtreecommitdiffstats
path: root/src
diff options
context:
space:
mode:
authorRichard Basch <probe@mit.edu>1996-03-15 06:28:23 +0000
committerRichard Basch <probe@mit.edu>1996-03-15 06:28:23 +0000
commit71635eb47aed00576ba602981c51596b3fd4b203 (patch)
tree2a50c5939f6e5d012b56df61c55050c5934b9aa1 /src
parent1bd86e0b224420fdf0312b81c184f32cf38f3a87 (diff)
Added shadow password support
git-svn-id: svn://anonsvn.mit.edu/krb5/trunk@7640 dc483132-0cff-0310-8789-dd5450dbe970
Diffstat (limited to 'src')
-rw-r--r--src/appl/gssftp/ftpd/ChangeLog4
-rw-r--r--src/appl/gssftp/ftpd/configure.in13
-rw-r--r--src/appl/gssftp/ftpd/ftpd.c13
3 files changed, 30 insertions, 0 deletions
diff --git a/src/appl/gssftp/ftpd/ChangeLog b/src/appl/gssftp/ftpd/ChangeLog
index 010009f4b..1759aa776 100644
--- a/src/appl/gssftp/ftpd/ChangeLog
+++ b/src/appl/gssftp/ftpd/ChangeLog
@@ -1,3 +1,7 @@
+Fri Mar 15 01:24:39 1996 Richard Basch <basch@lehman.com>
+
+ * configure.in, ftpd.c: Added shadow password support.
+
Fri Feb 16 15:51:59 1996 Mark Eichin <eichin@cygnus.com>
* ftpcmd.y (yylex): error handling changes from kbalk@hp.com.
diff --git a/src/appl/gssftp/ftpd/configure.in b/src/appl/gssftp/ftpd/configure.in
index 2f60d9081..f7e4c8739 100644
--- a/src/appl/gssftp/ftpd/configure.in
+++ b/src/appl/gssftp/ftpd/configure.in
@@ -27,6 +27,19 @@ SETENVOBJ=setenv.o
AC_SUBST([SETENVSRC])
AC_SUBST([SETENVOBJ])
fi
+AC_MSG_CHECKING([shadow password support])
+AC_CACHE_VAL(krb5_cv_shadow_pwd,
+[AC_TRY_LINK(
+[#include <sys/types.h>
+#include <pwd.h>
+#include <shadow.h>],
+[struct spwd *sp = getspnam("root")],
+krb5_cv_shadow_pwd=yes, krb5_cv_shadow_pwd=no)])
+AC_MSG_RESULT($krb5_cv_shadow_pwd)
+if test $krb5_cv_shadow_pwd = yes; then
+AC_DEFINE(HAVE_SHADOW)
+fi
+dnl
dnl
USE_ANAME
KRB5_LIBRARIES
diff --git a/src/appl/gssftp/ftpd/ftpd.c b/src/appl/gssftp/ftpd/ftpd.c
index cb531ce82..6f3e9cf06 100644
--- a/src/appl/gssftp/ftpd/ftpd.c
+++ b/src/appl/gssftp/ftpd/ftpd.c
@@ -65,6 +65,9 @@ static char sccsid[] = "@(#)ftpd.c 5.40 (Berkeley) 7/2/91";
#include <fcntl.h>
#include <time.h>
#include <pwd.h>
+#ifdef HAVE_SHADOW
+#include <shadow.h>
+#endif
#include <setjmp.h>
#include <netdb.h>
#include <errno.h>
@@ -468,6 +471,9 @@ sgetpwnam(name)
{
static struct passwd save;
register struct passwd *p;
+#ifdef HAVE_SHADOW
+ register struct spwd *sp;
+#endif
char *sgetsave();
if ((p = getpwnam(name)) == NULL)
@@ -481,7 +487,14 @@ sgetpwnam(name)
}
save = *p;
save.pw_name = sgetsave(p->pw_name);
+#ifdef HAVE_SHADOW
+ if ((sp = getspnam(name)) == NULL)
+ save.pw_passwd = sgetsave(p->pw_passwd);
+ else
+ save.pw_passwd = sgetsave(sp->sp_pwdp);
+#else
save.pw_passwd = sgetsave(p->pw_passwd);
+#endif
save.pw_gecos = sgetsave(p->pw_gecos);
save.pw_dir = sgetsave(p->pw_dir);
save.pw_shell = sgetsave(p->pw_shell);