Apache Portable Runtime
Modules | Macros | Typedefs | Functions

Modules

 APR Error Space
 
 APR Error Values
 
 Status Value Tests
 

Macros

#define APR_FROM_OS_ERROR(e)   (e == 0 ? APR_SUCCESS : e + APR_OS_START_SYSERR)
 
#define APR_FROM_OS_ERROR(e)   (e)
 
#define APR_TO_OS_ERROR(e)   (e == 0 ? APR_SUCCESS : e - APR_OS_START_SYSERR)
 
#define APR_TO_OS_ERROR(e)   (e)
 
#define apr_get_os_error()   (errno)
 
#define apr_set_os_error(e)   (errno = (e))
 
#define apr_get_netos_error()   (errno)
 
#define apr_set_netos_error(e)   (errno = (e))
 
#define APR_OS_START_ERROR   20000
 
#define APR_OS_ERRSPACE_SIZE   50000
 
#define APR_UTIL_ERRSPACE_SIZE   20000
 
#define APR_OS_START_STATUS   (APR_OS_START_ERROR + APR_OS_ERRSPACE_SIZE)
 
#define APR_UTIL_START_STATUS
 
#define APR_OS_START_USERERR   (APR_OS_START_STATUS + APR_OS_ERRSPACE_SIZE)
 
#define APR_OS_START_USEERR   APR_OS_START_USERERR
 
#define APR_OS_START_CANONERR
 
#define APR_OS_START_EAIERR   (APR_OS_START_CANONERR + APR_OS_ERRSPACE_SIZE)
 
#define APR_OS_START_SYSERR   (APR_OS_START_EAIERR + APR_OS_ERRSPACE_SIZE)
 
#define APR_SUCCESS   0
 

Typedefs

typedef int apr_status_t
 

Functions

char * apr_strerror (apr_status_t statcode, char *buf, apr_size_t bufsize)
 

Detailed Description

Macro Definition Documentation

◆ APR_FROM_OS_ERROR [1/2]

#define APR_FROM_OS_ERROR (   e)    (e == 0 ? APR_SUCCESS : e + APR_OS_START_SYSERR)

Fold a platform specific error into an apr_status_t code.

Returns
apr_status_t
Parameters
eThe platform os error code.
Warning
macro implementation; the syserr argument may be evaluated multiple times.

◆ APR_FROM_OS_ERROR [2/2]

#define APR_FROM_OS_ERROR (   e)    (e)

Fold a platform specific error into an apr_status_t code.

Returns
apr_status_t
Parameters
eThe platform os error code.
Warning
macro implementation; the syserr argument may be evaluated multiple times.

◆ apr_get_netos_error

#define apr_get_netos_error ( )    (errno)

Return the last socket error, folded into apr_status_t, on all platforms

Remarks
This retrieves errno or calls a GetLastSocketError() style function, and folds it with APR_FROM_OS_ERROR.

◆ apr_get_os_error

#define apr_get_os_error ( )    (errno)
Returns
apr_status_t the last platform error, folded into apr_status_t, on most platforms
Remarks
This retrieves errno, or calls a GetLastError() style function, and folds it with APR_FROM_OS_ERROR. Some platforms (such as OS2) have no such mechanism, so this call may be unsupported. Do NOT use this call for socket errors from socket, send, recv etc!

◆ APR_OS_ERRSPACE_SIZE

#define APR_OS_ERRSPACE_SIZE   50000

APR_OS_ERRSPACE_SIZE is the maximum number of errors you can fit into one of the error/status ranges below – except for APR_OS_START_USERERR, which see.

◆ APR_OS_START_CANONERR

#define APR_OS_START_CANONERR
Value:
#define APR_OS_START_USERERR
Definition: apr_errno.h:164
#define APR_OS_ERRSPACE_SIZE
Definition: apr_errno.h:123

APR_OS_START_CANONERR is where APR versions of errno values are defined on systems which don't have the corresponding errno.

◆ APR_OS_START_EAIERR

#define APR_OS_START_EAIERR   (APR_OS_START_CANONERR + APR_OS_ERRSPACE_SIZE)

APR_OS_START_EAIERR folds EAI_ error codes from getaddrinfo() into apr_status_t values.

◆ APR_OS_START_ERROR

#define APR_OS_START_ERROR   20000

APR_OS_START_ERROR is where the APR specific error values start.

◆ APR_OS_START_STATUS

#define APR_OS_START_STATUS   (APR_OS_START_ERROR + APR_OS_ERRSPACE_SIZE)

APR_OS_START_STATUS is where the APR specific status codes start.

◆ APR_OS_START_SYSERR

#define APR_OS_START_SYSERR   (APR_OS_START_EAIERR + APR_OS_ERRSPACE_SIZE)

APR_OS_START_SYSERR folds platform-specific system error values into apr_status_t values.

◆ APR_OS_START_USEERR

#define APR_OS_START_USEERR   APR_OS_START_USERERR

APR_OS_START_USEERR is obsolete, defined for compatibility only. Use APR_OS_START_USERERR instead.

◆ APR_OS_START_USERERR

#define APR_OS_START_USERERR   (APR_OS_START_STATUS + APR_OS_ERRSPACE_SIZE)

APR_OS_START_USERERR are reserved for applications that use APR that layer their own error codes along with APR's. Note that the error immediately following this one is set ten times farther away than usual, so that users of apr have a lot of room in which to declare custom error codes.

In general applications should try and create unique error codes. To try and assist in finding suitable ranges of numbers to use, the following ranges are known to be used by the listed applications. If your application defines error codes please advise the range of numbers it uses to dev@a.nosp@m.pr.a.nosp@m.pache.nosp@m..org for inclusion in this list.

Ranges shown are in relation to APR_OS_START_USERERR

Subversion - Defined ranges, of less than 100, at intervals of 5000 starting at an offset of 5000, e.g. +5000 to 5100, +10000 to 10100

Apache HTTPD - +2000 to 2999

◆ apr_set_netos_error

#define apr_set_netos_error (   e)    (errno = (e))

Reset the last socket error, unfolded from an apr_status_t

Parameters
eThe socket error folded in a prior call to APR_FROM_OS_ERROR()
Warning
This is a macro implementation; the statcode argument may be evaluated multiple times. If the statcode was not created by apr_get_os_error or APR_FROM_OS_ERROR, the results are undefined. This macro sets errno, or calls a WSASetLastError() style function, unfolding socketcode with APR_TO_OS_ERROR.

◆ apr_set_os_error

#define apr_set_os_error (   e)    (errno = (e))

Reset the last platform error, unfolded from an apr_status_t, on some platforms

Parameters
eThe OS error folded in a prior call to APR_FROM_OS_ERROR()
Warning
This is a macro implementation; the statcode argument may be evaluated multiple times. If the statcode was not created by apr_get_os_error or APR_FROM_OS_ERROR, the results are undefined. This macro sets errno, or calls a SetLastError() style function, unfolding statcode with APR_TO_OS_ERROR. Some platforms (such as OS2) have no such mechanism, so this call may be unsupported.

◆ APR_SUCCESS

#define APR_SUCCESS   0

no error.

◆ APR_TO_OS_ERROR [1/2]

#define APR_TO_OS_ERROR (   e)    (e == 0 ? APR_SUCCESS : e - APR_OS_START_SYSERR)
Returns
os_err_type Fold an apr_status_t code back to the native platform defined error.
Parameters
eThe apr_status_t folded platform os error code.
Warning
macro implementation; the statcode argument may be evaluated multiple times. If the statcode was not created by apr_get_os_error or APR_FROM_OS_ERROR, the results are undefined.

◆ APR_TO_OS_ERROR [2/2]

#define APR_TO_OS_ERROR (   e)    (e)
Returns
os_err_type Fold an apr_status_t code back to the native platform defined error.
Parameters
eThe apr_status_t folded platform os error code.
Warning
macro implementation; the statcode argument may be evaluated multiple times. If the statcode was not created by apr_get_os_error or APR_FROM_OS_ERROR, the results are undefined.

◆ APR_UTIL_ERRSPACE_SIZE

#define APR_UTIL_ERRSPACE_SIZE   20000

APR_UTIL_ERRSPACE_SIZE is the size of the space that is reserved for use within apr-util. This space is reserved above that used by APR internally.

Note
This number MUST be smaller than APR_OS_ERRSPACE_SIZE by a large enough amount that APR has sufficient room for its codes.

◆ APR_UTIL_START_STATUS

#define APR_UTIL_START_STATUS
Value:
#define APR_OS_START_STATUS
Definition: apr_errno.h:136
#define APR_UTIL_ERRSPACE_SIZE
Definition: apr_errno.h:132
#define APR_OS_ERRSPACE_SIZE
Definition: apr_errno.h:123

APR_UTIL_START_STATUS is where APR-Util starts defining its status codes.

Typedef Documentation

◆ apr_status_t

typedef int apr_status_t

Type for specifying an error or status code.

Function Documentation

◆ apr_strerror()

char* apr_strerror ( apr_status_t  statcode,
char *  buf,
apr_size_t  bufsize 
)

Return a human readable string describing the specified error.

Parameters
statcodeThe error code to get a string for.
bufA buffer to hold the error string.
bufsizeSize of the buffer to hold the string.