From ddfb267b0e72499f6022981733264a063ec881f0 Mon Sep 17 00:00:00 2001 From: Rich Felker Date: Thu, 4 Apr 2013 19:23:47 -0400 Subject: add put*ent functions for passwd/group files and similar for shadow since shadow does not yet support enumeration (getspent), the corresponding FILE-based get and put versions are also subbed out for now. this is partly out of laziness and partly because it's not clear how they should work in the presence of TCB shadow files. the stubs should make it possible to compile some software that expects them to exist, but such software still may not work properly. --- src/passwd/fgetspent.c | 11 +++++++++++ src/passwd/putgrent.c | 14 ++++++++++++++ src/passwd/putpwent.c | 9 +++++++++ 3 files changed, 34 insertions(+) create mode 100644 src/passwd/fgetspent.c create mode 100644 src/passwd/putgrent.c create mode 100644 src/passwd/putpwent.c (limited to 'src/passwd') diff --git a/src/passwd/fgetspent.c b/src/passwd/fgetspent.c new file mode 100644 index 00000000..a9a3c970 --- /dev/null +++ b/src/passwd/fgetspent.c @@ -0,0 +1,11 @@ +#include "pwf.h" + +struct spwd *fgetspent(FILE *f) +{ + return 0; +} + +int putspent(const struct spwd *sp, FILE *f) +{ + return -1; +} diff --git a/src/passwd/putgrent.c b/src/passwd/putgrent.c new file mode 100644 index 00000000..d7847b15 --- /dev/null +++ b/src/passwd/putgrent.c @@ -0,0 +1,14 @@ +#include +#include + +int putgrent(const struct group *gr, FILE *f) +{ + int r; + size_t i; + flockfile(f); + r = fprintf(f, "%s:%s:%d:", gr->gr_name, gr->gr_passwd, gr->gr_gid); + if (gr->gr_mem) for (i=0; gr->gr_mem[i]; i++) + if (fprintf(f, "%s%s", i?",":"", gr->gr_mem[i])<0) r = -1; + funlockfile(f); + return r<0 ? -1 : 0; +} diff --git a/src/passwd/putpwent.c b/src/passwd/putpwent.c new file mode 100644 index 00000000..80fbf384 --- /dev/null +++ b/src/passwd/putpwent.c @@ -0,0 +1,9 @@ +#include +#include + +int putpwent(const struct passwd *pw, FILE *f) +{ + return fprintf(f, "%s:%s:%d:%d:%s:%s:%s\n", + pw->pw_name, pw->pw_passwd, pw->pw_uid, pw->pw_gid, + pw->pw_gecos, pw->pw_dir, pw->pw_shell)<0 ? -1 : 0; +} -- cgit v1.2.1