Apache Portable Runtime
Main Page
Related Pages
Modules
Namespaces
Data Structures
Files
File List
Globals
All
Data Structures
Namespaces
Files
Functions
Variables
Typedefs
Enumerations
Enumerator
Macros
Groups
Pages
usr
include
apr-1
apr_user.h
Go to the documentation of this file.
1
/* Licensed to the Apache Software Foundation (ASF) under one or more
2
* contributor license agreements. See the NOTICE file distributed with
3
* this work for additional information regarding copyright ownership.
4
* The ASF licenses this file to You under the Apache License, Version 2.0
5
* (the "License"); you may not use this file except in compliance with
6
* the License. You may obtain a copy of the License at
7
*
8
* http://www.apache.org/licenses/LICENSE-2.0
9
*
10
* Unless required by applicable law or agreed to in writing, software
11
* distributed under the License is distributed on an "AS IS" BASIS,
12
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
13
* See the License for the specific language governing permissions and
14
* limitations under the License.
15
*/
16
17
#ifndef APR_USER_H
18
#define APR_USER_H
19
20
/**
21
* @file apr_user.h
22
* @brief APR User ID Services
23
*/
24
25
#include "
apr.h
"
26
#include "
apr_errno.h
"
27
#include "
apr_pools.h
"
28
29
#ifdef __cplusplus
30
extern
"C"
{
31
#endif
/* __cplusplus */
32
33
/**
34
* @defgroup apr_user User and Group ID Services
35
* @ingroup APR
36
* @{
37
*/
38
39
/**
40
* Structure for determining user ownership.
41
*/
42
#ifdef WIN32
43
typedef
PSID
apr_uid_t
;
44
#else
45
typedef
uid_t
apr_uid_t
;
46
#endif
47
48
/**
49
* Structure for determining group ownership.
50
*/
51
#ifdef WIN32
52
typedef
PSID
apr_gid_t
;
53
#else
54
typedef
gid_t
apr_gid_t
;
55
#endif
56
57
#if APR_HAS_USER
58
59
/**
60
* Get the userid (and groupid) of the calling process
61
* @param userid Returns the user id
62
* @param groupid Returns the user's group id
63
* @param p The pool from which to allocate working space
64
* @remark This function is available only if APR_HAS_USER is defined.
65
*/
66
APR_DECLARE
(
apr_status_t
)
apr_uid_current
(apr_uid_t *userid,
67
apr_gid_t *groupid,
68
apr_pool_t
*p);
69
70
/**
71
* Get the user name for a specified userid
72
* @param username Pointer to new string containing user name (on output)
73
* @param userid The userid
74
* @param p The pool from which to allocate the string
75
* @remark This function is available only if APR_HAS_USER is defined.
76
*/
77
APR_DECLARE
(
apr_status_t
)
apr_uid_name_get
(
char
**username, apr_uid_t userid,
78
apr_pool_t
*p);
79
80
/**
81
* Get the userid (and groupid) for the specified username
82
* @param userid Returns the user id
83
* @param groupid Returns the user's group id
84
* @param username The username to lookup
85
* @param p The pool from which to allocate working space
86
* @remark This function is available only if APR_HAS_USER is defined.
87
*/
88
APR_DECLARE
(
apr_status_t
)
apr_uid_get
(apr_uid_t *userid, apr_gid_t *groupid,
89
const
char
*username,
apr_pool_t
*p);
90
91
/**
92
* Get the home directory for the named user
93
* @param dirname Pointer to new string containing directory name (on output)
94
* @param username The named user
95
* @param p The pool from which to allocate the string
96
* @remark This function is available only if APR_HAS_USER is defined.
97
*/
98
APR_DECLARE
(
apr_status_t
)
apr_uid_homepath_get
(
char
**dirname,
99
const
char
*username,
100
apr_pool_t
*p);
101
102
/**
103
* Compare two user identifiers for equality.
104
* @param left One uid to test
105
* @param right Another uid to test
106
* @return APR_SUCCESS if the apr_uid_t strutures identify the same user,
107
* APR_EMISMATCH if not, APR_BADARG if an apr_uid_t is invalid.
108
* @remark This function is available only if APR_HAS_USER is defined.
109
*/
110
#if defined(WIN32)
111
APR_DECLARE
(
apr_status_t
)
apr_uid_compare
(apr_uid_t left, apr_uid_t right);
112
#else
113
#define apr_uid_compare(left,right) (((left) == (right)) ? APR_SUCCESS : APR_EMISMATCH)
114
#endif
115
116
/**
117
* Get the group name for a specified groupid
118
* @param groupname Pointer to new string containing group name (on output)
119
* @param groupid The groupid
120
* @param p The pool from which to allocate the string
121
* @remark This function is available only if APR_HAS_USER is defined.
122
*/
123
APR_DECLARE
(
apr_status_t
)
apr_gid_name_get
(
char
**groupname,
124
apr_gid_t groupid,
apr_pool_t
*p);
125
126
/**
127
* Get the groupid for a specified group name
128
* @param groupid Pointer to the group id (on output)
129
* @param groupname The group name to look up
130
* @param p The pool from which to allocate the string
131
* @remark This function is available only if APR_HAS_USER is defined.
132
*/
133
APR_DECLARE
(
apr_status_t
)
apr_gid_get
(apr_gid_t *groupid,
134
const
char
*groupname,
apr_pool_t
*p);
135
136
/**
137
* Compare two group identifiers for equality.
138
* @param left One gid to test
139
* @param right Another gid to test
140
* @return APR_SUCCESS if the apr_gid_t strutures identify the same group,
141
* APR_EMISMATCH if not, APR_BADARG if an apr_gid_t is invalid.
142
* @remark This function is available only if APR_HAS_USER is defined.
143
*/
144
#if defined(WIN32)
145
APR_DECLARE
(
apr_status_t
)
apr_gid_compare
(apr_gid_t left, apr_gid_t right);
146
#else
147
#define apr_gid_compare(left,right) (((left) == (right)) ? APR_SUCCESS : APR_EMISMATCH)
148
#endif
149
150
#endif
/* ! APR_HAS_USER */
151
152
/** @} */
153
154
#ifdef __cplusplus
155
}
156
#endif
157
158
#endif
/* ! APR_USER_H */
Generated by
1.8.4