diff options
Diffstat (limited to 'src/lib/ipwd.h')
-rw-r--r-- | src/lib/ipwd.h | 23 |
1 files changed, 23 insertions, 0 deletions
diff --git a/src/lib/ipwd.h b/src/lib/ipwd.h new file mode 100644 index 0000000..562ebb2 --- /dev/null +++ b/src/lib/ipwd.h @@ -0,0 +1,23 @@ +#ifndef IPWD_H +#define IPWD_H + +#include <pwd.h> +#include <grp.h> + +/* Replacements for standard getpw/gr*(), fixing their ability to report errors + properly. As with standard getpw/gr*(), second call overwrites data used + by the first one. + + Functions return 1 if user/group is found, 0 if not or + -1 if error (with errno set). */ + +int i_getpwnam(const char *name, struct passwd *pwd_r); +int i_getpwuid(uid_t uid, struct passwd *pwd_r); + +int i_getgrnam(const char *name, struct group *grp_r); +int i_getgrgid(gid_t gid, struct group *grp_r); + +/* Free memory used by above functions. */ +void ipwd_deinit(void); + +#endif |