Files
lazarus-ccr/httpd/httpd_2_0/apr/apr_errno.inc
sekelsenmat f8e3459ac4 Added apache files
git-svn-id: https://svn.code.sf.net/p/lazarus-ccr/svn@13 8e941d3f-bd1b-0410-a28a-d453659cc2b4
2006-09-06 14:21:53 +00:00

1192 lines
48 KiB
PHP

{ Copyright 2000-2005 The Apache Software Foundation or its licensors, as
* applicable.
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
* You may obtain a copy of the License at
*
* http://www.apache.org/licenses/LICENSE-2.0
*
* Unless required by applicable law or agreed to in writing, software
* distributed under the License is distributed on an "AS IS" BASIS,
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
* See the License for the specific language governing permissions and
* limitations under the License.
}
{
* @file apr_errno.h
* @brief APR Error Codes
}
{#include "apr.h"
#if APR_HAVE_ERRNO_H
#include <errno.h>
#endif}
{
* @defgroup apr_errno Error Codes
* @ingroup APR
}
{
* Type for specifying an error or status code.
}
type
apr_status_t = Integer;
Papr_status_t = ^apr_status_t;
{
* Return a human readable string describing the specified error.
* @param statcode The error code the get a string for.
* @param buf A buffer to hold the error string.
* @param bufsize Size of the buffer to hold the string.
}
function apr_strerror(statcode: apr_status_t; buf: PChar; bufsize: apr_size_t): PChar;
{$IFDEF WINDOWS} stdcall; {$ELSE} cdecl; {$ENDIF}
external LibAPR name LibNamePrefix + 'apr_strerror' + LibSuff12;
{$ifdef DOXYGEN)}
{
* @def APR_FROM_OS_ERROR(os_err_type syserr)
* Fold a platform specific error into an apr_status_t code.
* @return apr_status_t
* @param e The platform os error code.
* @warning macro implementation; the syserr argument may be evaluated
* multiple times.
}
#define APR_FROM_OS_ERROR(e) (e == 0 ? APR_SUCCESS : e + APR_OS_START_SYSERR)
{
* @def APR_TO_OS_ERROR(apr_status_t statcode)
* @return os_err_type
* Fold an apr_status_t code back to the native platform defined error.
* @param e The 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.
}
#define APR_TO_OS_ERROR(e) (e == 0 ? APR_SUCCESS : e - APR_OS_START_SYSERR)
{ @def apr_get_os_error()
* @return apr_status_t the last platform error, folded into apr_status_t, on most platforms
* @remark 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!
}
{ @def apr_set_os_error(e)
* Reset the last platform error, unfolded from an apr_status_t, on some platforms
* @param e The 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.
}
{ @def apr_get_netos_error()
* Return the last socket error, folded into apr_status_t, on all platforms
* @remark This retrieves errno or calls a GetLastSocketError() style function,
* and folds it with APR_FROM_OS_ERROR.
}
{ @def apr_set_netos_error(e)
* Reset the last socket error, unfolded from an apr_status_t
* @param e The 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.
}
{$endif} { defined(DOXYGEN) }
const
{
* APR_OS_START_ERROR is where the APR specific error values start.
}
APR_OS_START_ERROR = 20000;
{
* 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_ERRSPACE_SIZE = 50000;
{
* APR_OS_START_STATUS is where the APR specific status codes start.
}
APR_OS_START_STATUS = (APR_OS_START_ERROR + 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.
}
APR_OS_START_USERERR = (APR_OS_START_STATUS + APR_OS_ERRSPACE_SIZE);
{
* APR_OS_START_USEERR is obsolete, defined for compatibility only.
* Use APR_OS_START_USERERR instead.
}
APR_OS_START_USEERR = APR_OS_START_USERERR;
{
* 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_CANONERR = (APR_OS_START_USERERR + (APR_OS_ERRSPACE_SIZE * 10));
{
* APR_OS_START_EAIERR folds EAI_ error codes from getaddrinfo() into
* apr_status_t values.
}
APR_OS_START_EAIERR = (APR_OS_START_CANONERR + APR_OS_ERRSPACE_SIZE);
{
* APR_OS_START_SYSERR folds platform-specific system error values into
* apr_status_t values.
}
APR_OS_START_SYSERR = (APR_OS_START_EAIERR + APR_OS_ERRSPACE_SIZE);
{ no error. @see APR_STATUS_IS_SUCCESS }
APR_SUCCESS = 0;
{
* @defgroup APR_Error APR Error Values
* <PRE>
* <b>APR ERROR VALUES</b>
* APR_ENOSTAT APR was unable to perform a stat on the file
* APR_ENOPOOL APR was not provided a pool with which to allocate memory
* APR_EBADDATE APR was given an invalid date
* APR_EINVALSOCK APR was given an invalid socket
* APR_ENOPROC APR was not given a process structure
* APR_ENOTIME APR was not given a time structure
* APR_ENODIR APR was not given a directory structure
* APR_ENOLOCK APR was not given a lock structure
* APR_ENOPOLL APR was not given a poll structure
* APR_ENOSOCKET APR was not given a socket
* APR_ENOTHREAD APR was not given a thread structure
* APR_ENOTHDKEY APR was not given a thread key structure
* APR_ENOSHMAVAIL There is no more shared memory available
* APR_EDSOOPEN APR was unable to open the dso object. For more
* information call apr_dso_error().
* APR_EGENERAL General failure (specific information not available)
* APR_EBADIP The specified IP address is invalid
* APR_EBADMASK The specified netmask is invalid
* APR_ESYMNOTFOUND Could not find the requested symbol
* </PRE>
*
* <PRE>
* <b>APR STATUS VALUES</b>
* APR_INCHILD Program is currently executing in the child
* APR_INPARENT Program is currently executing in the parent
* APR_DETACH The thread is detached
* APR_NOTDETACH The thread is not detached
* APR_CHILD_DONE The child has finished executing
* APR_CHILD_NOTDONE The child has not finished executing
* APR_TIMEUP The operation did not finish before the timeout
* APR_INCOMPLETE The operation was incomplete although some processing
* was performed and the results are partially valid
* APR_BADCH Getopt found an option not in the option string
* APR_BADARG Getopt found an option that is missing an argument
* and an argument was specified in the option string
* APR_EOF APR has encountered the end of the file
* APR_NOTFOUND APR was unable to find the socket in the poll structure
* APR_ANONYMOUS APR is using anonymous shared memory
* APR_FILEBASED APR is using a file name as the key to the shared memory
* APR_KEYBASED APR is using a shared key as the key to the shared memory
* APR_EINIT Ininitalizer value. If no option has been found, but
* the status variable requires a value, this should be used
* 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.
* APR_EMISMATCH Two passwords do not match.
* APR_EABSOLUTE The given path was absolute.
* APR_ERELATIVE The given path was relative.
* APR_EINCOMPLETE The given path was neither relative nor absolute.
* APR_EABOVEROOT The given path was above the root path.
* APR_EBUSY The given lock was busy.
* APR_EPROC_UNKNOWN The given process wasn't recognized by APR
* </PRE>
}
{ @see APR_STATUS_IS_ENOSTAT }
APR_ENOSTAT = (APR_OS_START_ERROR + 1);
{ @see APR_STATUS_IS_ENOPOOL }
APR_ENOPOOL = (APR_OS_START_ERROR + 2);
{ empty slot: +3 }
{ @see APR_STATUS_IS_EBADDATE }
APR_EBADDATE = (APR_OS_START_ERROR + 4);
{ @see APR_STATUS_IS_EINVALSOCK }
APR_EINVALSOCK = (APR_OS_START_ERROR + 5);
{ @see APR_STATUS_IS_ENOPROC }
APR_ENOPROC = (APR_OS_START_ERROR + 6);
{ @see APR_STATUS_IS_ENOTIME }
APR_ENOTIME = (APR_OS_START_ERROR + 7);
{ @see APR_STATUS_IS_ENODIR }
APR_ENODIR = (APR_OS_START_ERROR + 8);
{ @see APR_STATUS_IS_ENOLOCK }
APR_ENOLOCK = (APR_OS_START_ERROR + 9);
{ @see APR_STATUS_IS_ENOPOLL }
APR_ENOPOLL = (APR_OS_START_ERROR + 10);
{ @see APR_STATUS_IS_ENOSOCKET }
APR_ENOSOCKET = (APR_OS_START_ERROR + 11);
{ @see APR_STATUS_IS_ENOTHREAD }
APR_ENOTHREAD = (APR_OS_START_ERROR + 12);
{ @see APR_STATUS_IS_ENOTHDKEY }
APR_ENOTHDKEY = (APR_OS_START_ERROR + 13);
{ @see APR_STATUS_IS_EGENERAL }
APR_EGENERAL = (APR_OS_START_ERROR + 14);
{ @see APR_STATUS_IS_ENOSHMAVAIL }
APR_ENOSHMAVAIL = (APR_OS_START_ERROR + 15);
{ @see APR_STATUS_IS_EBADIP }
APR_EBADIP = (APR_OS_START_ERROR + 16);
{ @see APR_STATUS_IS_EBADMASK }
APR_EBADMASK = (APR_OS_START_ERROR + 17);
{ empty slot: +18 }
{ @see APR_STATUS_IS_EDSOPEN }
APR_EDSOOPEN = (APR_OS_START_ERROR + 19);
{ @see APR_STATUS_IS_EABSOLUTE }
APR_EABSOLUTE = (APR_OS_START_ERROR + 20);
{ @see APR_STATUS_IS_ERELATIVE }
APR_ERELATIVE = (APR_OS_START_ERROR + 21);
{ @see APR_STATUS_IS_EINCOMPLETE }
APR_EINCOMPLETE = (APR_OS_START_ERROR + 22);
{ @see APR_STATUS_IS_EABOVEROOT }
APR_EABOVEROOT = (APR_OS_START_ERROR + 23);
{ @see APR_STATUS_IS_EBADPATH }
APR_EBADPATH = (APR_OS_START_ERROR + 24);
{ @see APR_STATUS_IS_EPATHWILD }
APR_EPATHWILD = (APR_OS_START_ERROR + 25);
{ @see APR_STATUS_IS_ESYMNOTFOUND }
APR_ESYMNOTFOUND = (APR_OS_START_ERROR + 26);
{ @see APR_STATUS_IS_EPROC_UNKNOWN }
APR_EPROC_UNKNOWN = (APR_OS_START_ERROR + 27);
{
* @defgroup APR_STATUS_IS Status Value Tests
* @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
* correcponding 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.
}
{
* 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_ENOSTAT(s) ((s) == APR_ENOSTAT)
{
* 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_ENOPOOL(s) ((s) == APR_ENOPOOL)
{ APR was given an invalid date }
//#define APR_STATUS_IS_EBADDATE(s) ((s) == APR_EBADDATE)
{ APR was given an invalid socket }
//#define APR_STATUS_IS_EINVALSOCK(s) ((s) == APR_EINVALSOCK)
{ APR was not given a process structure }
//#define APR_STATUS_IS_ENOPROC(s) ((s) == APR_ENOPROC)
{ APR was not given a time structure }
//#define APR_STATUS_IS_ENOTIME(s) ((s) == APR_ENOTIME)
{ APR was not given a directory structure }
//#define APR_STATUS_IS_ENODIR(s) ((s) == APR_ENODIR)
{ APR was not given a lock structure }
//#define APR_STATUS_IS_ENOLOCK(s) ((s) == APR_ENOLOCK)
{ APR was not given a poll structure }
//#define APR_STATUS_IS_ENOPOLL(s) ((s) == APR_ENOPOLL)
{ APR was not given a socket }
//#define APR_STATUS_IS_ENOSOCKET(s) ((s) == APR_ENOSOCKET)
{ APR was not given a thread structure }
//#define APR_STATUS_IS_ENOTHREAD(s) ((s) == APR_ENOTHREAD)
{ APR was not given a thread key structure }
//#define APR_STATUS_IS_ENOTHDKEY(s) ((s) == APR_ENOTHDKEY)
{ Generic Error which can not be put into another spot }
//#define APR_STATUS_IS_EGENERAL(s) ((s) == APR_EGENERAL)
{ There is no more shared memory available }
//#define APR_STATUS_IS_ENOSHMAVAIL(s) ((s) == APR_ENOSHMAVAIL)
{ The specified IP address is invalid }
//#define APR_STATUS_IS_EBADIP(s) ((s) == APR_EBADIP)
{ The specified netmask is invalid }
//#define APR_STATUS_IS_EBADMASK(s) ((s) == APR_EBADMASK)
{ empty slot: +18 }
{
* APR was unable to open the dso object.
* For more information call apr_dso_error().
}
//#if defined(WIN32)
//#define APR_STATUS_IS_EDSOOPEN(s) ((s) == APR_EDSOOPEN \
// || APR_TO_OS_ERROR(s) == ERROR_MOD_NOT_FOUND)
//#else
//#define APR_STATUS_IS_EDSOOPEN(s) ((s) == APR_EDSOOPEN)
//#endif
{ The given path was absolute. }
//#define APR_STATUS_IS_EABSOLUTE(s) ((s) == APR_EABSOLUTE)
{ The given path was relative. }
//#define APR_STATUS_IS_ERELATIVE(s) ((s) == APR_ERELATIVE)
{ The given path was neither relative nor absolute. }
//#define APR_STATUS_IS_EINCOMPLETE(s) ((s) == APR_EINCOMPLETE)
{ The given path was above the root path. }
//#define APR_STATUS_IS_EABOVEROOT(s) ((s) == APR_EABOVEROOT)
{ The given path was bad. }
//#define APR_STATUS_IS_EBADPATH(s) ((s) == APR_EBADPATH)
{ The given path contained wildcards. }
//#define APR_STATUS_IS_EPATHWILD(s) ((s) == APR_EPATHWILD)
{ Could not find the requested symbol.
* For more information call apr_dso_error().
}
//#if defined(WIN32)
//#define APR_STATUS_IS_ESYMNOTFOUND(s) ((s) == APR_ESYMNOTFOUND \
// || APR_TO_OS_ERROR(s) == ERROR_PROC_NOT_FOUND)
//#else
//#define APR_STATUS_IS_ESYMNOTFOUND(s) ((s) == APR_ESYMNOTFOUND)
//#endif
{ The given process was not recognized by APR. }
//#define APR_STATUS_IS_EPROC_UNKNOWN(s) ((s) == APR_EPROC_UNKNOWN)
{
* @addtogroup APR_Error
}
{ @see APR_STATUS_IS_INCHILD }
APR_INCHILD = (APR_OS_START_STATUS + 1);
{ @see APR_STATUS_IS_INPARENT }
APR_INPARENT = (APR_OS_START_STATUS + 2);
{ @see APR_STATUS_IS_DETACH }
APR_DETACH = (APR_OS_START_STATUS + 3);
{ @see APR_STATUS_IS_NOTDETACH }
APR_NOTDETACH = (APR_OS_START_STATUS + 4);
{ @see APR_STATUS_IS_CHILD_DONE }
APR_CHILD_DONE = (APR_OS_START_STATUS + 5);
{ @see APR_STATUS_IS_CHILD_NOTDONE }
APR_CHILD_NOTDONE = (APR_OS_START_STATUS + 6);
{ @see APR_STATUS_IS_TIMEUP }
APR_TIMEUP = (APR_OS_START_STATUS + 7);
{ @see APR_STATUS_IS_INCOMPLETE }
APR_INCOMPLETE = (APR_OS_START_STATUS + 8);
{ empty slot: +9 }
{ empty slot: +10 }
{ empty slot: +11 }
{ @see APR_STATUS_IS_BADCH }
APR_BADCH = (APR_OS_START_STATUS + 12);
{ @see APR_STATUS_IS_BADARG }
APR_BADARG = (APR_OS_START_STATUS + 13);
{ @see APR_STATUS_IS_EOF }
APR_EOF = (APR_OS_START_STATUS + 14);
{ @see APR_STATUS_IS_NOTFOUND }
APR_NOTFOUND = (APR_OS_START_STATUS + 15);
{ empty slot: +16 }
{ empty slot: +17 }
{ empty slot: +18 }
{ @see APR_STATUS_IS_ANONYMOUS }
APR_ANONYMOUS = (APR_OS_START_STATUS + 19);
{ @see APR_STATUS_IS_FILEBASED }
APR_FILEBASED = (APR_OS_START_STATUS + 20);
{ @see APR_STATUS_IS_KEYBASED }
APR_KEYBASED = (APR_OS_START_STATUS + 21);
{ @see APR_STATUS_IS_EINIT }
APR_EINIT = (APR_OS_START_STATUS + 22);
{ @see APR_STATUS_IS_ENOTIMPL }
APR_ENOTIMPL = (APR_OS_START_STATUS + 23);
{ @see APR_STATUS_IS_EMISMATCH }
APR_EMISMATCH = (APR_OS_START_STATUS + 24);
{ @see APR_STATUS_IS_EBUSY }
APR_EBUSY = (APR_OS_START_STATUS + 25);
{
* @addtogroup APR_STATUS_IS
}
{
* 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_INCHILD(s) ((s) == APR_INCHILD)
{
* 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_INPARENT(s) ((s) == APR_INPARENT)
{
* 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_DETACH(s) ((s) == APR_DETACH)
{
* 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_NOTDETACH(s) ((s) == APR_NOTDETACH)
{
* 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_DONE(s) ((s) == APR_CHILD_DONE)
{
* 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_CHILD_NOTDONE(s) ((s) == APR_CHILD_NOTDONE)
{
* 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
}
//#define APR_STATUS_IS_TIMEUP(s) ((s) == APR_TIMEUP)
{
* 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_INCOMPLETE(s) ((s) == APR_INCOMPLETE)
{ empty slot: +9 }
{ empty slot: +10 }
{ empty slot: +11 }
{
* 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_BADCH(s) ((s) == APR_BADCH)
{
* 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_BADARG(s) ((s) == APR_BADARG)
{
* 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_EOF(s) ((s) == APR_EOF)
{
* 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_NOTFOUND(s) ((s) == APR_NOTFOUND)
{ empty slot: +16 }
{ empty slot: +17 }
{ empty slot: +18 }
{
* 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_ANONYMOUS(s) ((s) == APR_ANONYMOUS)
{
* 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_FILEBASED(s) ((s) == APR_FILEBASED)
{
* 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_KEYBASED(s) ((s) == APR_KEYBASED)
{
* 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_EINIT(s) ((s) == APR_EINIT)
{
* 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_ENOTIMPL(s) ((s) == APR_ENOTIMPL)
{
* 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_EMISMATCH(s) ((s) == APR_EMISMATCH)
{
* 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_EBUSY(s) ((s) == APR_EBUSY)
{
* @addtogroup APR_Error APR Error Values
}
{ APR CANONICAL ERROR VALUES }
{ @see APR_STATUS_IS_EACCES }
{#ifdef EACCES
#define APR_EACCES EACCES
#else
#define APR_EACCES (APR_OS_START_CANONERR + 1)
#endif
}
{ @see APR_STATUS_IS_EXIST }
{#ifdef EEXIST
#define APR_EEXIST EEXIST
#else
#define APR_EEXIST (APR_OS_START_CANONERR + 2)
#endif
}
{ @see APR_STATUS_IS_ENAMETOOLONG }
{#ifdef ENAMETOOLONG
#define APR_ENAMETOOLONG ENAMETOOLONG
#else
#define APR_ENAMETOOLONG (APR_OS_START_CANONERR + 3)
#endif
}
{ @see APR_STATUS_IS_ENOENT }
{#ifdef ENOENT
#define APR_ENOENT ENOENT
#else
#define APR_ENOENT (APR_OS_START_CANONERR + 4)
#endif
}
{ @see APR_STATUS_IS_ENOTDIR }
{#ifdef ENOTDIR
#define APR_ENOTDIR ENOTDIR
#else
#define APR_ENOTDIR (APR_OS_START_CANONERR + 5)
#endif
}
{ @see APR_STATUS_IS_ENOSPC }
{#ifdef ENOSPC
#define APR_ENOSPC ENOSPC
#else
#define APR_ENOSPC (APR_OS_START_CANONERR + 6)
#endif
}
{ @see APR_STATUS_IS_ENOMEM }
{#ifdef ENOMEM
#define APR_ENOMEM ENOMEM
#else
#define APR_ENOMEM (APR_OS_START_CANONERR + 7)
#endif
}
{ @see APR_STATUS_IS_EMFILE }
{#ifdef EMFILE
#define APR_EMFILE EMFILE
#else
#define APR_EMFILE (APR_OS_START_CANONERR + 8)
#endif
}
{ @see APR_STATUS_IS_ENFILE }
{#ifdef ENFILE
#define APR_ENFILE ENFILE
#else
#define APR_ENFILE (APR_OS_START_CANONERR + 9)
#endif
}
{ @see APR_STATUS_IS_EBADF }
{#ifdef EBADF
#define APR_EBADF EBADF
#else
#define APR_EBADF (APR_OS_START_CANONERR + 10)
#endif
}
{ @see APR_STATUS_IS_EINVAL }
{#ifdef EINVAL
#define APR_EINVAL EINVAL
#else
#define APR_EINVAL (APR_OS_START_CANONERR + 11)
#endif
}
{ @see APR_STATUS_IS_ESPIPE }
{#ifdef ESPIPE
#define APR_ESPIPE ESPIPE
#else
#define APR_ESPIPE (APR_OS_START_CANONERR + 12)
#endif
}
{
* @see APR_STATUS_IS_EAGAIN
* @warning use APR_STATUS_IS_EAGAIN instead of just testing this value
}
{#ifdef EAGAIN
#define APR_EAGAIN EAGAIN
#elif defined(EWOULDBLOCK)
#define APR_EAGAIN EWOULDBLOCK
#else
#define APR_EAGAIN (APR_OS_START_CANONERR + 13)
#endif
}
{ @see APR_STATUS_IS_EINTR }
{#ifdef EINTR
#define APR_EINTR EINTR
#else
#define APR_EINTR (APR_OS_START_CANONERR + 14)
#endif
}
{ @see APR_STATUS_IS_ENOTSOCK }
{#ifdef ENOTSOCK
#define APR_ENOTSOCK ENOTSOCK
#else
#define APR_ENOTSOCK (APR_OS_START_CANONERR + 15)
#endif
}
{ @see APR_STATUS_IS_ECONNREFUSED }
{#ifdef ECONNREFUSED
#define APR_ECONNREFUSED ECONNREFUSED
#else
#define APR_ECONNREFUSED (APR_OS_START_CANONERR + 16)
#endif
}
{ @see APR_STATUS_IS_EINPROGRESS }
{#ifdef EINPROGRESS
#define APR_EINPROGRESS EINPROGRESS
#else
#define APR_EINPROGRESS (APR_OS_START_CANONERR + 17)
#endif
}
{
* @see APR_STATUS_IS_ECONNABORTED
* @warning use APR_STATUS_IS_ECONNABORTED instead of just testing this value
}
{#ifdef ECONNABORTED
#define APR_ECONNABORTED ECONNABORTED
#else
#define APR_ECONNABORTED (APR_OS_START_CANONERR + 18)
#endif
}
{ @see APR_STATUS_IS_ECONNRESET }
{#ifdef ECONNRESET
#define APR_ECONNRESET ECONNRESET
#else
#define APR_ECONNRESET (APR_OS_START_CANONERR + 19)
#endif
}
{ @see APR_STATUS_IS_ETIMEDOUT }
{#ifdef ETIMEDOUT
#define APR_ETIMEDOUT ETIMEDOUT
#else
#define APR_ETIMEDOUT (APR_OS_START_CANONERR + 20)
#endif
}
{ @see APR_STATUS_IS_EHOSTUNREACH }
{#ifdef EHOSTUNREACH
#define APR_EHOSTUNREACH EHOSTUNREACH
#else
#define APR_EHOSTUNREACH (APR_OS_START_CANONERR + 21)
#endif
}
{ @see APR_STATUS_IS_ENETUNREACH }
{#ifdef ENETUNREACH
#define APR_ENETUNREACH ENETUNREACH
#else
#define APR_ENETUNREACH (APR_OS_START_CANONERR + 22)
#endif
}
{ @see APR_STATUS_IS_EFTYPE }
{#ifdef EFTYPE
#define APR_EFTYPE EFTYPE
#else
#define APR_EFTYPE (APR_OS_START_CANONERR + 23)
#endif
}
{ @see APR_STATUS_IS_EPIPE }
{#ifdef EPIPE
#define APR_EPIPE EPIPE
#else
#define APR_EPIPE (APR_OS_START_CANONERR + 24)
#endif
}
{ @see APR_STATUS_IS_EXDEV }
{#ifdef EXDEV
#define APR_EXDEV EXDEV
#else
#define APR_EXDEV (APR_OS_START_CANONERR + 25)
#endif
}
{ @see APR_STATUS_IS_ENOTEMPTY }
{#ifdef ENOTEMPTY
#define APR_ENOTEMPTY ENOTEMPTY
#else
#define APR_ENOTEMPTY (APR_OS_START_CANONERR + 26)
#endif
#if defined(OS2) && !defined(DOXYGEN)
#define APR_FROM_OS_ERROR(e) (e == 0 ? APR_SUCCESS : e + APR_OS_START_SYSERR)
#define APR_TO_OS_ERROR(e) (e == 0 ? APR_SUCCESS : e - APR_OS_START_SYSERR)
#define INCL_DOSERRORS
#define INCL_DOS
}
{ Leave these undefined.
* OS2 doesn't rely on the errno concept.
* The API calls always return a result codes which
* should be filtered through APR_FROM_OS_ERROR().
*
* #define apr_get_os_error() (APR_FROM_OS_ERROR(GetLastError()))
* #define apr_set_os_error(e) (SetLastError(APR_TO_OS_ERROR(e)))
}
{ A special case, only socket calls require this;
}
{#define apr_get_netos_error() (APR_FROM_OS_ERROR(errno))
#define apr_set_netos_error(e) (errno = APR_TO_OS_ERROR(e))
}
{ And this needs to be greped away for good:
}
{#define APR_OS2_STATUS(e) (APR_FROM_OS_ERROR(e))
#define APR_STATUS_IS_SUCCESS(s) ((s) == APR_SUCCESS \
|| (s) == APR_OS_START_SYSERR + NO_ERROR)
}
{ These can't sit in a private header, so in spite of the extra size,
* they need to be made available here.
}
SOCBASEERR = 10000;
SOCEPERM = (SOCBASEERR+1); { Not owner }
SOCESRCH = (SOCBASEERR+3); { No such process }
SOCEINTR = (SOCBASEERR+4); { Interrupted system call }
SOCENXIO = (SOCBASEERR+6); { No such device or address }
SOCEBADF = (SOCBASEERR+9); { Bad file number }
SOCEACCES = (SOCBASEERR+13); { Permission denied }
SOCEFAULT = (SOCBASEERR+14); { Bad address }
SOCEINVAL = (SOCBASEERR+22); { Invalid argument }
SOCEMFILE = (SOCBASEERR+24); { Too many open files }
SOCEPIPE = (SOCBASEERR+32); { Broken pipe }
SOCEOS2ERR = (SOCBASEERR+100); { OS/2 Error }
SOCEWOULDBLOCK = (SOCBASEERR+35); { Operation would block }
SOCEINPROGRESS = (SOCBASEERR+36); { Operation now in progress }
SOCEALREADY = (SOCBASEERR+37); { Operation already in progress }
SOCENOTSOCK = (SOCBASEERR+38); { Socket operation on non-socket }
SOCEDESTADDRREQ = (SOCBASEERR+39); { Destination address required }
SOCEMSGSIZE = (SOCBASEERR+40); { Message too long }
SOCEPROTOTYPE = (SOCBASEERR+41); { Protocol wrong type for socket }
SOCENOPROTOOPT = (SOCBASEERR+42); { Protocol not available }
SOCEPROTONOSUPPORT = (SOCBASEERR+43); { Protocol not supported }
SOCESOCKTNOSUPPORT = (SOCBASEERR+44); { Socket type not supported }
SOCEOPNOTSUPP = (SOCBASEERR+45); { Operation not supported on socket }
SOCEPFNOSUPPORT = (SOCBASEERR+46); { Protocol family not supported }
SOCEAFNOSUPPORT = (SOCBASEERR+47); { Address family not supported by protocol family }
SOCEADDRINUSE = (SOCBASEERR+48); { Address already in use }
SOCEADDRNOTAVAIL = (SOCBASEERR+49); { Can't assign requested address }
SOCENETDOWN = (SOCBASEERR+50); { Network is down }
SOCENETUNREACH = (SOCBASEERR+51); { Network is unreachable }
SOCENETRESET = (SOCBASEERR+52); { Network dropped connection on reset }
SOCECONNABORTED = (SOCBASEERR+53); { Software caused connection abort }
SOCECONNRESET = (SOCBASEERR+54); { Connection reset by peer }
SOCENOBUFS = (SOCBASEERR+55); { No buffer space available }
SOCEISCONN = (SOCBASEERR+56); { Socket is already connected }
SOCENOTCONN = (SOCBASEERR+57); { Socket is not connected }
SOCESHUTDOWN = (SOCBASEERR+58); { Can't send after socket shutdown }
SOCETOOMANYREFS = (SOCBASEERR+59); { Too many references: can't splice }
SOCETIMEDOUT = (SOCBASEERR+60); { Connection timed out }
SOCECONNREFUSED = (SOCBASEERR+61); { Connection refused }
SOCELOOP = (SOCBASEERR+62); { Too many levels of symbolic links }
SOCENAMETOOLONG = (SOCBASEERR+63); { File name too long }
SOCEHOSTDOWN = (SOCBASEERR+64); { Host is down }
SOCEHOSTUNREACH = (SOCBASEERR+65); { No route to host }
SOCENOTEMPTY = (SOCBASEERR+66); { Directory not empty }
{ APR CANONICAL ERROR TESTS }
{#define APR_STATUS_IS_EACCES(s) ((s) == APR_EACCES \
|| (s) == APR_OS_START_SYSERR + ERROR_ACCESS_DENIED \
|| (s) == APR_OS_START_SYSERR + ERROR_SHARING_VIOLATION)
#define APR_STATUS_IS_EEXIST(s) ((s) == APR_EEXIST \
|| (s) == APR_OS_START_SYSERR + ERROR_OPEN_FAILED \
|| (s) == APR_OS_START_SYSERR + ERROR_FILE_EXISTS \
|| (s) == APR_OS_START_SYSERR + ERROR_ALREADY_EXISTS \
|| (s) == APR_OS_START_SYSERR + ERROR_ACCESS_DENIED)
#define APR_STATUS_IS_ENAMETOOLONG(s) ((s) == APR_ENAMETOOLONG \
|| (s) == APR_OS_START_SYSERR + ERROR_FILENAME_EXCED_RANGE \
|| (s) == APR_OS_START_SYSERR + SOCENAMETOOLONG)
#define APR_STATUS_IS_ENOENT(s) ((s) == APR_ENOENT \
|| (s) == APR_OS_START_SYSERR + ERROR_FILE_NOT_FOUND \
|| (s) == APR_OS_START_SYSERR + ERROR_PATH_NOT_FOUND \
|| (s) == APR_OS_START_SYSERR + ERROR_NO_MORE_FILES \
|| (s) == APR_OS_START_SYSERR + ERROR_OPEN_FAILED)
#define APR_STATUS_IS_ENOTDIR(s) ((s) == APR_ENOTDIR)
#define APR_STATUS_IS_ENOSPC(s) ((s) == APR_ENOSPC \
|| (s) == APR_OS_START_SYSERR + ERROR_DISK_FULL)
#define APR_STATUS_IS_ENOMEM(s) ((s) == APR_ENOMEM)
#define APR_STATUS_IS_EMFILE(s) ((s) == APR_EMFILE \
|| (s) == APR_OS_START_SYSERR + ERROR_TOO_MANY_OPEN_FILES)
#define APR_STATUS_IS_ENFILE(s) ((s) == APR_ENFILE)
#define APR_STATUS_IS_EBADF(s) ((s) == APR_EBADF \
|| (s) == APR_OS_START_SYSERR + ERROR_INVALID_HANDLE)
#define APR_STATUS_IS_EINVAL(s) ((s) == APR_EINVAL \
|| (s) == APR_OS_START_SYSERR + ERROR_INVALID_PARAMETER \
|| (s) == APR_OS_START_SYSERR + ERROR_INVALID_FUNCTION)
#define APR_STATUS_IS_ESPIPE(s) ((s) == APR_ESPIPE \
|| (s) == APR_OS_START_SYSERR + ERROR_NEGATIVE_SEEK)
#define APR_STATUS_IS_EAGAIN(s) ((s) == APR_EAGAIN \
|| (s) == APR_OS_START_SYSERR + ERROR_NO_DATA \
|| (s) == APR_OS_START_SYSERR + SOCEWOULDBLOCK \
|| (s) == APR_OS_START_SYSERR + ERROR_LOCK_VIOLATION)
#define APR_STATUS_IS_EINTR(s) ((s) == APR_EINTR \
|| (s) == APR_OS_START_SYSERR + SOCEINTR)
#define APR_STATUS_IS_ENOTSOCK(s) ((s) == APR_ENOTSOCK \
|| (s) == APR_OS_START_SYSERR + SOCENOTSOCK)
#define APR_STATUS_IS_ECONNREFUSED(s) ((s) == APR_ECONNREFUSED \
|| (s) == APR_OS_START_SYSERR + SOCECONNREFUSED)
#define APR_STATUS_IS_EINPROGRESS(s) ((s) == APR_EINPROGRESS \
|| (s) == APR_OS_START_SYSERR + SOCEINPROGRESS)
#define APR_STATUS_IS_ECONNABORTED(s) ((s) == APR_ECONNABORTED \
|| (s) == APR_OS_START_SYSERR + SOCECONNABORTED)
#define APR_STATUS_IS_ECONNRESET(s) ((s) == APR_ECONNRESET \
|| (s) == APR_OS_START_SYSERR + SOCECONNRESET)
#define APR_STATUS_IS_ETIMEDOUT(s) ((s) == APR_ETIMEDOUT \
|| (s) == APR_OS_START_SYSERR + SOCETIMEDOUT)
#define APR_STATUS_IS_EHOSTUNREACH(s) ((s) == APR_EHOSTUNREACH \
|| (s) == APR_OS_START_SYSERR + SOCEHOSTUNREACH)
#define APR_STATUS_IS_ENETUNREACH(s) ((s) == APR_ENETUNREACH \
|| (s) == APR_OS_START_SYSERR + SOCENETUNREACH)
#define APR_STATUS_IS_EFTYPE(s) ((s) == APR_EFTYPE)
#define APR_STATUS_IS_EPIPE(s) ((s) == APR_EPIPE \
|| (s) == APR_OS_START_SYSERR + ERROR_BROKEN_PIPE \
|| (s) == APR_OS_START_SYSERR + SOCEPIPE)
#define APR_STATUS_IS_EXDEV(s) ((s) == APR_EXDEV \
|| (s) == APR_OS_START_SYSERR + ERROR_NOT_SAME_DEVICE)
#define APR_STATUS_IS_ENOTEMPTY(s) ((s) == APR_ENOTEMPTY \
|| (s) == APR_OS_START_SYSERR + ERROR_DIR_NOT_EMPTY \
|| (s) == APR_OS_START_SYSERR + ERROR_ACCESS_DENIED)
}
{
Sorry, too tired to wrap this up for OS2... feel free to
fit the following into their best matches.
( ERROR_NO_SIGNAL_SENT, ESRCH ),
( SOCEALREADY, EALREADY ),
( SOCEDESTADDRREQ, EDESTADDRREQ ),
( SOCEMSGSIZE, EMSGSIZE ),
( SOCEPROTOTYPE, EPROTOTYPE ),
( SOCENOPROTOOPT, ENOPROTOOPT ),
( SOCEPROTONOSUPPORT, EPROTONOSUPPORT ),
( SOCESOCKTNOSUPPORT, ESOCKTNOSUPPORT ),
( SOCEOPNOTSUPP, EOPNOTSUPP ),
( SOCEPFNOSUPPORT, EPFNOSUPPORT ),
( SOCEAFNOSUPPORT, EAFNOSUPPORT ),
( SOCEADDRINUSE, EADDRINUSE ),
( SOCEADDRNOTAVAIL, EADDRNOTAVAIL ),
( SOCENETDOWN, ENETDOWN ),
( SOCENETRESET, ENETRESET ),
( SOCENOBUFS, ENOBUFS ),
( SOCEISCONN, EISCONN ),
( SOCENOTCONN, ENOTCONN ),
( SOCESHUTDOWN, ESHUTDOWN ),
( SOCETOOMANYREFS, ETOOMANYREFS ),
( SOCELOOP, ELOOP ),
( SOCEHOSTDOWN, EHOSTDOWN ),
( SOCENOTEMPTY, ENOTEMPTY ),
( SOCEPIPE, EPIPE )
}
//#elif defined(WIN32) && !defined(DOXYGEN) { !defined(OS2) }
{#define APR_FROM_OS_ERROR(e) (e == 0 ? APR_SUCCESS : e + APR_OS_START_SYSERR)
#define APR_TO_OS_ERROR(e) (e == 0 ? APR_SUCCESS : e - APR_OS_START_SYSERR)
#define apr_get_os_error() (APR_FROM_OS_ERROR(GetLastError()))
#define apr_set_os_error(e) (SetLastError(APR_TO_OS_ERROR(e)))}
{ A special case, only socket calls require this:
}
{#define apr_get_netos_error() (APR_FROM_OS_ERROR(WSAGetLastError()))
#define apr_set_netos_error(e) (WSASetLastError(APR_TO_OS_ERROR(e)))
#define APR_STATUS_IS_SUCCESS(s) ((s) == APR_SUCCESS \
|| (s) == APR_OS_START_SYSERR + ERROR_SUCCESS)
}
{ APR CANONICAL ERROR TESTS }
{#define APR_STATUS_IS_EACCES(s) ((s) == APR_EACCES \
|| (s) == APR_OS_START_SYSERR + ERROR_ACCESS_DENIED \
|| (s) == APR_OS_START_SYSERR + ERROR_CANNOT_MAKE \
|| (s) == APR_OS_START_SYSERR + ERROR_CURRENT_DIRECTORY \
|| (s) == APR_OS_START_SYSERR + ERROR_DRIVE_LOCKED \
|| (s) == APR_OS_START_SYSERR + ERROR_FAIL_I24 \
|| (s) == APR_OS_START_SYSERR + ERROR_LOCK_VIOLATION \
|| (s) == APR_OS_START_SYSERR + ERROR_LOCK_FAILED \
|| (s) == APR_OS_START_SYSERR + ERROR_NOT_LOCKED \
|| (s) == APR_OS_START_SYSERR + ERROR_NETWORK_ACCESS_DENIED \
|| (s) == APR_OS_START_SYSERR + ERROR_SHARING_VIOLATION)
#define APR_STATUS_IS_EEXIST(s) ((s) == APR_EEXIST \
|| (s) == APR_OS_START_SYSERR + ERROR_FILE_EXISTS \
|| (s) == APR_OS_START_SYSERR + ERROR_ALREADY_EXISTS)
#define APR_STATUS_IS_ENAMETOOLONG(s) ((s) == APR_ENAMETOOLONG \
|| (s) == APR_OS_START_SYSERR + ERROR_FILENAME_EXCED_RANGE \
|| (s) == APR_OS_START_SYSERR + WSAENAMETOOLONG)
#define APR_STATUS_IS_ENOENT(s) ((s) == APR_ENOENT \
|| (s) == APR_OS_START_SYSERR + ERROR_FILE_NOT_FOUND \
|| (s) == APR_OS_START_SYSERR + ERROR_PATH_NOT_FOUND \
|| (s) == APR_OS_START_SYSERR + ERROR_OPEN_FAILED \
|| (s) == APR_OS_START_SYSERR + ERROR_NO_MORE_FILES)
#define APR_STATUS_IS_ENOTDIR(s) ((s) == APR_ENOTDIR \
|| (s) == APR_OS_START_SYSERR + ERROR_PATH_NOT_FOUND \
|| (s) == APR_OS_START_SYSERR + ERROR_BAD_NETPATH \
|| (s) == APR_OS_START_SYSERR + ERROR_BAD_NET_NAME \
|| (s) == APR_OS_START_SYSERR + ERROR_BAD_PATHNAME \
|| (s) == APR_OS_START_SYSERR + ERROR_INVALID_DRIVE)
#define APR_STATUS_IS_ENOSPC(s) ((s) == APR_ENOSPC \
|| (s) == APR_OS_START_SYSERR + ERROR_DISK_FULL)
#define APR_STATUS_IS_ENOMEM(s) ((s) == APR_ENOMEM \
|| (s) == APR_OS_START_SYSERR + ERROR_ARENA_TRASHED \
|| (s) == APR_OS_START_SYSERR + ERROR_NOT_ENOUGH_MEMORY \
|| (s) == APR_OS_START_SYSERR + ERROR_INVALID_BLOCK \
|| (s) == APR_OS_START_SYSERR + ERROR_NOT_ENOUGH_QUOTA \
|| (s) == APR_OS_START_SYSERR + ERROR_OUTOFMEMORY)
#define APR_STATUS_IS_EMFILE(s) ((s) == APR_EMFILE \
|| (s) == APR_OS_START_SYSERR + ERROR_TOO_MANY_OPEN_FILES)
#define APR_STATUS_IS_ENFILE(s) ((s) == APR_ENFILE)
#define APR_STATUS_IS_EBADF(s) ((s) == APR_EBADF \
|| (s) == APR_OS_START_SYSERR + ERROR_INVALID_HANDLE \
|| (s) == APR_OS_START_SYSERR + ERROR_INVALID_TARGET_HANDLE)
#define APR_STATUS_IS_EINVAL(s) ((s) == APR_EINVAL \
|| (s) == APR_OS_START_SYSERR + ERROR_INVALID_ACCESS \
|| (s) == APR_OS_START_SYSERR + ERROR_INVALID_DATA \
|| (s) == APR_OS_START_SYSERR + ERROR_INVALID_FUNCTION \
|| (s) == APR_OS_START_SYSERR + ERROR_INVALID_HANDLE \
|| (s) == APR_OS_START_SYSERR + ERROR_INVALID_PARAMETER \
|| (s) == APR_OS_START_SYSERR + ERROR_NEGATIVE_SEEK)
#define APR_STATUS_IS_ESPIPE(s) ((s) == APR_ESPIPE \
|| (s) == APR_OS_START_SYSERR + ERROR_SEEK_ON_DEVICE \
|| (s) == APR_OS_START_SYSERR + ERROR_NEGATIVE_SEEK)
#define APR_STATUS_IS_EAGAIN(s) ((s) == APR_EAGAIN \
|| (s) == APR_OS_START_SYSERR + ERROR_NO_DATA \
|| (s) == APR_OS_START_SYSERR + ERROR_NO_PROC_SLOTS \
|| (s) == APR_OS_START_SYSERR + ERROR_NESTING_NOT_ALLOWED \
|| (s) == APR_OS_START_SYSERR + ERROR_MAX_THRDS_REACHED \
|| (s) == APR_OS_START_SYSERR + ERROR_LOCK_VIOLATION \
|| (s) == APR_OS_START_SYSERR + WSAEWOULDBLOCK)
#define APR_STATUS_IS_EINTR(s) ((s) == APR_EINTR \
|| (s) == APR_OS_START_SYSERR + WSAEINTR)
#define APR_STATUS_IS_ENOTSOCK(s) ((s) == APR_ENOTSOCK \
|| (s) == APR_OS_START_SYSERR + WSAENOTSOCK)
#define APR_STATUS_IS_ECONNREFUSED(s) ((s) == APR_ECONNREFUSED \
|| (s) == APR_OS_START_SYSERR + WSAECONNREFUSED)
#define APR_STATUS_IS_EINPROGRESS(s) ((s) == APR_EINPROGRESS \
|| (s) == APR_OS_START_SYSERR + WSAEINPROGRESS)
#define APR_STATUS_IS_ECONNABORTED(s) ((s) == APR_ECONNABORTED \
|| (s) == APR_OS_START_SYSERR + WSAECONNABORTED)
#define APR_STATUS_IS_ECONNRESET(s) ((s) == APR_ECONNRESET \
|| (s) == APR_OS_START_SYSERR + ERROR_NETNAME_DELETED \
|| (s) == APR_OS_START_SYSERR + WSAECONNRESET)
#define APR_STATUS_IS_ETIMEDOUT(s) ((s) == APR_ETIMEDOUT \
|| (s) == APR_OS_START_SYSERR + WSAETIMEDOUT \
|| (s) == APR_OS_START_SYSERR + WAIT_TIMEOUT)
#define APR_STATUS_IS_EHOSTUNREACH(s) ((s) == APR_EHOSTUNREACH \
|| (s) == APR_OS_START_SYSERR + WSAEHOSTUNREACH)
#define APR_STATUS_IS_ENETUNREACH(s) ((s) == APR_ENETUNREACH \
|| (s) == APR_OS_START_SYSERR + WSAENETUNREACH)
#define APR_STATUS_IS_EFTYPE(s) ((s) == APR_EFTYPE \
|| (s) == APR_OS_START_SYSERR + ERROR_EXE_MACHINE_TYPE_MISMATCH \
|| (s) == APR_OS_START_SYSERR + ERROR_INVALID_DLL \
|| (s) == APR_OS_START_SYSERR + ERROR_INVALID_MODULETYPE \
|| (s) == APR_OS_START_SYSERR + ERROR_BAD_EXE_FORMAT \
|| (s) == APR_OS_START_SYSERR + ERROR_INVALID_EXE_SIGNATURE \
|| (s) == APR_OS_START_SYSERR + ERROR_FILE_CORRUPT \
|| (s) == APR_OS_START_SYSERR + ERROR_BAD_FORMAT)
#define APR_STATUS_IS_EPIPE(s) ((s) == APR_EPIPE \
|| (s) == APR_OS_START_SYSERR + ERROR_BROKEN_PIPE)
#define APR_STATUS_IS_EXDEV(s) ((s) == APR_EXDEV \
|| (s) == APR_OS_START_SYSERR + ERROR_NOT_SAME_DEVICE)
#define APR_STATUS_IS_ENOTEMPTY(s) ((s) == APR_ENOTEMPTY \
|| (s) == APR_OS_START_SYSERR + ERROR_DIR_NOT_EMPTY)
}
//#elif defined(NETWARE) && !defined(DOXYGEN) { !defined(OS2) && !defined(WIN32) }
{
#define APR_FROM_OS_ERROR(e) (e == 0 ? APR_SUCCESS : e + APR_OS_START_SYSERR)
#define APR_TO_OS_ERROR(e) (e == 0 ? APR_SUCCESS : e - APR_OS_START_SYSERR)
#define apr_get_os_error() (errno)
#define apr_set_os_error(e) (errno = (e))
}
{ A special case, only socket calls require this: }
{#define apr_get_netos_error() (APR_FROM_OS_ERROR(WSAGetLastError()))
#define apr_set_netos_error(e) (WSASetLastError(APR_TO_OS_ERROR(e)))
#define APR_STATUS_IS_SUCCESS(s) ((s) == APR_SUCCESS)
}
{ APR CANONICAL ERROR TESTS }
{#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 \
|| (s) == EWOULDBLOCK \
|| (s) == APR_OS_START_SYSERR + WSAEWOULDBLOCK)
#define APR_STATUS_IS_EINTR(s) ((s) == APR_EINTR \
|| (s) == APR_OS_START_SYSERR + WSAEINTR)
#define APR_STATUS_IS_ENOTSOCK(s) ((s) == APR_ENOTSOCK \
|| (s) == APR_OS_START_SYSERR + WSAENOTSOCK)
#define APR_STATUS_IS_ECONNREFUSED(s) ((s) == APR_ECONNREFUSED \
|| (s) == APR_OS_START_SYSERR + WSAECONNREFUSED)
#define APR_STATUS_IS_EINPROGRESS(s) ((s) == APR_EINPROGRESS \
|| (s) == APR_OS_START_SYSERR + WSAEINPROGRESS)
#define APR_STATUS_IS_ECONNABORTED(s) ((s) == APR_ECONNABORTED \
|| (s) == APR_OS_START_SYSERR + WSAECONNABORTED)
#define APR_STATUS_IS_ECONNRESET(s) ((s) == APR_ECONNRESET \
|| (s) == APR_OS_START_SYSERR + WSAECONNRESET)
#define APR_STATUS_IS_ETIMEDOUT(s) ((s) == APR_ETIMEDOUT \
|| (s) == APR_OS_START_SYSERR + WSAETIMEDOUT \
|| (s) == APR_OS_START_SYSERR + WAIT_TIMEOUT)
#define APR_STATUS_IS_EHOSTUNREACH(s) ((s) == APR_EHOSTUNREACH \
|| (s) == APR_OS_START_SYSERR + WSAEHOSTUNREACH)
#define APR_STATUS_IS_ENETUNREACH(s) ((s) == APR_ENETUNREACH \
|| (s) == APR_OS_START_SYSERR + WSAENETUNREACH)
#define APR_STATUS_IS_ENETDOWN(s) ((s) == APR_OS_START_SYSERR + WSAENETDOWN)
#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) ((s) == APR_ENOTEMPTY)
}
//#else { !defined(NETWARE) && !defined(OS2) && !defined(WIN32) }
{
* os error codes are clib error codes
}
{#define APR_FROM_OS_ERROR(e) (e)
#define APR_TO_OS_ERROR(e) (e)
#define apr_get_os_error() (errno)
#define apr_set_os_error(e) (errno = (e))
}
{ A special case, only socket calls require this:
}
//#define apr_get_netos_error() (errno)
//#define apr_set_netos_error(e) (errno = (e))
{
* @addtogroup APR_STATUS_IS
}
{ no error }
//#define APR_STATUS_IS_SUCCESS(s) ((s) == APR_SUCCESS)
{ permission denied }
//#define APR_STATUS_IS_EACCES(s) ((s) == APR_EACCES)
{ file exists }
//#define APR_STATUS_IS_EEXIST(s) ((s) == APR_EEXIST)
{ path name is too long }
//#define APR_STATUS_IS_ENAMETOOLONG(s) ((s) == APR_ENAMETOOLONG)
{
* no such file or directory
* @remark
* EMVSCATLG can be returned by the automounter on z/OS for
* paths which do not exist.
}
{#ifdef EMVSCATLG
#define APR_STATUS_IS_ENOENT(s) ((s) == APR_ENOENT \
|| (s) == EMVSCATLG)
#else
#define APR_STATUS_IS_ENOENT(s) ((s) == APR_ENOENT)
#endif}
{ not a directory }
//#define APR_STATUS_IS_ENOTDIR(s) ((s) == APR_ENOTDIR)
{ no space left on device }
//#define APR_STATUS_IS_ENOSPC(s) ((s) == APR_ENOSPC)
{ not enough memory }
//#define APR_STATUS_IS_ENOMEM(s) ((s) == APR_ENOMEM)
{ too many open files }
//#define APR_STATUS_IS_EMFILE(s) ((s) == APR_EMFILE)
{ file table overflow }
//#define APR_STATUS_IS_ENFILE(s) ((s) == APR_ENFILE)
{ bad file # }
//#define APR_STATUS_IS_EBADF(s) ((s) == APR_EBADF)
{ invalid argument }
//#define APR_STATUS_IS_EINVAL(s) ((s) == APR_EINVAL)
{ illegal seek }
//#define APR_STATUS_IS_ESPIPE(s) ((s) == APR_ESPIPE)
{ operation would block }
{#if !defined(EWOULDBLOCK) || !defined(EAGAIN)
#define APR_STATUS_IS_EAGAIN(s) ((s) == APR_EAGAIN)
#elif (EWOULDBLOCK == EAGAIN)
#define APR_STATUS_IS_EAGAIN(s) ((s) == APR_EAGAIN)
#else
#define APR_STATUS_IS_EAGAIN(s) ((s) == APR_EAGAIN \
|| (s) == EWOULDBLOCK)
#endif
}
{ interrupted system call }
//#define APR_STATUS_IS_EINTR(s) ((s) == APR_EINTR)
{ socket operation on a non-socket }
//#define APR_STATUS_IS_ENOTSOCK(s) ((s) == APR_ENOTSOCK)
{ Connection Refused }
//#define APR_STATUS_IS_ECONNREFUSED(s) ((s) == APR_ECONNREFUSED)
{ operation now in progress }
//#define APR_STATUS_IS_EINPROGRESS(s) ((s) == APR_EINPROGRESS)
{
* Software caused connection abort
* @remark
* 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.
}
{#ifdef EPROTO
#define APR_STATUS_IS_ECONNABORTED(s) ((s) == APR_ECONNABORTED \
|| (s) == EPROTO)
#else
#define APR_STATUS_IS_ECONNABORTED(s) ((s) == APR_ECONNABORTED)
#endif
}
{ Connection Reset by peer }
//#define APR_STATUS_IS_ECONNRESET(s) ((s) == APR_ECONNRESET)
{ Operation timed out }
//#define APR_STATUS_IS_ETIMEDOUT(s) ((s) == APR_ETIMEDOUT)
{ no route to host }
//#define APR_STATUS_IS_EHOSTUNREACH(s) ((s) == APR_EHOSTUNREACH)
{ network is unreachable }
//#define APR_STATUS_IS_ENETUNREACH(s) ((s) == APR_ENETUNREACH)
{ inappropiate file type or format }
//#define APR_STATUS_IS_EFTYPE(s) ((s) == APR_EFTYPE)
{ broken pipe }
//#define APR_STATUS_IS_EPIPE(s) ((s) == APR_EPIPE)
{ cross device link }
//#define APR_STATUS_IS_EXDEV(s) ((s) == APR_EXDEV)
{ Directory Not Empty }
//#define APR_STATUS_IS_ENOTEMPTY(s) ((s) == APR_ENOTEMPTY || \
// (s) == APR_EEXIST)
//#endif { !defined(NETWARE) && !defined(OS2) && !defined(WIN32) }