Author: mturk
Date: Fri Aug 28 09:11:17 2009
New Revision: 808823
URL: http://svn.apache.org/viewvc?rev=808823&view=rev
Log:
Use the full canon error codes, not only the APR snapshot
Modified:
commons/sandbox/runtime/trunk/src/main/native/include/acr_error.h
commons/sandbox/runtime/trunk/src/main/native/os/unix/temps.c
commons/sandbox/runtime/trunk/src/main/native/shared/error.c
Modified: commons/sandbox/runtime/trunk/src/main/native/include/acr_error.h
URL:
http://svn.apache.org/viewvc/commons/sandbox/runtime/trunk/src/main/native/include/acr_error.h?rev=808823&r1=808822&r2=808823&view=diff
==============================================================================
--- commons/sandbox/runtime/trunk/src/main/native/include/acr_error.h (original)
+++ commons/sandbox/runtime/trunk/src/main/native/include/acr_error.h Fri Aug
28 09:11:17 2009
@@ -521,10 +521,7 @@
/** ACR private errors added to the std APR errors */
#define ACR_EISNULL (ACR_OS_START_ERROR + 100)
#define ACR_EINVALSIZ (ACR_OS_START_ERROR + 101)
-#define ACR_ERANGE (ACR_OS_START_ERROR + 102)
-#define ACR_ECLASSNOTFOUND (ACR_OS_START_ERROR + 103)
-#define ACR_EFAULT (ACR_OS_START_ERROR + 104)
-#define ACR_EILSEQ (ACR_OS_START_ERROR + 105)
+#define ACR_ECLASSNOTFOUND (ACR_OS_START_ERROR + 102)
/**
* @defgroup ACR_STATUS_IS Status Value Tests
@@ -662,8 +659,6 @@
#define ACR_ENOTIMPL (ACR_OS_START_STATUS + 23)
/** @see ACR_STATUS_IS_EMISMATCH */
#define ACR_EMISMATCH (ACR_OS_START_STATUS + 24)
-/** @see ACR_STATUS_IS_EBUSY */
-#define ACR_EBUSY (ACR_OS_START_STATUS + 25)
/** @} */
/**
@@ -820,196 +815,554 @@
* @{
*/
/* ACR CANONICAL ERROR VALUES */
-/** @see ACR_STATUS_IS_EACCES */
-#ifdef EACCES
-#define ACR_EACCES EACCES
+/** Operation not permitted */
+#ifndef EPERM
+#define ACR_EPERM (ACR_OS_START_CANONERR + 1)
+#else
+#define ACR_EPERM EPERM
+#endif
+/** No such file or directory */
+#ifndef ENOENT
+#define ACR_ENOENT (ACR_OS_START_CANONERR + 2)
#else
-#define ACR_EACCES (ACR_OS_START_CANONERR + 1)
+#define ACR_ENOENT ENOENT
#endif
-
-/** @see ACR_STATUS_IS_EEXIST */
-#ifdef EEXIST
-#define ACR_EEXIST EEXIST
+/** No such process */
+#ifndef ESRCH
+#define ACR_ESRCH (ACR_OS_START_CANONERR + 3)
+#else
+#define ACR_ESRCH ESRCH
+#endif
+/** Interrupted system call */
+#ifndef EINTR
+#define ACR_EINTR (ACR_OS_START_CANONERR + 4)
#else
-#define ACR_EEXIST (ACR_OS_START_CANONERR + 2)
+#define ACR_EINTR EINTR
#endif
-
-/** @see ACR_STATUS_IS_ENAMETOOLONG */
-#ifdef ENAMETOOLONG
-#define ACR_ENAMETOOLONG ENAMETOOLONG
+/** Input/output error */
+#ifndef EIO
+#define ACR_EIO (ACR_OS_START_CANONERR + 5)
#else
-#define ACR_ENAMETOOLONG (ACR_OS_START_CANONERR + 3)
+#define ACR_EIO EIO
#endif
-
-/** @see ACR_STATUS_IS_ENOENT */
-#ifdef ENOENT
-#define ACR_ENOENT ENOENT
+/** Device not configured */
+#ifndef ENXIO
+#define ACR_ENXIO (ACR_OS_START_CANONERR + 6)
#else
-#define ACR_ENOENT (ACR_OS_START_CANONERR + 4)
+#define ACR_ENXIO ENXIO
#endif
-
-/** @see ACR_STATUS_IS_ENOTDIR */
-#ifdef ENOTDIR
-#define ACR_ENOTDIR ENOTDIR
+/** Argument list too long */
+#ifndef E2BIG
+#define ACR_E2BIG (ACR_OS_START_CANONERR + 7)
#else
-#define ACR_ENOTDIR (ACR_OS_START_CANONERR + 5)
+#define ACR_E2BIG E2BIG
#endif
-
-/** @see ACR_STATUS_IS_ENOSPC */
-#ifdef ENOSPC
-#define ACR_ENOSPC ENOSPC
+/** Exec format error */
+#ifndef ENOEXEC
+#define ACR_ENOEXEC (ACR_OS_START_CANONERR + 8)
#else
-#define ACR_ENOSPC (ACR_OS_START_CANONERR + 6)
+#define ACR_ENOEXEC ENOEXEC
#endif
-
-/** @see ACR_STATUS_IS_ENOMEM */
-#ifdef ENOMEM
+/** Bad file descriptor */
+#ifndef EBADF
+#define ACR_EBADF (ACR_OS_START_CANONERR + 9)
+#else
+#define ACR_EBADF EBADF
+#endif
+/** No child processes */
+#ifndef ECHILD
+#define ACR_ECHILD (ACR_OS_START_CANONERR + 10)
+#else
+#define ACR_ECHILD ECHILD
+#endif
+/** Resource deadlock avoided */
+#ifndef EDEADLK
+#define ACR_EDEADLK (ACR_OS_START_CANONERR + 11)
+#else
+#define ACR_EDEADLK EDEADLK
+#endif
+/** Cannot allocate memory */
+#ifndef ENOMEM
+#define ACR_ENOMEM (ACR_OS_START_CANONERR + 12)
+#else
#define ACR_ENOMEM ENOMEM
+#endif
+/** Permission denied */
+#ifndef EACCES
+#define ACR_EACCES (ACR_OS_START_CANONERR + 13)
#else
-#define ACR_ENOMEM (ACR_OS_START_CANONERR + 7)
+#define ACR_EACCES EACCES
#endif
-
-/** @see ACR_STATUS_IS_EMFILE */
-#ifdef EMFILE
-#define ACR_EMFILE EMFILE
+/** Bad address */
+#ifndef EFAULT
+#define ACR_EFAULT (ACR_OS_START_CANONERR + 14)
#else
-#define ACR_EMFILE (ACR_OS_START_CANONERR + 8)
+#define ACR_EFAULT EFAULT
#endif
-
-/** @see ACR_STATUS_IS_ENFILE */
-#ifdef ENFILE
-#define ACR_ENFILE ENFILE
+/** Block device required */
+#ifndef ENOTBLK
+#define ACR_ENOTBLK (ACR_OS_START_CANONERR + 15)
#else
-#define ACR_ENFILE (ACR_OS_START_CANONERR + 9)
+#define ACR_ENOTBLK ENOTBLK
#endif
-
-/** @see ACR_STATUS_IS_EBADF */
-#ifdef EBADF
-#define ACR_EBADF EBADF
+/** Device busy */
+#ifndef EBUSY
+#define ACR_EBUSY (ACR_OS_START_CANONERR + 16)
#else
-#define ACR_EBADF (ACR_OS_START_CANONERR + 10)
+#define ACR_EBUSY EBUSY
#endif
-
-/** @see ACR_STATUS_IS_EINVAL */
-#ifdef EINVAL
+/** File exists */
+#ifndef EEXIST
+#define ACR_EEXIST (ACR_OS_START_CANONERR + 17)
+#else
+#define ACR_EEXIST EEXIST
+#endif
+/** Cross-device link */
+#ifndef EXDEV
+#define ACR_EXDEV (ACR_OS_START_CANONERR + 18)
+#else
+#define ACR_EXDEV EXDEV
+#endif
+/** Operation not supported by device */
+#ifndef ENODEV
+#define ACR_ENODEV (ACR_OS_START_CANONERR + 19)
+#else
+#define ACR_ENODEV ENODEV
+#endif
+/** Not a directory */
+#ifndef ENOTDIR
+#define ACR_ENOTDIR (ACR_OS_START_CANONERR + 20)
+#else
+#define ACR_ENOTDIR ENOTDIR
+#endif
+/** Is a directory */
+#ifndef EISDIR
+#define ACR_EISDIR (ACR_OS_START_CANONERR + 21)
+#else
+#define ACR_EISDIR EISDIR
+#endif
+/** Invalid argument */
+#ifndef EINVAL
+#define ACR_EINVAL (ACR_OS_START_CANONERR + 22)
+#else
#define ACR_EINVAL EINVAL
+#endif
+/** Too many open files in system */
+#ifndef ENFILE
+#define ACR_ENFILE (ACR_OS_START_CANONERR + 23)
#else
-#define ACR_EINVAL (ACR_OS_START_CANONERR + 11)
+#define ACR_ENFILE ENFILE
#endif
-
-/** @see ACR_STATUS_IS_ESPIPE */
-#ifdef ESPIPE
+/** Too many open files */
+#ifndef EMFILE
+#define ACR_EMFILE (ACR_OS_START_CANONERR + 24)
+#else
+#define ACR_EMFILE EMFILE
+#endif
+/** Inappropriate ioctl for device */
+#ifndef ENOTTY
+#define ACR_ENOTTY (ACR_OS_START_CANONERR + 25)
+#else
+#define ACR_ENOTTY ENOTTY
+#endif
+/** Text file busy */
+#ifndef ETXTBSY
+#define ACR_ETXTBSY (ACR_OS_START_CANONERR + 26)
+#else
+#define ACR_ETXTBSY ETXTBSY
+#endif
+/** File too large */
+#ifndef EFBIG
+#define ACR_EFBIG (ACR_OS_START_CANONERR + 27)
+#else
+#define ACR_EFBIG EFBIG
+#endif
+/** No space left on device */
+#ifndef ENOSPC
+#define ACR_ENOSPC (ACR_OS_START_CANONERR + 28)
+#else
+#define ACR_ENOSPC ENOSPC
+#endif
+/** Illegal seek */
+#ifndef ESPIPE
+#define ACR_ESPIPE (ACR_OS_START_CANONERR + 29)
+#else
#define ACR_ESPIPE ESPIPE
+#endif
+/** Read-only file system */
+#ifndef EROFS
+#define ACR_EROFS (ACR_OS_START_CANONERR + 30)
#else
-#define ACR_ESPIPE (ACR_OS_START_CANONERR + 12)
+#define ACR_EROFS EROFS
#endif
-
-/**
- * @see ACR_STATUS_IS_EAGAIN
- * @warning use ACR_STATUS_IS_EAGAIN instead of just testing this value
- */
-#ifdef EAGAIN
-#define ACR_EAGAIN EAGAIN
-#elif defined(EWOULDBLOCK)
-#define ACR_EAGAIN EWOULDBLOCK
+/** Too many links */
+#ifndef EMLINK
+#define ACR_EMLINK (ACR_OS_START_CANONERR + 31)
#else
-#define ACR_EAGAIN (ACR_OS_START_CANONERR + 13)
+#define ACR_EMLINK EMLINK
#endif
-
-/** @see ACR_STATUS_IS_EINTR */
-#ifdef EINTR
-#define ACR_EINTR EINTR
+/** Broken pipe */
+#ifndef EPIPE
+#define ACR_EPIPE (ACR_OS_START_CANONERR + 32)
#else
-#define ACR_EINTR (ACR_OS_START_CANONERR + 14)
+#define ACR_EPIPE EPIPE
#endif
-
-/** @see ACR_STATUS_IS_ENOTSOCK */
-#ifdef ENOTSOCK
-#define ACR_ENOTSOCK ENOTSOCK
+/** Numerical argument out of domain */
+#ifndef EDOM
+#define ACR_EDOM (ACR_OS_START_CANONERR + 33)
#else
-#define ACR_ENOTSOCK (ACR_OS_START_CANONERR + 15)
+#define ACR_EDOM EDOM
#endif
-
-/** @see ACR_STATUS_IS_ECONNREFUSED */
-#ifdef ECONNREFUSED
-#define ACR_ECONNREFUSED ECONNREFUSED
+/** Result too large */
+#ifndef ERANGE
+#define ACR_ERANGE (ACR_OS_START_CANONERR + 34)
#else
-#define ACR_ECONNREFUSED (ACR_OS_START_CANONERR + 16)
+#define ACR_ERANGE ERANGE
#endif
-
-/** @see ACR_STATUS_IS_EINPROGRESS */
-#ifdef EINPROGRESS
+/** Resource temporarily unavailable */
+#ifndef EAGAIN
+#define ACR_EAGAIN (ACR_OS_START_CANONERR + 35)
+#else
+#define ACR_EAGAIN EAGAIN
+#endif
+/** Operation would block */
+#ifndef EWOULDBLOCK
+#define ACR_EWOULDBLOCK (ACR_OS_START_CANONERR + 35)
+#else
+#define ACR_EWOULDBLOCK EWOULDBLOCK
+#endif
+/** Operation now in progress */
+#ifndef EINPROGRESS
+#define ACR_EINPROGRESS (ACR_OS_START_CANONERR + 36)
+#else
#define ACR_EINPROGRESS EINPROGRESS
+#endif
+/** Operation already in progress */
+#ifndef EALREADY
+#define ACR_EALREADY (ACR_OS_START_CANONERR + 37)
+#else
+#define ACR_EALREADY EALREADY
+#endif
+/** Socket operation on non-socket */
+#ifndef ENOTSOCK
+#define ACR_ENOTSOCK (ACR_OS_START_CANONERR + 38)
#else
-#define ACR_EINPROGRESS (ACR_OS_START_CANONERR + 17)
+#define ACR_ENOTSOCK ENOTSOCK
#endif
-
-/**
- * @see ACR_STATUS_IS_ECONNABORTED
- * @warning use ACR_STATUS_IS_ECONNABORTED instead of just testing this value
- */
-
-#ifdef ECONNABORTED
-#define ACR_ECONNABORTED ECONNABORTED
+/** Destination address required */
+#ifndef EDESTADDRREQ
+#define ACR_EDESTADDRREQ (ACR_OS_START_CANONERR + 39)
#else
-#define ACR_ECONNABORTED (ACR_OS_START_CANONERR + 18)
+#define ACR_EDESTADDRREQ EDESTADDRREQ
#endif
-
-/** @see ACR_STATUS_IS_ECONNRESET */
-#ifdef ECONNRESET
+/** Message too long */
+#ifndef EMSGSIZE
+#define ACR_EMSGSIZE (ACR_OS_START_CANONERR + 40)
+#else
+#define ACR_EMSGSIZE EMSGSIZE
+#endif
+/** Protocol wrong type for socket */
+#ifndef EPROTOTYPE
+#define ACR_EPROTOTYPE (ACR_OS_START_CANONERR + 41)
+#else
+#define ACR_EPROTOTYPE EPROTOTYPE
+#endif
+/** Protocol not available */
+#ifndef ENOPROTOOPT
+#define ACR_ENOPROTOOPT (ACR_OS_START_CANONERR + 42)
+#else
+#define ACR_ENOPROTOOPT ENOPROTOOPT
+#endif
+/** Protocol not supported */
+#ifndef EPROTONOSUPPORT
+#define ACR_EPROTONOSUPPORT (ACR_OS_START_CANONERR + 43)
+#else
+#define ACR_EPROTONOSUPPORT EPROTONOSUPPORT
+#endif
+/** Socket type not supported */
+#ifndef ESOCKTNOSUPPORT
+#define ACR_ESOCKTNOSUPPORT (ACR_OS_START_CANONERR + 44)
+#else
+#define ACR_ESOCKTNOSUPPORT ESOCKTNOSUPPORT
+#endif
+/** Operation not supported */
+#ifndef EOPNOTSUPP
+#define ACR_EOPNOTSUPP (ACR_OS_START_CANONERR + 45)
+#else
+#define ACR_EOPNOTSUPP EOPNOTSUPP
+#endif
+/** Protocol family not supported */
+#ifndef EPFNOSUPPORT
+#define ACR_EPFNOSUPPORT (ACR_OS_START_CANONERR + 46)
+#else
+#define ACR_EPFNOSUPPORT EPFNOSUPPORT
+#endif
+/** Address family not supported by protocol family */
+#ifndef EAFNOSUPPORT
+#define ACR_EAFNOSUPPORT (ACR_OS_START_CANONERR + 47)
+#else
+#define ACR_EAFNOSUPPORT EAFNOSUPPORT
+#endif
+/** Address already in use */
+#ifndef EADDRINUSE
+#define ACR_EADDRINUSE (ACR_OS_START_CANONERR + 48)
+#else
+#define ACR_EADDRINUSE EADDRINUSE
+#endif
+/** Can't assign requested address */
+#ifndef EADDRNOTAVAIL
+#define ACR_EADDRNOTAVAIL (ACR_OS_START_CANONERR + 49)
+#else
+#define ACR_EADDRNOTAVAIL EADDRNOTAVAIL
+#endif
+/** Network is down */
+#ifndef ENETDOWN
+#define ACR_ENETDOWN (ACR_OS_START_CANONERR + 50)
+#else
+#define ACR_ENETDOWN ENETDOWN
+#endif
+/** Network is unreachable */
+#ifndef ENETUNREACH
+#define ACR_ENETUNREACH (ACR_OS_START_CANONERR + 51)
+#else
+#define ACR_ENETUNREACH ENETUNREACH
+#endif
+/** Network dropped connection on reset */
+#ifndef ENETRESET
+#define ACR_ENETRESET (ACR_OS_START_CANONERR + 52)
+#else
+#define ACR_ENETRESET ENETRESET
+#endif
+/** Software caused connection abort */
+#ifndef ECONNABORTED
+#define ACR_ECONNABORTED (ACR_OS_START_CANONERR + 53)
+#else
+#define ACR_ECONNABORTED ECONNABORTED
+#endif
+/** Connection reset by peer */
+#ifndef ECONNRESET
+#define ACR_ECONNRESET (ACR_OS_START_CANONERR + 54)
+#else
#define ACR_ECONNRESET ECONNRESET
+#endif
+/** No buffer space available */
+#ifndef ENOBUFS
+#define ACR_ENOBUFS (ACR_OS_START_CANONERR + 55)
#else
-#define ACR_ECONNRESET (ACR_OS_START_CANONERR + 19)
+#define ACR_ENOBUFS ENOBUFS
#endif
-
-/** @see ACR_STATUS_IS_EHOSTUNREACH */
-#ifdef EHOSTUNREACH
+/** Socket is already connected */
+#ifndef EISCONN
+#define ACR_EISCONN (ACR_OS_START_CANONERR + 56)
+#else
+#define ACR_EISCONN EISCONN
+#endif
+/** Socket is not connected */
+#ifndef ENOTCONN
+#define ACR_ENOTCONN (ACR_OS_START_CANONERR + 57)
+#else
+#define ACR_ENOTCONN ENOTCONN
+#endif
+/** Can't send after socket shutdown */
+#ifndef ESHUTDOWN
+#define ACR_ESHUTDOWN (ACR_OS_START_CANONERR + 58)
+#else
+#define ACR_ESHUTDOWN ESHUTDOWN
+#endif
+/** Too many references: can't splice */
+#ifndef ETOOMANYREFS
+#define ACR_ETOOMANYREFS (ACR_OS_START_CANONERR + 59)
+#else
+#define ACR_ETOOMANYREFS ETOOMANYREFS
+#endif
+/** Operation timed out */
+#ifndef ETIMEDOUT
+#define ACR_ETIMEDOUT (ACR_OS_START_CANONERR + 60)
+#else
+#define ACR_ETIMEDOUT ETIMEDOUT
+#endif
+/** Connection refused */
+#ifndef ECONNREFUSED
+#define ACR_ECONNREFUSED (ACR_OS_START_CANONERR + 61)
+#else
+#define ACR_ECONNREFUSED ECONNREFUSED
+#endif
+/** Too many levels of symbolic links */
+#ifndef ELOOP
+#define ACR_ELOOP (ACR_OS_START_CANONERR + 62)
+#else
+#define ACR_ELOOP ELOOP
+#endif
+/** File name too long */
+#ifndef ENAMETOOLONG
+#define ACR_ENAMETOOLONG (ACR_OS_START_CANONERR + 63)
+#else
+#define ACR_ENAMETOOLONG ENAMETOOLONG
+#endif
+/** Host is down */
+#ifndef EHOSTDOWN
+#define ACR_EHOSTDOWN (ACR_OS_START_CANONERR + 64)
+#else
+#define ACR_EHOSTDOWN EHOSTDOWN
+#endif
+/** No route to host */
+#ifndef EHOSTUNREACH
+#define ACR_EHOSTUNREACH (ACR_OS_START_CANONERR + 65)
+#else
#define ACR_EHOSTUNREACH EHOSTUNREACH
+#endif
+/** Directory not empty */
+#ifndef ENOTEMPTY
+#define ACR_ENOTEMPTY (ACR_OS_START_CANONERR + 66)
#else
-#define ACR_EHOSTUNREACH (ACR_OS_START_CANONERR + 21)
+#define ACR_ENOTEMPTY ENOTEMPTY
#endif
-
-/** @see ACR_STATUS_IS_ENETUNREACH */
-#ifdef ENETUNREACH
-#define ACR_ENETUNREACH ENETUNREACH
+/** Too many processes */
+#ifndef EPROCLIM
+#define ACR_EPROCLIM (ACR_OS_START_CANONERR + 67)
#else
-#define ACR_ENETUNREACH (ACR_OS_START_CANONERR + 22)
+#define ACR_EPROCLIM EPROCLIM
#endif
-
-/** @see ACR_STATUS_IS_EFTYPE */
-#ifdef EFTYPE
+/** Too many users */
+#ifndef EUSERS
+#define ACR_EUSERS (ACR_OS_START_CANONERR + 68)
+#else
+#define ACR_EUSERS EUSERS
+#endif
+/** Disk quota exceeded */
+#ifndef EDQUOT
+#define ACR_EDQUOT (ACR_OS_START_CANONERR + 69)
+#else
+#define ACR_EDQUOT EDQUOT
+#endif
+/** Stale NFS file handle */
+#ifndef ESTALE
+#define ACR_ESTALE (ACR_OS_START_CANONERR + 70)
+#else
+#define ACR_ESTALE ESTALE
+#endif
+/** Too many levels of remote in path */
+#ifndef EREMOTE
+#define ACR_EREMOTE (ACR_OS_START_CANONERR + 71)
+#else
+#define ACR_EREMOTE EREMOTE
+#endif
+/** RPC struct is bad */
+#ifndef EBADRPC
+#define ACR_EBADRPC (ACR_OS_START_CANONERR + 72)
+#else
+#define ACR_EBADRPC EBADRPC
+#endif
+/** RPC version wrong */
+#ifndef ERPCMISMATCH
+#define ACR_ERPCMISMATCH (ACR_OS_START_CANONERR + 73)
+#else
+#define ACR_ERPCMISMATCH ERPCMISMATCH
+#endif
+/** RPC prog. not avail */
+#ifndef EPROGUNAVAIL
+#define ACR_EPROGUNAVAIL (ACR_OS_START_CANONERR + 74)
+#else
+#define ACR_EPROGUNAVAIL EPROGUNAVAIL
+#endif
+/** Program version wrong */
+#ifndef EPROGMISMATCH
+#define ACR_EPROGMISMATCH (ACR_OS_START_CANONERR + 75)
+#else
+#define ACR_EPROGMISMATCH EPROGMISMATCH
+#endif
+/** Bad procedure for program */
+#ifndef EPROCUNAVAIL
+#define ACR_EPROCUNAVAIL (ACR_OS_START_CANONERR + 76)
+#else
+#define ACR_EPROCUNAVAIL EPROCUNAVAIL
+#endif
+/** No locks available */
+#ifndef ENOLCK
+#define ACR_ENOLCK (ACR_OS_START_CANONERR + 77)
+#else
+#define ACR_ENOLCK ENOLCK
+#endif
+/** Function not implemented */
+#ifndef ENOSYS
+#define ACR_ENOSYS (ACR_OS_START_CANONERR + 78)
+#else
+#define ACR_ENOSYS ENOSYS
+#endif
+/** Inappropriate file type or format */
+#ifndef EFTYPE
+#define ACR_EFTYPE (ACR_OS_START_CANONERR + 79)
+#else
#define ACR_EFTYPE EFTYPE
+#endif
+/** Authentication error */
+#ifndef EAUTH
+#define ACR_EAUTH (ACR_OS_START_CANONERR + 80)
#else
-#define ACR_EFTYPE (ACR_OS_START_CANONERR + 23)
+#define ACR_EAUTH EAUTH
#endif
-
-/** @see ACR_STATUS_IS_EPIPE */
-#ifdef EPIPE
-#define ACR_EPIPE EPIPE
+/** Need authenticator */
+#ifndef ENEEDAUTH
+#define ACR_ENEEDAUTH (ACR_OS_START_CANONERR + 81)
#else
-#define ACR_EPIPE (ACR_OS_START_CANONERR + 24)
+#define ACR_ENEEDAUTH ENEEDAUTH
#endif
-
-/** @see ACR_STATUS_IS_EXDEV */
-#ifdef EXDEV
-#define ACR_EXDEV EXDEV
+/** IPsec processing failure */
+#ifndef EIPSEC
+#define ACR_EIPSEC (ACR_OS_START_CANONERR + 82)
#else
-#define ACR_EXDEV (ACR_OS_START_CANONERR + 25)
+#define ACR_EIPSEC EIPSEC
#endif
-
-/** @see ACR_STATUS_IS_ENOTEMPTY */
-#ifdef ENOTEMPTY
-#define ACR_ENOTEMPTY ENOTEMPTY
+/** Attribute not found */
+#ifndef ENOATTR
+#define ACR_ENOATTR (ACR_OS_START_CANONERR + 83)
#else
-#define ACR_ENOTEMPTY (ACR_OS_START_CANONERR + 26)
+#define ACR_ENOATTR ENOATTR
#endif
-
-/** @see ACR_STATUS_IS_EAFNOSUPPORT */
-#ifdef EAFNOSUPPORT
-#define ACR_EAFNOSUPPORT EAFNOSUPPORT
+/** Illegal byte sequence */
+#ifndef EILSEQ
+#define ACR_EILSEQ (ACR_OS_START_CANONERR + 84)
+#else
+#define ACR_EILSEQ EILSEQ
+#endif
+/** No medium found */
+#ifndef ENOMEDIUM
+#define ACR_ENOMEDIUM (ACR_OS_START_CANONERR + 85)
#else
-#define ACR_EAFNOSUPPORT (ACR_OS_START_CANONERR + 27)
+#define ACR_ENOMEDIUM ENOMEDIUM
#endif
+/** Wrong Medium Type */
+#ifndef EMEDIUMTYPE
+#define ACR_EMEDIUMTYPE (ACR_OS_START_CANONERR + 86)
+#else
+#define ACR_EMEDIUMTYPE EMEDIUMTYPE
+#endif
+/** Conversion overflow */
+#ifndef EOVERFLOW
+#define ACR_EOVERFLOW (ACR_OS_START_CANONERR + 87)
+#else
+#define ACR_EOVERFLOW EOVERFLOW
+#endif
+/** Operation canceled */
+#ifndef ECANCELED
+#define ACR_ECANCELED (ACR_OS_START_CANONERR + 88)
+#else
+#define ACR_ECANCELED ECANCELED
+#endif
+/** Identifier removed */
+#ifndef EIDRM
+#define ACR_EIDRM (ACR_OS_START_CANONERR + 89)
+#else
+#define ACR_EIDRM EIDRM
+#endif
+/** No message of desired type */
+#ifndef ENOMSG
+#define ACR_ENOMSG (ACR_OS_START_CANONERR + 90)
+#else
+#define ACR_ENOMSG ENOMSG
+#endif
+
+#define ACR_OS_LAST_CANONERR (ACR_OS_START_CANONERR + 91)
/** @} */
Modified: commons/sandbox/runtime/trunk/src/main/native/os/unix/temps.c
URL:
http://svn.apache.org/viewvc/commons/sandbox/runtime/trunk/src/main/native/os/unix/temps.c?rev=808823&r1=808822&r2=808823&view=diff
==============================================================================
--- commons/sandbox/runtime/trunk/src/main/native/os/unix/temps.c (original)
+++ commons/sandbox/runtime/trunk/src/main/native/os/unix/temps.c Fri Aug 28
09:11:17 2009
@@ -84,30 +84,30 @@
/* Set close on exec flag */
int flags;
if ((flags = fcntl(fd, F_GETFD)) < 0) {
- ACR_THROW_IO_ERRNO();
- return -1;
+ goto cleanup;
}
flags |= FD_CLOEXEC;
if (fcntl(fd, F_SETFD, flags) < 0) {
- ACR_THROW_IO_ERRNO();
- return -1;
+ goto cleanup;
}
}
else
unlink(name);
fp = ACR_Calloc(_E, THROW_NMARK, sizeof(acr_file_t));
if (!fp) {
- rc = ACR_GET_OS_ERROR();
- if (preserve)
- unlink(name);
- close(fd);
- ACR_THROW_IO_IF_ERR(rc);
- return -1;
+ goto cleanup;
}
fp->fd = fd;
fp->name = ACR_StrdupA(_E, THROW_NMARK, name);
rc = acr_ioh_open(fp, ACR_DT_FILE, 0, tmp_file_cleanup);
return rc;
+
+cleanup:
+ rc = ACR_GET_OS_ERROR();
+ unlink(name);
+ close(fd);
+ ACR_THROW_IO_IF_ERR(rc);
+ return -1;
}
ACR_DECLARE(char *) ACR_TempDirMake(JNIEnv *_E, const char *tmpath,
@@ -116,14 +116,19 @@
int fd;
char name[PATH_MAX] = "";
- for (;;) {
+ for (;;) {
if (tmpath) {
strlcpy(name, tmpath, PATH_MAX);
strlcat(name, "/", PATH_MAX);
}
strlcat(name, prefix, PATH_MAX);
- strlcat(name, "XXXXXX", PATH_MAX);
-
+ if (strlcat(name, "XXXXXX", PATH_MAX) >= PATH_MAX) {
+ /* Truncation occurred. We dont have enough space
+ * to create temp file template
+ */
+ ACR_THROW_IO_IF_ERR(ACR_E2BIG);
+ return -1;
+ }
fd = mkstemp(name);
if (fd < 0) {
ACR_THROW_IO_ERRNO();
@@ -137,7 +142,7 @@
if (mkdir(name, 0700)) {
if (errno != EEXIST) {
ACR_THROW_IO_ERRNO();
- return NULL;
+ return NULL;
}
}
else
Modified: commons/sandbox/runtime/trunk/src/main/native/shared/error.c
URL:
http://svn.apache.org/viewvc/commons/sandbox/runtime/trunk/src/main/native/shared/error.c?rev=808823&r1=808822&r2=808823&view=diff
==============================================================================
--- commons/sandbox/runtime/trunk/src/main/native/shared/error.c (original)
+++ commons/sandbox/runtime/trunk/src/main/native/shared/error.c Fri Aug 28
09:11:17 2009
@@ -145,6 +145,120 @@
}
}
+static const char *const _canon_errlist[] = {
+ "Undefined error: 0", /* 0 - ENOERROR */
+ "Operation not permitted", /* 1 - EPERM */
+ "No such file or directory", /* 2 - ENOENT */
+ "No such process", /* 3 - ESRCH */
+ "Interrupted system call", /* 4 - EINTR */
+ "Input/output error", /* 5 - EIO */
+ "Device not configured", /* 6 - ENXIO */
+ "Argument list too long", /* 7 - E2BIG */
+ "Exec format error", /* 8 - ENOEXEC */
+ "Bad file descriptor", /* 9 - EBADF */
+ "No child processes", /* 10 - ECHILD */
+ "Resource deadlock avoided", /* 11 - EDEADLK */
+ "Cannot allocate memory", /* 12 - ENOMEM */
+ "Permission denied", /* 13 - EACCES */
+ "Bad address", /* 14 - EFAULT */
+ "Block device required", /* 15 - ENOTBLK */
+ "Device busy", /* 16 - EBUSY */
+ "File exists", /* 17 - EEXIST */
+ "Cross-device link", /* 18 - EXDEV */
+ "Operation not supported by device", /* 19 - ENODEV */
+ "Not a directory", /* 20 - ENOTDIR */
+ "Is a directory", /* 21 - EISDIR */
+ "Invalid argument", /* 22 - EINVAL */
+ "Too many open files in system", /* 23 - ENFILE */
+ "Too many open files", /* 24 - EMFILE */
+ "Inappropriate ioctl for device", /* 25 - ENOTTY */
+ "Text file busy", /* 26 - ETXTBSY */
+ "File too large", /* 27 - EFBIG */
+ "No space left on device", /* 28 - ENOSPC */
+ "Illegal seek", /* 29 - ESPIPE */
+ "Read-only file system", /* 30 - EROFS */
+ "Too many links", /* 31 - EMLINK */
+ "Broken pipe", /* 32 - EPIPE */
+
+ /* math software */
+ "Numerical argument out of domain", /* 33 - EDOM */
+ "Result too large", /* 34 - ERANGE */
+
+ /* non-blocking and interrupt i/o */
+ "Resource temporarily unavailable", /* 35 - EAGAIN */
+ /* 35 - EWOULDBLOCK */
+ "Operation now in progress", /* 36 - EINPROGRESS */
+ "Operation already in progress", /* 37 - EALREADY */
+
+ /* ipc/network software -- argument errors */
+ "Socket operation on non-socket", /* 38 - ENOTSOCK */
+ "Destination address required", /* 39 - EDESTADDRREQ */
+ "Message too long", /* 40 - EMSGSIZE */
+ "Protocol wrong type for socket", /* 41 - EPROTOTYPE */
+ "Protocol not available", /* 42 - ENOPROTOOPT */
+ "Protocol not supported", /* 43 - EPROTONOSUPPORT */
+ "Socket type not supported", /* 44 - ESOCKTNOSUPPORT */
+ "Operation not supported", /* 45 - EOPNOTSUPP */
+ "Protocol family not supported", /* 46 - EPFNOSUPPORT */
+ /* 47 - EAFNOSUPPORT */
+ "Address family not supported by protocol family",
+ "Address already in use", /* 48 - EADDRINUSE */
+ "Can't assign requested address", /* 49 - EADDRNOTAVAIL */
+
+ /* ipc/network software -- operational errors */
+ "Network is down", /* 50 - ENETDOWN */
+ "Network is unreachable", /* 51 - ENETUNREACH */
+ "Network dropped connection on reset", /* 52 - ENETRESET */
+ "Software caused connection abort", /* 53 - ECONNABORTED */
+ "Connection reset by peer", /* 54 - ECONNRESET */
+ "No buffer space available", /* 55 - ENOBUFS */
+ "Socket is already connected", /* 56 - EISCONN */
+ "Socket is not connected", /* 57 - ENOTCONN */
+ "Can't send after socket shutdown", /* 58 - ESHUTDOWN */
+ "Too many references: can't splice", /* 59 - ETOOMANYREFS */
+ "Operation timed out", /* 60 - ETIMEDOUT */
+ "Connection refused", /* 61 - ECONNREFUSED */
+
+ "Too many levels of symbolic links", /* 62 - ELOOP */
+ "File name too long", /* 63 - ENAMETOOLONG */
+
+ /* should be rearranged */
+ "Host is down", /* 64 - EHOSTDOWN */
+ "No route to host", /* 65 - EHOSTUNREACH */
+ "Directory not empty", /* 66 - ENOTEMPTY */
+
+ /* quotas & mush */
+ "Too many processes", /* 67 - EPROCLIM */
+ "Too many users", /* 68 - EUSERS */
+ "Disk quota exceeded", /* 69 - EDQUOT */
+
+ /* Network File System */
+ "Stale NFS file handle", /* 70 - ESTALE */
+ "Too many levels of remote in path", /* 71 - EREMOTE */
+ "RPC struct is bad", /* 72 - EBADRPC */
+ "RPC version wrong", /* 73 - ERPCMISMATCH */
+ "RPC prog. not avail", /* 74 - EPROGUNAVAIL */
+ "Program version wrong", /* 75 - EPROGMISMATCH */
+ "Bad procedure for program", /* 76 - EPROCUNAVAIL */
+
+ "No locks available", /* 77 - ENOLCK */
+ "Function not implemented", /* 78 - ENOSYS */
+ "Inappropriate file type or format", /* 79 - EFTYPE */
+ "Authentication error", /* 80 - EAUTH */
+ "Need authenticator", /* 81 - ENEEDAUTH */
+ "IPsec processing failure", /* 82 - EIPSEC */
+ "Attribute not found", /* 83 - ENOATTR */
+ "Illegal byte sequence", /* 84 - EILSEQ */
+ "No medium found", /* 85 - ENOMEDIUM */
+ "Wrong medium type", /* 86 - EMEDIUMTYPE */
+ /* 87 - EOVERFLOW */
+ "Value too large to be stored in data type",
+ "Operation canceled", /* 88 - ECANCELED */
+ "Identifier removed", /* 89 - EIDRM */
+ "No message of desired type", /* 90 - ENOMSG */
+ NULL
+};
+
/*
* stuffbuffer - like ACR_CopyStrn() but returns the address of the
* dest buffer instead of the address of the terminating '\0'
@@ -157,14 +271,11 @@
static char *stuffunknown(char *buf, acr_size_t bufsize, int statcode)
{
- switch (statcode) {
- case ACR_EFTYPE:
- strlcpy(buf, "Inappropriate file type or format", bufsize);
- break;
- default:
- snprintf(buf, bufsize, "Unrecognized ACR error code %d", statcode);
- break;
+ if (statcode > ACR_OS_START_CANONERR && statcode < ACR_OS_LAST_CANONERR) {
+ strlcpy(buf,_canon_errlist[statcode - ACR_OS_START_CANONERR], bufsize);
}
+ else
+ snprintf(buf, bufsize, "Unrecognized ACR error code %d", statcode);
return buf;
}
@@ -269,14 +380,8 @@
return "The given argument is null";
case ACR_EINVALSIZ:
return "The given argument size is invalid";
- case ACR_ERANGE:
- return "The given argument is out of range";
case ACR_ECLASSNOTFOUND:
return "The specified Java Class was not found";
- case ACR_EFAULT:
- return "Bad address";
- case ACR_EILSEQ:
- return "Illegal byte sequence";
default:
return "Error string not specified yet";
}
@@ -546,6 +651,7 @@
i[24] = ACR_EXDEV;
i[25] = ACR_ENOTEMPTY;
i[26] = ACR_EAFNOSUPPORT;
+ i[27] = ACR_E2BIG;
(*_E)->SetIntArrayRegion(_E, ra, 0, 32, &i[0]);
}