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]);
 }


Reply via email to