summaryrefslogtreecommitdiff
path: root/user
diff options
context:
space:
mode:
authorWilliam A. Rowe Jr <wrowe@apache.org>2001-11-20 22:44:46 +0000
committerWilliam A. Rowe Jr <wrowe@apache.org>2001-11-20 22:44:46 +0000
commit596872eae32bdcda6b921aee6ed3b140002a3630 (patch)
treea100cf5aa8a4755f0fbfdea2e8ea002e5452953c /user
parentd83f6d4a31aa7dcabb9a7569ed4e618f391eae59 (diff)
downloadapr-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.c19
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;
+}