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