|
Apache HTTPD
|
Typedefs | |
| typedef struct apr_global_mutex_t | apr_global_mutex_t |
Opaque global mutex structure.
Definition at line 47 of file apr_global_mutex.h.
| APR_DECLARE | ( | apr_lockmech_e | ) |
Get the mechanism of the mutex, as it relates to the actual method used for the underlying apr_proc_mutex_t.
| mutex | the mutex to get the mechanism from. |
Definition at line 169 of file proc_mutex.c.
| APR_DECLARE | ( | apr_pool_t * | ) | const |
Get the pool used by this global_mutex.
| APR_DECLARE | ( | apr_status_t | ) |
Create and initialize a mutex that can be used to synchronize both processes and threads. Note: There is considerable overhead in using this API if only cross-process or cross-thread mutual exclusion is required. See apr_proc_mutex.h and apr_thread_mutex.h for more specialized lock routines.
| mutex | the memory address where the newly created mutex will be stored. |
| fname | A file name to use if the lock mechanism requires one. This argument should always be provided. The lock code itself will determine if it should be used. |
| mech | The mechanism to use for the interprocess lock, if any; one of
APR_LOCK_FCNTL
APR_LOCK_FLOCK
APR_LOCK_SYSVSEM
APR_LOCK_POSIXSEM
APR_LOCK_PROC_PTHREAD
APR_LOCK_DEFAULT pick the default mechanism for the platform
APR_LOCK_DEFAULT_TIMED pick the default timed mechanism
|
| pool | the pool from which to allocate the mutex. |
Re-open a mutex in a child process.
| mutex | The newly re-opened mutex structure. |
| fname | A file name to use if the mutex mechanism requires one. This argument should always be provided. The mutex code itself will determine if it should be used. This filename should be the same one that was passed to apr_global_mutex_create(). |
| pool | The pool to operate on. |
Acquire the lock for the given mutex. If the mutex is already locked, the current thread will be put to sleep until the lock becomes available.
| mutex | the mutex on which to acquire the lock. |
Attempt to acquire the lock for the given mutex. If the mutex has already been acquired, the call returns immediately with APR_EBUSY. Note: it is important that the APR_STATUS_IS_EBUSY(s) macro be used to determine if the return value was APR_EBUSY, for portability reasons.
| mutex | the mutex on which to attempt the lock acquiring. |
Attempt to acquire the lock for the given mutex until timeout expires. If the acquisition time outs, the call returns with APR_TIMEUP.
| mutex | the mutex on which to attempt the lock acquiring. |
| timeout | the relative timeout (microseconds). |
Release the lock for the given mutex.
| mutex | the mutex from which to release the lock. |
Destroy the mutex and free the memory associated with the lock.
| mutex | the mutex to destroy. |
Set mutex permissions.
< File is read-only
< File is executable
< all protections
< File is read-only
< File is read-only
< Write by user
<
< Write by group
<
< Write by others
<
< Write by user
<
< Write by group
<
< Write by others
<
< File is executable
< File is executable
< Execute by user
<
< Execute by group
<
< Execute by others
<
< Execute by user
<
< Execute by group
<
< Execute by others
<
< Stat the link not the file itself if it is a link
< Stat the link not the file itself if it is a link
< ->name in proper case
< ->name in proper case
< Access Time
< Create the file if not there
< Open the file for reading
< Open the file for writing
< Delete the file after close
< Open should fail if APR_FOPEN_CREATE and file exists.
< Do not register a cleanup when the file is opened. The apr_os_file_t handle in apr_file_t will not be closed when the pool is destroyed.
< Read by user
<
< Write by user
<
< Do not register a cleanup when the file is opened. The apr_os_file_t handle in apr_file_t will not be closed when the pool is destroyed.
< Do not register a cleanup when the file is opened. The apr_os_file_t handle in apr_file_t will not be closed when the pool is destroyed.
< ->name in proper case
< Modification Time
< Access Time
< Creation or inode-changed time
< Type
< Size of the file
< Storage size consumed by the file
< Do not register a cleanup when the file is opened. The apr_os_file_t handle in apr_file_t will not be closed when the pool is destroyed.
< ->name in proper case
< ->name in proper case
< Type
< all protections
< ->name in proper case
< ->name in proper case
< File is read-only
< File is hidden
< File is read-only
< File is read-only
< File is hidden
< File is hidden
< Platform dependent flag to enable * non blocking file io
< Open the file for reading
< Open the file for writing
< Open the file for reading
< Open the file for writing
< Open the file for buffered I/O
< Create the file if not there
< Open should fail if APR_FOPEN_CREATE and file exists.
< Open the file and truncate to 0 length
< Open should fail if APR_FOPEN_CREATE and file exists.
< Create the file if not there
< Open the file and truncate to 0 length
< Append to the end of the file
< Do not register a cleanup when the file is opened. The apr_os_file_t handle in apr_file_t will not be closed when the pool is destroyed.
< Delete the file after close
< Open the file for buffered I/O
< Open the file for writing
< Open the file for writing
< Open the file for reading
< Append to the end of the file
< an atomic unix apr_stat()
< Open the file for writing
< Create the file if not there
< Open the file and truncate to 0 length
< Open the file for writing
< Create the file if not there
< Append to the end of the file
< Do not register a cleanup when the file is opened. The apr_os_file_t handle in apr_file_t will not be closed when the pool is destroyed.
< File is read-only
< File is executable
< all protections
< File is read-only
< File is read-only
< Write by user
<
< Write by group
<
< Write by others
<
< Write by user
<
< Write by group
<
< Write by others
<
< File is executable
< File is executable
< Execute by user
<
< Execute by group
<
< Execute by others
<
< Execute by user
<
< Execute by group
<
< Execute by others
<
< Access Time
< Stat the link not the file itself if it is a link
< Stat the link not the file itself if it is a link
< Stat the link not the file itself if it is a link
< Create the file if not there
< Open the file for reading
< Open the file for writing
< Open should fail if APR_FOPEN_CREATE and file exists.
< Delete the file after close
< Open the file for reading
< Open the file for writing
< Open the file for reading
< Open the file for writing
< Create the file if not there
< Open should fail if APR_FOPEN_CREATE and file exists.
< Open should fail if APR_FOPEN_CREATE and file exists.
< Create the file if not there
< Append to the end of the file
< Open the file and truncate to 0 length
< Platform dependent flag to enable * non blocking file io
< use OS's default permissions
<
< Do not register a cleanup when the file is opened. The apr_os_file_t handle in apr_file_t will not be closed when the pool is destroyed.
< Open the file for buffered I/O
< Do not register a cleanup when the file is opened. The apr_os_file_t handle in apr_file_t will not be closed when the pool is destroyed.
< Do not register a cleanup when the file is opened. The apr_os_file_t handle in apr_file_t will not be closed when the pool is destroyed.
< Open the file for buffered I/O
< Open the file for writing
< Open the file for writing
< Open the file for reading
< Do not register a cleanup when the file is opened. The apr_os_file_t handle in apr_file_t will not be closed when the pool is destroyed.
< Do not register a cleanup when the file is opened. The apr_os_file_t handle in apr_file_t will not be closed when the pool is destroyed.
The problem with trying to output the entire iovec is that we cannot maintain the behaviour that a real writev would have. If we iterate over the iovec one at a time, we lose the atomic properties of writev(). The other option is to combine the entire iovec into one buffer that we could then send in one call to write(). This is not reasonable since we do not know how much data an iovec could contain.
The only reasonable option, that maintains the semantics of a real writev(), is to only write the first iovec. Callers of file_writev() must deal with partial writes as they normally would. If you want to ensure an entire iovec is written, use apr_file_writev_full().
< ->name in proper case
< Do not register a cleanup when the file is opened. The apr_os_file_t handle in apr_file_t will not be closed when the pool is destroyed.
< Size of the file
< Size of the file
< dev and inode
< Number of links
< ->name in proper case
< Type
< Type
< ->name in proper case
< File is read-only
< File is hidden
< File is read-only
< File is read-only
< File is hidden
< File is hidden
< Open the file for reading
< use OS's default permissions
<
< Platform dependent flag to enable * non blocking file io
< Open the file for reading
< Open the file for writing
< Create the file if not there
< Open should fail if APR_FOPEN_CREATE and file exists.
< Open the file and truncate to 0 length
< Open the file and truncate to 0 length
< Open should fail if APR_FOPEN_CREATE and file exists.
< Create the file if not there
< Delete the file after close
< Open the file for reading
< Open the file for writing
< Platform dependent tag to open the file for use across multiple threads
< Append to the end of the file
< Open the file for buffered I/O
< Platform dependent flag to enable * sparse file support, see WARNING below
< Do not register a cleanup when the file is opened. The apr_os_file_t handle in apr_file_t will not be closed when the pool is destroyed.
< Append to the end of the file
< Open the file for buffered I/O
< Open the file for writing
< Open the file for writing
< Open the file for reading
< Platform dependent tag to open the file for use across multiple threads
< Platform dependent tag to open the file for use across multiple threads
< Platform dependent tag to open the file for use across multiple threads
< Platform dependent tag to open the file for use across multiple threads
< Platform dependent tag to open the file for use across multiple threads
< Platform dependent tag to open the file for use across multiple threads
< Exclusive lock. Only one process may hold an exclusive lock at any given time. This is analogous to a "write lock".
< Platform dependent tag to open the file for use across multiple threads
< Platform dependent tag to open the file for use across multiple threads
< Platform dependent tag to open the file for use across multiple threads
< Platform dependent tag to open the file for use across multiple threads
< Size of the file
< Platform dependent tag to open the file for use across multiple threads
< Size of the file
Definition at line 74 of file apr_atomic.c.
Return the name of the lockfile for the mutex, or NULL if the mutex doesn't use a lock file
Get the mechanism's name of the mutex, as it relates to the actual method used for the underlying apr_proc_mutex_t.
| mutex | the mutex to get the mechanism's name from. |
Convert text data to base64, and return the results from a pool.
| p | Pool to allocate from. |
| src | The original string. |
| slen | The length of the original string, or APR_ENCODE_STRING if the actual length should be computed based on NUL termination. |
| flags | If APR_ENCODE_NONE, emit RFC4648 Base 64 Encoding. If APR_ENCODE_NOPADDING, omit the = padding character. If APR_ENCODE_URL, use RFC4648 Base 64 Encoding with URL and Filename Safe Alphabet. If APR_ENCODE_BASE64URL, use RFC7515 base64url Encoding. |
| len | If not NULL, outputs the length of the encoding (excluding the trailing NUL). |
Convert binary data to base64, and return the results from a pool.
| p | Pool to allocate from. |
| src | The original buffer. |
| slen | The length of the original buffer. |
| flags | If APR_ENCODE_NONE, emit RFC4648 Base 64 Encoding. If APR_ENCODE_NOPADDING, omit the = padding character. If APR_ENCODE_URL, use RFC4648 Base 64 Encoding with URL and Filename Safe Alphabet. If APR_ENCODE_BASE64URL, use RFC7515 base64url Encoding. |
| len | If not NULL, outputs the length of the encoding (excluding the trailing NUL). |
Convert base64 or base64url with or without padding to text data, and return the results from a pool.
| p | Pool to allocate from. |
| src | The base64 string to decode. |
| slen | The length of the original string, or APR_ENCODE_STRING if the actual length should be computed based on NUL termination. |
| flags | If APR_ENCODE_NONE, attempt to decode the full original buffer, and return NULL if any bad character is detected. If APR_ENCODE_RELAXED, decode until the first non base64/base64url character. |
| len | If not NULL, outputs the length of the decoding (excluding the trailing NUL). |
Convert text data to base32, and return the results from a pool.
| p | Pool to allocate from. |
| src | The original string. |
| slen | The length of the original string, or APR_ENCODE_STRING if the actual length should be computed based on NUL termination. |
| flags | If APR_ENCODE_NONE, emit RFC4648 Base 32 Encoding. If APR_ENCODE_NOPADDING, omit the = padding character. If APR_ENCODE_BASE32HEX, use RFC4648 base32hex Encoding. |
| len | If not NULL, outputs the length of the encoding (excluding the trailing NUL). |
Convert binary data to base32, and return the results from a pool.
| p | Pool to allocate from. |
| src | The original buffer. |
| slen | The length of the original buffer. |
| flags | If APR_ENCODE_NONE, emit RFC4648 Base 32 Encoding. If APR_ENCODE_NOPADDING, omit the = padding character. If APR_ENCODE_BASE32HEX, use RFC4648 base32hex Encoding. |
| len | If not NULL, outputs the length of the encoding (excluding the trailing NUL). |
Convert base32 or base32hex with or without padding to text data, and return the results from a pool.
| p | Pool to allocate from. |
| src | The base32 string to decode. |
| slen | The length of the original string, or APR_ENCODE_STRING if the actual length should be computed based on NUL termination. |
| flags | If APR_ENCODE_NONE, parse RFC4648 Base 32 Encoding. If APR_ENCODE_BASE32HEX, use RFC4648 base32hex Encoding. |
| len | If not NULL, outputs the length of the encoding (excluding the trailing NUL). |
Convert text data to base16 (hex), and return the results from a pool.
| p | Pool to allocate from. |
| src | The original string. |
| slen | The length of the original string, or APR_ENCODE_STRING if the actual length should be computed based on NUL termination. |
| flags | If APR_ENCODE_NONE, emit RFC4648 Base 16 Encoding. If APR_ENCODE_COLON, separate each token with a colon. |
| len | If not NULL, outputs the length of the encoding (excluding the trailing NUL). |
Convert binary data to base16 (hex), and return the results from a pool.
| p | Pool to allocate from. |
| src | The original buffer. |
| slen | The length of the original buffer. |
| flags | If APR_ENCODE_NONE, emit RFC4648 Base 16 Encoding. If APR_ENCODE_COLON, separate each token with a colon. |
| len | If not NULL, outputs the length of the encoding (excluding the trailing NUL). |
Convert base16 (hex) and return the results from a pool.
| p | Pool to allocate from. |
| src | The base16 string to decode. |
| slen | The length of the original string, or APR_ENCODE_STRING if the actual length should be computed based on NUL termination. |
| flags | If APR_ENCODE_NONE, parse RFC4648 Base 16 Encoding. If APR_ENCODE_COLON, allow tokens to be separated with a colon. |
| len | If not NULL, outputs the length of the encoding (excluding the trailing NUL). |
Perform shell escaping on the provided string, returning the result from the pool.
Shell escaping causes characters to be prefixed with a '\' character.
If no characters were escaped, the original string is returned.
| p | Pool to allocate from |
| str | The original string |
Unescapes a URL, leaving reserved characters intact, returning the result from a pool.
| p | Pool to allocate from |
| url | String to be unescaped in place |
| forbid | Optional list of forbidden characters, in addition to 0x00 |
| reserved | Optional list of reserved characters that will be left unescaped |
| plus | If non zero, '+' is converted to ' ' as per application/x-www-form-urlencoded encoding |
Escape a path segment, as defined in RFC1808, returning the result from a pool.
| p | Pool to allocate from |
| str | String to be escaped |
Converts an OS path to a URL, in an OS dependent way, as defined in RFC1808, returning the result from a pool.
In all cases if a ':' occurs before the first '/' in the URL, the URL should be prefixed with "./" (or the ':' escaped). In the case of Unix, this means leaving '/' alone, but otherwise doing what escape_path_segment() does. For efficiency reasons, we don't use escape_path_segment(), which is provided for reference. Again, RFC 1808 is where this stuff is defined.
If partial is set, os_escape_path() assumes that the path will be appended to something with a '/' in it (and thus does not prefix "./").
| p | Pool to allocate from |
| str | The original string |
| partial | If non zero, suppresses the prepending of "./" |
Urlencode a string, as defined in http://www.w3.org/TR/html401/interact/forms.html#h-17.13.4.1, returning the result from a pool.
| p | Pool to allocate from |
| str | String to be escaped |
Apply entity encoding to a string, returning the result from a pool. Characters are replaced as follows: '<' becomes '<', '>' becomes '>', '&' becomes '&', the double quote becomes '"" and the single quote becomes '''.
| p | Pool to allocate from |
| str | The original string |
| toasc | If non zero, encode non ascii characters |
Decodes html entities or numeric character references in a string. If the string to be unescaped is syntactically incorrect, then the following fixups will be made: unknown entities will be left undecoded; references to unused numeric characters will be deleted. In particular, � will not be decoded, but will be deleted.
| p | Pool to allocate from |
| str | The original string |
Escape control characters in a string, as performed by the shell's 'echo' command, and return the results from a pool. Characters are replaced as follows: \a alert (bell), \b backspace, \f form feed, \n new line, \r carriage return, \t horizontal tab, \v vertical tab, \ backslash.
Any non ascii character will be encoded as '\xHH', where HH is the hex code of the character.
If quote is not zero, the double quote character will also be escaped.
| p | Pool to allocate from |
| str | The original string |
| quote | If non zero, encode double quotes |
Convert binary data to a hex encoding, and return the results from a pool.
| p | Pool to allocate from |
| src | The original buffer |
| slen | The length of the original buffer |
| colon | If not zero, insert colon characters between hex digits. |
Apply LDAP escaping to binary data, and return the results from a pool. Characters from RFC4514 and RFC4515 are escaped with their hex equivalents.
| p | Pool to allocate from |
| src | The original buffer |
| slen | The length of the original buffer |
| flags | APR_ESCAPE_LDAP_DN for RFC4514, APR_ESCAPE_LDAP_FILTER for RFC4515, APR_ESCAPE_LDAP_ALL for both |
Definition at line 77 of file apr_global_mutex.h.
Definition at line 159 of file apr_global_mutex.h.
| const char apr_lockmech_e mech |
Definition at line 78 of file apr_global_mutex.h.
| apr_fileperms_t perms |
Definition at line 159 of file apr_global_mutex.h.
| const char apr_pool_t * pool |
Definition at line 79 of file apr_global_mutex.h.
Definition at line 122 of file apr_global_mutex.h.
Definition at line 159 of file apr_global_mutex.h.