Apache Portable Runtime
Macros

Macros

#define APR_STATUS_IS_ENOSTAT(s)    ((s) == APR_ENOSTAT)
 
#define APR_STATUS_IS_ENOPOOL(s)    ((s) == APR_ENOPOOL)
 
#define APR_STATUS_IS_EBADDATE(s)    ((s) == APR_EBADDATE)
 
#define APR_STATUS_IS_EINVALSOCK(s)    ((s) == APR_EINVALSOCK)
 
#define APR_STATUS_IS_ENOPROC(s)    ((s) == APR_ENOPROC)
 
#define APR_STATUS_IS_ENOTIME(s)    ((s) == APR_ENOTIME)
 
#define APR_STATUS_IS_ENODIR(s)    ((s) == APR_ENODIR)
 
#define APR_STATUS_IS_ENOLOCK(s)    ((s) == APR_ENOLOCK)
 
#define APR_STATUS_IS_ENOPOLL(s)    ((s) == APR_ENOPOLL)
 
#define APR_STATUS_IS_ENOSOCKET(s)    ((s) == APR_ENOSOCKET)
 
#define APR_STATUS_IS_ENOTHREAD(s)    ((s) == APR_ENOTHREAD)
 
#define APR_STATUS_IS_ENOTHDKEY(s)    ((s) == APR_ENOTHDKEY)
 
#define APR_STATUS_IS_EGENERAL(s)    ((s) == APR_EGENERAL)
 
#define APR_STATUS_IS_ENOSHMAVAIL(s)    ((s) == APR_ENOSHMAVAIL)
 
#define APR_STATUS_IS_EBADIP(s)    ((s) == APR_EBADIP)
 
#define APR_STATUS_IS_EBADMASK(s)    ((s) == APR_EBADMASK)
 
#define APR_STATUS_IS_EDSOOPEN(s)    ((s) == APR_EDSOOPEN)
 
#define APR_STATUS_IS_EABSOLUTE(s)    ((s) == APR_EABSOLUTE)
 
#define APR_STATUS_IS_ERELATIVE(s)    ((s) == APR_ERELATIVE)
 
#define APR_STATUS_IS_EINCOMPLETE(s)    ((s) == APR_EINCOMPLETE)
 
#define APR_STATUS_IS_EABOVEROOT(s)    ((s) == APR_EABOVEROOT)
 
#define APR_STATUS_IS_EBADPATH(s)    ((s) == APR_EBADPATH)
 
#define APR_STATUS_IS_EPATHWILD(s)    ((s) == APR_EPATHWILD)
 
#define APR_STATUS_IS_ESYMNOTFOUND(s)    ((s) == APR_ESYMNOTFOUND)
 
#define APR_STATUS_IS_EPROC_UNKNOWN(s)   ((s) == APR_EPROC_UNKNOWN)
 
#define APR_STATUS_IS_ENOTENOUGHENTROPY(s)   ((s) == APR_ENOTENOUGHENTROPY)
 
#define APR_STATUS_IS_INCHILD(s)    ((s) == APR_INCHILD)
 
#define APR_STATUS_IS_INPARENT(s)    ((s) == APR_INPARENT)
 
#define APR_STATUS_IS_DETACH(s)    ((s) == APR_DETACH)
 
#define APR_STATUS_IS_NOTDETACH(s)    ((s) == APR_NOTDETACH)
 
#define APR_STATUS_IS_CHILD_DONE(s)    ((s) == APR_CHILD_DONE)
 
#define APR_STATUS_IS_CHILD_NOTDONE(s)   ((s) == APR_CHILD_NOTDONE)
 
#define APR_STATUS_IS_TIMEUP(s)    ((s) == APR_TIMEUP)
 
#define APR_STATUS_IS_INCOMPLETE(s)    ((s) == APR_INCOMPLETE)
 
#define APR_STATUS_IS_BADCH(s)    ((s) == APR_BADCH)
 
#define APR_STATUS_IS_BADARG(s)    ((s) == APR_BADARG)
 
#define APR_STATUS_IS_EOF(s)    ((s) == APR_EOF)
 
#define APR_STATUS_IS_NOTFOUND(s)    ((s) == APR_NOTFOUND)
 
#define APR_STATUS_IS_ANONYMOUS(s)    ((s) == APR_ANONYMOUS)
 
#define APR_STATUS_IS_FILEBASED(s)    ((s) == APR_FILEBASED)
 
#define APR_STATUS_IS_KEYBASED(s)    ((s) == APR_KEYBASED)
 
#define APR_STATUS_IS_EINIT(s)    ((s) == APR_EINIT)
 
#define APR_STATUS_IS_ENOTIMPL(s)    ((s) == APR_ENOTIMPL)
 
#define APR_STATUS_IS_EMISMATCH(s)    ((s) == APR_EMISMATCH)
 
#define APR_STATUS_IS_EBUSY(s)    ((s) == APR_EBUSY)
 
#define APR_STATUS_IS_EACCES(s)    ((s) == APR_EACCES)
 
#define APR_STATUS_IS_EEXIST(s)    ((s) == APR_EEXIST)
 
#define APR_STATUS_IS_ENAMETOOLONG(s)    ((s) == APR_ENAMETOOLONG)
 
#define APR_STATUS_IS_ENOENT(s)    ((s) == APR_ENOENT)
 
#define APR_STATUS_IS_ENOTDIR(s)    ((s) == APR_ENOTDIR)
 
#define APR_STATUS_IS_ENOSPC(s)    ((s) == APR_ENOSPC)
 
#define APR_STATUS_IS_ENOMEM(s)    ((s) == APR_ENOMEM)
 
#define APR_STATUS_IS_EMFILE(s)    ((s) == APR_EMFILE)
 
#define APR_STATUS_IS_ENFILE(s)    ((s) == APR_ENFILE)
 
#define APR_STATUS_IS_EBADF(s)    ((s) == APR_EBADF)
 
#define APR_STATUS_IS_EINVAL(s)    ((s) == APR_EINVAL)
 
#define APR_STATUS_IS_ESPIPE(s)    ((s) == APR_ESPIPE)
 
#define APR_STATUS_IS_EAGAIN(s)    ((s) == APR_EAGAIN)
 
#define APR_STATUS_IS_EINTR(s)    ((s) == APR_EINTR)
 
#define APR_STATUS_IS_ENOTSOCK(s)    ((s) == APR_ENOTSOCK)
 
#define APR_STATUS_IS_ECONNREFUSED(s)    ((s) == APR_ECONNREFUSED)
 
#define APR_STATUS_IS_EINPROGRESS(s)    ((s) == APR_EINPROGRESS)
 
#define APR_STATUS_IS_ECONNABORTED(s)    ((s) == APR_ECONNABORTED)
 
#define APR_STATUS_IS_ECONNRESET(s)    ((s) == APR_ECONNRESET)
 
#define APR_STATUS_IS_ETIMEDOUT(s)    ((s) == APR_ETIMEDOUT)
 
#define APR_STATUS_IS_EHOSTUNREACH(s)    ((s) == APR_EHOSTUNREACH)
 
#define APR_STATUS_IS_ENETUNREACH(s)    ((s) == APR_ENETUNREACH)
 
#define APR_STATUS_IS_EFTYPE(s)    ((s) == APR_EFTYPE)
 
#define APR_STATUS_IS_EPIPE(s)    ((s) == APR_EPIPE)
 
#define APR_STATUS_IS_EXDEV(s)    ((s) == APR_EXDEV)
 
#define APR_STATUS_IS_ENOTEMPTY(s)
 
#define APR_STATUS_IS_EAFNOSUPPORT(s)    ((s) == APR_EAFNOSUPPORT)
 
#define APR_STATUS_IS_EOPNOTSUPP(s)    ((s) == APR_EOPNOTSUPP)
 
#define APR_STATUS_IS_ERANGE(s)    ((s) == APR_ERANGE)
 

Detailed Description

Warning
For any particular error condition, more than one of these tests may match. This is because platform-specific error codes may not always match the semantics of the POSIX codes these tests (and the corresponding APR error codes) are named after. A notable example are the APR_STATUS_IS_ENOENT and APR_STATUS_IS_ENOTDIR tests on Win32 platforms. The programmer should always be aware of this and adjust the order of the tests accordingly.

Macro Definition Documentation

#define APR_STATUS_IS_ANONYMOUS (   s)    ((s) == APR_ANONYMOUS)

APR is using anonymous shared memory

Warning
always use this test, as platform-specific variances may meet this more than one error code
#define APR_STATUS_IS_BADARG (   s)    ((s) == APR_BADARG)

Getopt found an option not in the option string and an argument was specified in the option string

Warning
always use this test, as platform-specific variances may meet this more than one error code
#define APR_STATUS_IS_BADCH (   s)    ((s) == APR_BADCH)

Getopt found an option not in the option string

Warning
always use this test, as platform-specific variances may meet this more than one error code
#define APR_STATUS_IS_CHILD_DONE (   s)    ((s) == APR_CHILD_DONE)

The child has finished executing

Warning
always use this test, as platform-specific variances may meet this more than one error code
#define APR_STATUS_IS_CHILD_NOTDONE (   s)    ((s) == APR_CHILD_NOTDONE)

The child has not finished executing

Warning
always use this test, as platform-specific variances may meet this more than one error code
#define APR_STATUS_IS_DETACH (   s)    ((s) == APR_DETACH)

The thread is detached

Warning
always use this test, as platform-specific variances may meet this more than one error code
#define APR_STATUS_IS_EABOVEROOT (   s)    ((s) == APR_EABOVEROOT)

The given path was above the root path.

#define APR_STATUS_IS_EABSOLUTE (   s)    ((s) == APR_EABSOLUTE)

The given path was absolute.

#define APR_STATUS_IS_EACCES (   s)    ((s) == APR_EACCES)

permission denied

#define APR_STATUS_IS_EAFNOSUPPORT (   s)    ((s) == APR_EAFNOSUPPORT)

Address Family not supported

#define APR_STATUS_IS_EAGAIN (   s)    ((s) == APR_EAGAIN)

operation would block

#define APR_STATUS_IS_EBADDATE (   s)    ((s) == APR_EBADDATE)

APR was given an invalid date

#define APR_STATUS_IS_EBADF (   s)    ((s) == APR_EBADF)

bad file #

#define APR_STATUS_IS_EBADIP (   s)    ((s) == APR_EBADIP)

The specified IP address is invalid

#define APR_STATUS_IS_EBADMASK (   s)    ((s) == APR_EBADMASK)

The specified netmask is invalid

#define APR_STATUS_IS_EBADPATH (   s)    ((s) == APR_EBADPATH)

The given path was bad.

#define APR_STATUS_IS_EBUSY (   s)    ((s) == APR_EBUSY)

The given lock was busy

Warning
always use this test, as platform-specific variances may meet this more than one error code
#define APR_STATUS_IS_ECONNABORTED (   s)    ((s) == APR_ECONNABORTED)

Software caused connection abort

Remarks
EPROTO on certain older kernels really means ECONNABORTED, so we need to ignore it for them. See discussion in new-httpd archives nh.9701 & nh.9603

There is potentially a bug in Solaris 2.x x<6, and other boxes that implement tcp sockets in userland (i.e. on top of STREAMS). On these systems, EPROTO can actually result in a fatal loop. See PR#981 for example. It's hard to handle both uses of EPROTO.

#define APR_STATUS_IS_ECONNREFUSED (   s)    ((s) == APR_ECONNREFUSED)

Connection Refused

#define APR_STATUS_IS_ECONNRESET (   s)    ((s) == APR_ECONNRESET)

Connection Reset by peer

#define APR_STATUS_IS_EDSOOPEN (   s)    ((s) == APR_EDSOOPEN)

APR was unable to open the dso object. For more information call apr_dso_error().

#define APR_STATUS_IS_EEXIST (   s)    ((s) == APR_EEXIST)

file exists

#define APR_STATUS_IS_EFTYPE (   s)    ((s) == APR_EFTYPE)

inappropriate file type or format

#define APR_STATUS_IS_EGENERAL (   s)    ((s) == APR_EGENERAL)

Generic Error which can not be put into another spot

#define APR_STATUS_IS_EHOSTUNREACH (   s)    ((s) == APR_EHOSTUNREACH)

no route to host

#define APR_STATUS_IS_EINCOMPLETE (   s)    ((s) == APR_EINCOMPLETE)

The given path was neither relative nor absolute.

#define APR_STATUS_IS_EINIT (   s)    ((s) == APR_EINIT)

Ininitalizer value. If no option has been found, but the status variable requires a value, this should be used

Warning
always use this test, as platform-specific variances may meet this more than one error code
#define APR_STATUS_IS_EINPROGRESS (   s)    ((s) == APR_EINPROGRESS)

operation now in progress

#define APR_STATUS_IS_EINTR (   s)    ((s) == APR_EINTR)

interrupted system call

#define APR_STATUS_IS_EINVAL (   s)    ((s) == APR_EINVAL)

invalid argument

#define APR_STATUS_IS_EINVALSOCK (   s)    ((s) == APR_EINVALSOCK)

APR was given an invalid socket

#define APR_STATUS_IS_EMFILE (   s)    ((s) == APR_EMFILE)

too many open files

#define APR_STATUS_IS_EMISMATCH (   s)    ((s) == APR_EMISMATCH)

Two passwords do not match.

Warning
always use this test, as platform-specific variances may meet this more than one error code
#define APR_STATUS_IS_ENAMETOOLONG (   s)    ((s) == APR_ENAMETOOLONG)

path name is too long

#define APR_STATUS_IS_ENETUNREACH (   s)    ((s) == APR_ENETUNREACH)

network is unreachable

#define APR_STATUS_IS_ENFILE (   s)    ((s) == APR_ENFILE)

file table overflow

#define APR_STATUS_IS_ENODIR (   s)    ((s) == APR_ENODIR)

APR was not given a directory structure

#define APR_STATUS_IS_ENOENT (   s)    ((s) == APR_ENOENT)

no such file or directory

Remarks
EMVSCATLG can be returned by the automounter on z/OS for paths which do not exist.
#define APR_STATUS_IS_ENOLOCK (   s)    ((s) == APR_ENOLOCK)

APR was not given a lock structure

#define APR_STATUS_IS_ENOMEM (   s)    ((s) == APR_ENOMEM)

not enough memory

#define APR_STATUS_IS_ENOPOLL (   s)    ((s) == APR_ENOPOLL)

APR was not given a poll structure

#define APR_STATUS_IS_ENOPOOL (   s)    ((s) == APR_ENOPOOL)

APR was not provided a pool with which to allocate memory

Warning
always use this test, as platform-specific variances may meet this more than one error code
#define APR_STATUS_IS_ENOPROC (   s)    ((s) == APR_ENOPROC)

APR was not given a process structure

#define APR_STATUS_IS_ENOSHMAVAIL (   s)    ((s) == APR_ENOSHMAVAIL)

There is no more shared memory available

#define APR_STATUS_IS_ENOSOCKET (   s)    ((s) == APR_ENOSOCKET)

APR was not given a socket

#define APR_STATUS_IS_ENOSPC (   s)    ((s) == APR_ENOSPC)

no space left on device

#define APR_STATUS_IS_ENOSTAT (   s)    ((s) == APR_ENOSTAT)

APR was unable to perform a stat on the file

Warning
always use this test, as platform-specific variances may meet this more than one error code
#define APR_STATUS_IS_ENOTDIR (   s)    ((s) == APR_ENOTDIR)

not a directory

#define APR_STATUS_IS_ENOTEMPTY (   s)
Value:
((s) == APR_ENOTEMPTY || \
(s) == APR_EEXIST)
#define APR_EEXIST
Definition: apr_errno.h:654
#define APR_ENOTEMPTY
Definition: apr_errno.h:832

Directory Not Empty

#define APR_STATUS_IS_ENOTENOUGHENTROPY (   s)    ((s) == APR_ENOTENOUGHENTROPY)

APR could not gather enough entropy to continue.

#define APR_STATUS_IS_ENOTHDKEY (   s)    ((s) == APR_ENOTHDKEY)

APR was not given a thread key structure

#define APR_STATUS_IS_ENOTHREAD (   s)    ((s) == APR_ENOTHREAD)

APR was not given a thread structure

#define APR_STATUS_IS_ENOTIME (   s)    ((s) == APR_ENOTIME)

APR was not given a time structure

#define APR_STATUS_IS_ENOTIMPL (   s)    ((s) == APR_ENOTIMPL)

The APR function has not been implemented on this platform, either because nobody has gotten to it yet, or the function is impossible on this platform.

Warning
always use this test, as platform-specific variances may meet this more than one error code
#define APR_STATUS_IS_ENOTSOCK (   s)    ((s) == APR_ENOTSOCK)

socket operation on a non-socket

#define APR_STATUS_IS_EOF (   s)    ((s) == APR_EOF)

APR has encountered the end of the file

Warning
always use this test, as platform-specific variances may meet this more than one error code
#define APR_STATUS_IS_EOPNOTSUPP (   s)    ((s) == APR_EOPNOTSUPP)

Socket operation not supported

#define APR_STATUS_IS_EPATHWILD (   s)    ((s) == APR_EPATHWILD)

The given path contained wildcards.

#define APR_STATUS_IS_EPIPE (   s)    ((s) == APR_EPIPE)

broken pipe

#define APR_STATUS_IS_EPROC_UNKNOWN (   s)    ((s) == APR_EPROC_UNKNOWN)

The given process was not recognized by APR.

#define APR_STATUS_IS_ERANGE (   s)    ((s) == APR_ERANGE)

Numeric value not representable

#define APR_STATUS_IS_ERELATIVE (   s)    ((s) == APR_ERELATIVE)

The given path was relative.

#define APR_STATUS_IS_ESPIPE (   s)    ((s) == APR_ESPIPE)

illegal seek

#define APR_STATUS_IS_ESYMNOTFOUND (   s)    ((s) == APR_ESYMNOTFOUND)

Could not find the requested symbol. For more information call apr_dso_error().

#define APR_STATUS_IS_ETIMEDOUT (   s)    ((s) == APR_ETIMEDOUT)

Operation timed out

Deprecated:
#define APR_STATUS_IS_EXDEV (   s)    ((s) == APR_EXDEV)

cross device link

#define APR_STATUS_IS_FILEBASED (   s)    ((s) == APR_FILEBASED)

APR is using a file name as the key to the shared memory

Warning
always use this test, as platform-specific variances may meet this more than one error code
#define APR_STATUS_IS_INCHILD (   s)    ((s) == APR_INCHILD)

Program is currently executing in the child

Warning
always use this test, as platform-specific variances may meet this more than one error code
#define APR_STATUS_IS_INCOMPLETE (   s)    ((s) == APR_INCOMPLETE)

The operation was incomplete although some processing was performed and the results are partially valid.

Warning
always use this test, as platform-specific variances may meet this more than one error code
#define APR_STATUS_IS_INPARENT (   s)    ((s) == APR_INPARENT)

Program is currently executing in the parent

Warning
always use this test, as platform-specific variances may meet this more than one error code
#define APR_STATUS_IS_KEYBASED (   s)    ((s) == APR_KEYBASED)

APR is using a shared key as the key to the shared memory

Warning
always use this test, as platform-specific variances may meet this more than one error code
#define APR_STATUS_IS_NOTDETACH (   s)    ((s) == APR_NOTDETACH)

The thread is not detached

Warning
always use this test, as platform-specific variances may meet this more than one error code
#define APR_STATUS_IS_NOTFOUND (   s)    ((s) == APR_NOTFOUND)

APR was unable to find the socket in the poll structure

Warning
always use this test, as platform-specific variances may meet this more than one error code
#define APR_STATUS_IS_TIMEUP (   s)    ((s) == APR_TIMEUP)

The operation did not finish before the timeout

Warning
always use this test, as platform-specific variances may meet this more than one error code