version 1.68.4.5, 2008/02/08 19:43:54
|
version 1.71, 2007/06/26 20:26:13
|
|
|
#endif | #endif |
#endif | #endif |
| |
#if defined (PEGASUS_OS_TYPE_UNIX) || \ |
#if defined (PEGASUS_OS_TYPE_UNIX) || (PEGASUS_OS_VMS) |
defined (PEGASUS_OS_VMS) |
|
# ifndef PEGASUS_OS_OS400 |
|
# include <unistd.h> | # include <unistd.h> |
# endif |
|
# include <fcntl.h> // File locking | # include <fcntl.h> // File locking |
# define PEGASUS_UID_T uid_t | # define PEGASUS_UID_T uid_t |
# define PEGASUS_GID_T gid_t | # define PEGASUS_GID_T gid_t |
|
|
// address (ipv4 or ipv6) returned. Address will be copied to dst. | // address (ipv4 or ipv6) returned. Address will be copied to dst. |
static Boolean _acquireIP(const char* hostname, int *af, void *dst); | static Boolean _acquireIP(const char* hostname, int *af, void *dst); |
| |
/** |
|
Returns true if IPv6 stack is active by checking return code from |
|
Socket::createSocket() and getSocketError() calls. |
|
|
|
ATTN: We return true if some error other than |
|
PEGASUS_INVALID_ADDRESS_FAMILY is returned while creating the socket |
|
because we will not be sure whether the IPv6 stack is active or not |
|
from the returned error code. Return value of "true" from this method |
|
should not be trusted absolutely. |
|
*/ |
|
#ifdef PEGASUS_ENABLE_IPV6 |
|
static Boolean isIPv6StackActive(); |
|
#endif |
|
|
|
static Uint32 lookupPort( | static Uint32 lookupPort( |
const char * serviceName, | const char * serviceName, |
Uint32 defaultPort); | Uint32 defaultPort); |
|
|
@return True if the user and group IDs were retrieved | @return True if the user and group IDs were retrieved |
successfully, false otherwise. | successfully, false otherwise. |
*/ | */ |
#ifndef PEGASUS_OS_OS400 |
|
static Boolean lookupUserId( | static Boolean lookupUserId( |
const char* userName, | const char* userName, |
PEGASUS_UID_T& uid, | PEGASUS_UID_T& uid, |
PEGASUS_GID_T& gid); | PEGASUS_GID_T& gid); |
#endif |
|
| |
/** | /** |
Changes the process user context to the specified user and group. | Changes the process user context to the specified user and group. |
IMPORTANT: This method is not reentrant and not async signal safe. |
IMPORTANT: This method uses non-reentrant functions and should only |
It should only be called in a single-threaded program. |
be called in a single-threaded program. |
@param userName User name to set as the process user context. | @param userName User name to set as the process user context. |
@param uid User ID to set as the process user context. | @param uid User ID to set as the process user context. |
@param gid Group ID to set as the process group context. | @param gid Group ID to set as the process group context. |
@return True if the user context is successfully changed, | @return True if the user context is successfully changed, |
false otherwise. | false otherwise. |
*/ | */ |
#ifndef PEGASUS_OS_OS400 |
|
static Boolean changeUserContext_SingleThreaded( | static Boolean changeUserContext_SingleThreaded( |
const char* userName, | const char* userName, |
const PEGASUS_UID_T& uid, | const PEGASUS_UID_T& uid, |
const PEGASUS_GID_T& gid); | const PEGASUS_GID_T& gid); |
#endif |
|
| |
/** | /** |
This function is used to get the process ID of the calling process. | This function is used to get the process ID of the calling process. |