Annotation of win32/apache22/srclib/apr/include/apr_user.h, revision 1.1
1.1 ! moko 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 */
E-mail: