diff options
-rw-r--r-- | include/apr_user.h | 12 | ||||
-rw-r--r-- | user/unix/userinfo.c | 15 |
2 files changed, 27 insertions, 0 deletions
diff --git a/include/apr_user.h b/include/apr_user.h index 3c70da037..ac781bd6d 100644 --- a/include/apr_user.h +++ b/include/apr_user.h @@ -90,6 +90,18 @@ typedef gid_t apr_gid_t; #if APR_HAS_USER /*** + * Get the userid (and groupid) of the calling process + * @param userid Returns the user id + * @param groupid Returns the user's group id + * @param p The pool from which to allocate working space + * @tip This function is available only if APR_HAS_USER is defined. + * @deffunc apr_status_t apr_current_userid(apr_uid_t *userid, apr_gid_t *groupid, apr_pool_t *p) + */ +APR_DECLARE(apr_status_t) apr_current_userid(apr_uid_t *userid, + apr_gid_t *groupid, + apr_pool_t *p); + +/*** * Get the user name for a specified userid * @param username Pointer to new string containing user name (on output) * @param userid The userid diff --git a/user/unix/userinfo.c b/user/unix/userinfo.c index 4dade21a0..27445e4ee 100644 --- a/user/unix/userinfo.c +++ b/user/unix/userinfo.c @@ -111,6 +111,21 @@ APR_DECLARE(apr_status_t) apr_get_home_directory(char **dirname, return APR_SUCCESS; } + + +APR_DECLARE(apr_status_t) apr_current_userid(apr_uid_t *uid, + apr_gid_t *gid, + apr_pool_t *p) +{ + *uid = getuid(); + *gid = getgid(); + + return APR_SUCCESS; +} + + + + APR_DECLARE(apr_status_t) apr_get_userid(apr_uid_t *uid, apr_gid_t *gid, const char *username, apr_pool_t *p) { |