forked from tavip/lkl-lua
-
Notifications
You must be signed in to change notification settings - Fork 2
/
wapr_user.c
99 lines (91 loc) · 3.55 KB
/
wapr_user.c
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
#ifdef LKL_FILE_APIS
#include <apr_strings.h>
#include "wapr_user.h"
/**
* 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
* @remark This function is available only if APR_HAS_USER is defined.
*/
APR_DECLARE(apr_status_t) wapr_uid_current(wapr_uid_t *userid,
wapr_gid_t *groupid,
apr_pool_t *p)
{
*userid = lkl_sys_getuid();
*groupid = lkl_sys_getgid();
return APR_SUCCESS;
}
/**
* Get the user name for a specified userid
* @param username Pointer to new string containing user name (on output)
* @param userid The userid
* @param p The pool from which to allocate the string
* @remark This function is available only if APR_HAS_USER is defined.
*/
APR_DECLARE(apr_status_t) wapr_uid_name_get(char **username, wapr_uid_t userid,
apr_pool_t *p)
{
//TODO:FIXME: find a propper value
*username = apr_pstrdup(p, "WAPR_FIXME__NO_USERNAME_SET");
return APR_SUCCESS;
}
/**
* Get the userid (and groupid) for the specified username
* @param userid Returns the user id
* @param groupid Returns the user's group id
* @param username The username to lookup
* @param p The pool from which to allocate working space
* @remark This function is available only if APR_HAS_USER is defined.
*/
APR_DECLARE(apr_status_t) wapr_uid_get(wapr_uid_t *userid, wapr_gid_t *groupid,
const char *username, apr_pool_t *p)
{
//TODO:FIXME: we currently find the CURRENT uid and gid, the function should find the uid and gid for the specified USERNAME.
*userid = lkl_sys_getuid();
*groupid = lkl_sys_getgid();
return APR_SUCCESS;
}
/**
* Get the home directory for the named user
* @param dirname Pointer to new string containing directory name (on output)
* @param username The named user
* @param p The pool from which to allocate the string
* @remark This function is available only if APR_HAS_USER is defined.
*/
APR_DECLARE(apr_status_t) wapr_uid_homepath_get(char **dirname,
const char *username,
apr_pool_t *p)
{
//TODO:FIXME: we currently return "/" because we don;t know where the user's home dir is situated.
*dirname = apr_pstrdup(p, "/");
return APR_SUCCESS;
}
/**
* Get the group name for a specified groupid
* @param groupname Pointer to new string containing group name (on output)
* @param groupid The groupid
* @param p The pool from which to allocate the string
* @remark This function is available only if APR_HAS_USER is defined.
*/
APR_DECLARE(apr_status_t) wapr_gid_name_get(char **groupname,
wapr_gid_t groupid, apr_pool_t *p)
{
*groupname = apr_pstrdup(p, "/");
return APR_SUCCESS;
}
/**
* Get the groupid for a specified group name
* @param groupid Pointer to the group id (on output)
* @param groupname The group name to look up
* @param p The pool from which to allocate the string
* @remark This function is available only if APR_HAS_USER is defined.
*/
APR_DECLARE(apr_status_t) wapr_gid_get(wapr_gid_t *groupid,
const char *groupname, apr_pool_t *p)
{
//TODO:FIXME: we return the current user's GID because we don;t have a mappig between usernames and gids
*groupid = lkl_sys_getgid();
return APR_SUCCESS;
}
#endif//LKL_FILE_APIS