00001
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012
00013
00014
00015
00016 #ifndef APR_USER_H
00017 #define APR_USER_H
00018
00024 #include "apr.h"
00025 #include "apr_errno.h"
00026 #include "apr_pools.h"
00027
00028 #ifdef __cplusplus
00029 extern "C" {
00030 #endif
00031
00041 #ifdef WIN32
00042 typedef PSID apr_uid_t;
00043 #else
00044 typedef uid_t apr_uid_t;
00045 #endif
00046
00050 #ifdef WIN32
00051 typedef PSID apr_gid_t;
00052 #else
00053 typedef gid_t apr_gid_t;
00054 #endif
00055
00056 #if APR_HAS_USER
00057
00065 APR_DECLARE(apr_status_t) apr_uid_current(apr_uid_t *userid,
00066 apr_gid_t *groupid,
00067 apr_pool_t *p);
00068
00070 APR_DECLARE(apr_status_t) apr_current_userid(apr_uid_t *userid,
00071 apr_gid_t *groupid,
00072 apr_pool_t *p);
00080 APR_DECLARE(apr_status_t) apr_uid_name_get(char **username, apr_uid_t userid,
00081 apr_pool_t *p);
00082
00084 APR_DECLARE(apr_status_t) apr_get_username(char **username, apr_uid_t userid,
00085 apr_pool_t *p);
00094 APR_DECLARE(apr_status_t) apr_uid_get(apr_uid_t *userid, apr_gid_t *groupid,
00095 const char *username, apr_pool_t *p);
00096
00098 APR_DECLARE(apr_status_t) apr_get_userid(apr_uid_t *userid, apr_gid_t *groupid,
00099 const char *username, apr_pool_t *p);
00100
00108 APR_DECLARE(apr_status_t) apr_uid_homepath_get(char **dirname,
00109 const char *username,
00110 apr_pool_t *p);
00111
00113 APR_DECLARE(apr_status_t) apr_get_home_directory(char **dirname,
00114 const char *username,
00115 apr_pool_t *p);
00116
00125 #if defined(WIN32)
00126 APR_DECLARE(apr_status_t) apr_uid_compare(apr_uid_t left, apr_uid_t right);
00127
00129 APR_DECLARE(apr_status_t) apr_compare_users(apr_uid_t left, apr_uid_t right);
00130 #else
00131 #define apr_uid_compare(left,right) (((left) == (right)) ? APR_SUCCESS : APR_EMISMATCH)
00132
00133 #define apr_compare_users(left,right) (((left) == (right)) ? APR_SUCCESS : APR_EMISMATCH)
00134 #endif
00135
00143 APR_DECLARE(apr_status_t) apr_gid_name_get(char **groupname,
00144 apr_gid_t groupid, apr_pool_t *p);
00145
00147 APR_DECLARE(apr_status_t) apr_group_name_get(char **groupname,
00148 apr_gid_t groupid, apr_pool_t *p);
00149
00151 APR_DECLARE(apr_status_t) apr_get_groupname(char **groupname,
00152 apr_gid_t groupid, apr_pool_t *p);
00153
00161 APR_DECLARE(apr_status_t) apr_gid_get(apr_gid_t *groupid,
00162 const char *groupname, apr_pool_t *p);
00163
00165 APR_DECLARE(apr_status_t) apr_get_groupid(apr_gid_t *groupid,
00166 const char *groupname, apr_pool_t *p);
00167
00176 #if defined(WIN32)
00177 APR_DECLARE(apr_status_t) apr_gid_compare(apr_gid_t left, apr_gid_t right);
00179 APR_DECLARE(apr_status_t) apr_compare_groups(apr_gid_t left, apr_gid_t right);
00180 #else
00181 #define apr_gid_compare(left,right) (((left) == (right)) ? APR_SUCCESS : APR_EMISMATCH)
00182
00183 #define apr_compare_groups(left,right) (((left) == (right)) ? APR_SUCCESS : APR_EMISMATCH)
00184 #endif
00185
00186 #endif
00187
00190 #ifdef __cplusplus
00191 }
00192 #endif
00193
00194 #endif