From ab050f5522e843bf08994685134adaaac7ffd392 Mon Sep 17 00:00:00 2001 From: Eric Andersen Date: Sat, 27 Jan 2001 06:01:43 +0000 Subject: Add in a patch to make busybox use the normal pwd.h and grp.h functions. Add in simple implementations of these functions, which can, optionally, be used instead of the system versions. -Erik --- include/grp.h | 47 +++++++++++++++++++++++++++++++++++++++++++++++ include/pwd.h | 51 +++++++++++++++++++++++++++++++++++++++++++++++++++ 2 files changed, 98 insertions(+) create mode 100644 include/grp.h create mode 100644 include/pwd.h (limited to 'include') diff --git a/include/grp.h b/include/grp.h new file mode 100644 index 000000000..f27c466fd --- /dev/null +++ b/include/grp.h @@ -0,0 +1,47 @@ +#ifndef __BB_GRP_H +#define __BB_GRP_H + +#if defined USE_SYSTEM_PWD_GRP +#include +#else + +#define bb_setgrent setgrent +#define bb_endgrent endgrent +#define bb_getgrent getgrent +#define bb_getgrgid getgrgid +#define bb_getgrnam getgrnam +#define bb_fgetgrent fgetgrent +#define bb_setgroups setgroups +#define bb_initgroups initgroups +#define __bb_getgrent __getgrent + +#include +#include +#include + +/* The group structure */ +struct group +{ + char *gr_name; /* Group name. */ + char *gr_passwd; /* Password. */ + gid_t gr_gid; /* Group ID. */ + char **gr_mem; /* Member list. */ +}; + +extern void bb_setgrent __P ((void)); +extern void bb_endgrent __P ((void)); +extern struct group * bb_getgrent __P ((void)); + +extern struct group * bb_getgrgid __P ((__const gid_t gid)); +extern struct group * bb_getgrnam __P ((__const char * name)); + +extern struct group * bb_fgetgrent __P ((FILE * file)); + +extern int bb_setgroups __P ((size_t n, __const gid_t * groups)); +extern int bb_initgroups __P ((__const char * user, gid_t gid)); + +extern struct group * __bb_getgrent __P ((int grp_fd)); + +#endif /* USE_SYSTEM_PWD_GRP */ +#endif /* __BB_GRP_H */ + diff --git a/include/pwd.h b/include/pwd.h new file mode 100644 index 000000000..82743f5ad --- /dev/null +++ b/include/pwd.h @@ -0,0 +1,51 @@ +#ifndef __BB_PWD_H +#define __BB_PWD_H + +#if defined USE_SYSTEM_PWD_GRP +#include +#else + +#define bb_setpwent setpwent +#define bb_endpwent endpwent +#define bb_getpwent getpwent +#define bb_putpwent putpwent +#define bb_getpw getpw +#define bb_fgetpwent fgetpwent +#define bb_getpwuid getpwuid +#define bb_getpwnam getpwnam +#define __bb_getpwent __bb_getpwent + + +#include +#include +#include + +/* The passwd structure. */ +struct passwd +{ + char *pw_name; /* Username. */ + char *pw_passwd; /* Password. */ + uid_t pw_uid; /* User ID. */ + gid_t pw_gid; /* Group ID. */ + char *pw_gecos; /* Real name. */ + char *pw_dir; /* Home directory. */ + char *pw_shell; /* Shell program. */ +}; + +extern void bb_setpwent __P ((void)); +extern void bb_endpwent __P ((void)); +extern struct passwd * bb_getpwent __P ((void)); + +extern int bb_putpwent __P ((__const struct passwd * __p, FILE * __f)); +extern int bb_getpw __P ((uid_t uid, char *buf)); + +extern struct passwd * bb_fgetpwent __P ((FILE * file)); + +extern struct passwd * bb_getpwuid __P ((__const uid_t)); +extern struct passwd * bb_getpwnam __P ((__const char *)); + +extern struct passwd * __bb_getpwent __P ((__const int passwd_fd)); + +#endif /* USE_SYSTEM_PWD_GRP */ +#endif /* __BB_PWD_H */ + -- cgit v1.2.3