From ab839f4a5723451a880c71019ab8ab9567fda317 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Bj=C3=B6rn=20Groenvall?= Date: Mon, 30 Sep 1996 15:29:06 +0000 Subject: [PATCH] Better support for shadow passwords. git-svn-id: svn://svn.h5l.se/heimdal/trunk/heimdal@816 ec53bebd-3082-4978-b11e-865c3cabbd6b --- lib/roken/Makefile.in | 3 ++- lib/roken/k_getpwuid.c | 28 ++++++++++++++++++++++++++++ lib/roken/roken.h | 1 + lib/roken/roken.h.in | 1 + 4 files changed, 32 insertions(+), 1 deletion(-) create mode 100644 lib/roken/k_getpwuid.c diff --git a/lib/roken/Makefile.in b/lib/roken/Makefile.in index 0fe3e3e3d..65bb93683 100644 --- a/lib/roken/Makefile.in +++ b/lib/roken/Makefile.in @@ -31,7 +31,8 @@ SHLIBEXT = @SHLIBEXT@ SHARED = @SHARED@ LIB = $(LIBNAME).$(LIBEXT) -OBJECTS = k_getpwnam.o signal.o tm2time.o verify.o inaddr2str.o mini_inetd.o \ +OBJECTS = k_getpwuid.o k_getpwnam.o signal.o tm2time.o \ + verify.o inaddr2str.o mini_inetd.o \ @LIBOBJS@ all: $(LIB) diff --git a/lib/roken/k_getpwuid.c b/lib/roken/k_getpwuid.c new file mode 100644 index 000000000..1e15d9b86 --- /dev/null +++ b/lib/roken/k_getpwuid.c @@ -0,0 +1,28 @@ +#ifdef HAVE_CONFIG_H +#include +RCSID("$Id$"); +#endif /* HAVE_CONFIG_H */ + +#include "roken.h" +#ifdef HAVE_SHADOW_H +#include +#endif + +struct passwd * +k_getpwuid (uid_t uid) +{ + struct passwd *p; + + p = getpwuid (uid); +#ifdef HAVE_GETSPUID + if (p) + { + struct spwd *spwd; + + spwd = getspuid (uid); + if (spwd) + p->pw_passwd = spwd->sp_pwdp; + } +#endif + return p; +} diff --git a/lib/roken/roken.h b/lib/roken/roken.h index 1d72b7641..f168df07e 100644 --- a/lib/roken/roken.h +++ b/lib/roken/roken.h @@ -82,6 +82,7 @@ char *getstr(char *id, char **cpp); #include struct passwd *k_getpwnam (char *user); +struct passwd *k_getpwuid (uid_t uid); #include #include diff --git a/lib/roken/roken.h.in b/lib/roken/roken.h.in index 1d72b7641..f168df07e 100644 --- a/lib/roken/roken.h.in +++ b/lib/roken/roken.h.in @@ -82,6 +82,7 @@ char *getstr(char *id, char **cpp); #include struct passwd *k_getpwnam (char *user); +struct passwd *k_getpwuid (uid_t uid); #include #include