diff options
author | William A. Rowe Jr <wrowe@apache.org> | 2001-11-20 22:44:46 +0000 |
---|---|---|
committer | William A. Rowe Jr <wrowe@apache.org> | 2001-11-20 22:44:46 +0000 |
commit | 596872eae32bdcda6b921aee6ed3b140002a3630 (patch) | |
tree | a100cf5aa8a4755f0fbfdea2e8ea002e5452953c /user | |
parent | d83f6d4a31aa7dcabb9a7569ed4e618f391eae59 (diff) | |
download | apr-596872eae32bdcda6b921aee6ed3b140002a3630.tar.gz |
Implement apr_get_groupid [to mirror apr_get_userid]
git-svn-id: https://svn.apache.org/repos/asf/apr/apr/trunk@62528 13f79535-47bb-0310-9956-ffa450edef68
Diffstat (limited to 'user')
-rw-r--r-- | user/unix/groupinfo.c | 19 |
1 files changed, 19 insertions, 0 deletions
diff --git a/user/unix/groupinfo.c b/user/unix/groupinfo.c index 34f2e4345..bca6ac32b 100644 --- a/user/unix/groupinfo.c +++ b/user/unix/groupinfo.c @@ -86,3 +86,22 @@ APR_DECLARE(apr_status_t) apr_get_groupname(char **groupname, apr_gid_t groupid, return APR_SUCCESS; } +APR_DECLARE(apr_status_t) apr_get_groupid(apr_gid_t *groupid, const char *groupname, apr_pool_t *p) +{ + struct group *gr; +#ifndef BEOS + +#if APR_HAS_THREADS && defined(_POSIX_THREAD_SAFE_FUNCTIONS) && defined(HAVE_GETGRGID_R) + struct group grp; + char grbuf[512]; + + if (getgrnam_r(&grpname, &gr, grbuf, sizeof(grbuf))) { +#else + if ((gr = getgrnam(groupname)) == NULL) { +#endif + return errno; + } + *groupid = gr->gr_gid; +#endif + return APR_SUCCESS; +} |