Annotation of embedaddon/libiconv/srclib/strerror-override.c, revision 1.1

1.1     ! misho       1: /* strerror-override.c --- POSIX compatible system error routine
        !             2: 
        !             3:    Copyright (C) 2010-2011 Free Software Foundation, Inc.
        !             4: 
        !             5:    This program is free software: you can redistribute it and/or modify
        !             6:    it under the terms of the GNU General Public License as published by
        !             7:    the Free Software Foundation; either version 3 of the License, or
        !             8:    (at your option) any later version.
        !             9: 
        !            10:    This program is distributed in the hope that it will be useful,
        !            11:    but WITHOUT ANY WARRANTY; without even the implied warranty of
        !            12:    MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
        !            13:    GNU General Public License for more details.
        !            14: 
        !            15:    You should have received a copy of the GNU General Public License
        !            16:    along with this program.  If not, see <http://www.gnu.org/licenses/>.  */
        !            17: 
        !            18: /* Written by Bruno Haible <bruno@clisp.org>, 2010.  */
        !            19: 
        !            20: #include <config.h>
        !            21: 
        !            22: #include "strerror-override.h"
        !            23: 
        !            24: #include <errno.h>
        !            25: 
        !            26: #if GNULIB_defined_ESOCK /* native Windows platforms */
        !            27: # if HAVE_WINSOCK2_H
        !            28: #  include <winsock2.h>
        !            29: # endif
        !            30: #endif
        !            31: 
        !            32: /* If ERRNUM maps to an errno value defined by gnulib, return a string
        !            33:    describing the error.  Otherwise return NULL.  */
        !            34: const char *
        !            35: strerror_override (int errnum)
        !            36: {
        !            37:   /* These error messages are taken from glibc/sysdeps/gnu/errlist.c.  */
        !            38:   switch (errnum)
        !            39:     {
        !            40: #if REPLACE_STRERROR_0
        !            41:     case 0:
        !            42:       return "Success";
        !            43: #endif
        !            44: 
        !            45: #if GNULIB_defined_ETXTBSY
        !            46:     case ETXTBSY:
        !            47:       return "Text file busy";
        !            48: #endif
        !            49: 
        !            50: #if GNULIB_defined_ESOCK /* native Windows platforms */
        !            51:       /* EWOULDBLOCK is the same as EAGAIN.  */
        !            52:     case EINPROGRESS:
        !            53:       return "Operation now in progress";
        !            54:     case EALREADY:
        !            55:       return "Operation already in progress";
        !            56:     case ENOTSOCK:
        !            57:       return "Socket operation on non-socket";
        !            58:     case EDESTADDRREQ:
        !            59:       return "Destination address required";
        !            60:     case EMSGSIZE:
        !            61:       return "Message too long";
        !            62:     case EPROTOTYPE:
        !            63:       return "Protocol wrong type for socket";
        !            64:     case ENOPROTOOPT:
        !            65:       return "Protocol not available";
        !            66:     case EPROTONOSUPPORT:
        !            67:       return "Protocol not supported";
        !            68:     case ESOCKTNOSUPPORT:
        !            69:       return "Socket type not supported";
        !            70:     case EOPNOTSUPP:
        !            71:       return "Operation not supported";
        !            72:     case EPFNOSUPPORT:
        !            73:       return "Protocol family not supported";
        !            74:     case EAFNOSUPPORT:
        !            75:       return "Address family not supported by protocol";
        !            76:     case EADDRINUSE:
        !            77:       return "Address already in use";
        !            78:     case EADDRNOTAVAIL:
        !            79:       return "Cannot assign requested address";
        !            80:     case ENETDOWN:
        !            81:       return "Network is down";
        !            82:     case ENETUNREACH:
        !            83:       return "Network is unreachable";
        !            84:     case ENETRESET:
        !            85:       return "Network dropped connection on reset";
        !            86:     case ECONNABORTED:
        !            87:       return "Software caused connection abort";
        !            88:     case ECONNRESET:
        !            89:       return "Connection reset by peer";
        !            90:     case ENOBUFS:
        !            91:       return "No buffer space available";
        !            92:     case EISCONN:
        !            93:       return "Transport endpoint is already connected";
        !            94:     case ENOTCONN:
        !            95:       return "Transport endpoint is not connected";
        !            96:     case ESHUTDOWN:
        !            97:       return "Cannot send after transport endpoint shutdown";
        !            98:     case ETOOMANYREFS:
        !            99:       return "Too many references: cannot splice";
        !           100:     case ETIMEDOUT:
        !           101:       return "Connection timed out";
        !           102:     case ECONNREFUSED:
        !           103:       return "Connection refused";
        !           104:     case ELOOP:
        !           105:       return "Too many levels of symbolic links";
        !           106:     case EHOSTDOWN:
        !           107:       return "Host is down";
        !           108:     case EHOSTUNREACH:
        !           109:       return "No route to host";
        !           110:     case EPROCLIM:
        !           111:       return "Too many processes";
        !           112:     case EUSERS:
        !           113:       return "Too many users";
        !           114:     case EDQUOT:
        !           115:       return "Disk quota exceeded";
        !           116:     case ESTALE:
        !           117:       return "Stale NFS file handle";
        !           118:     case EREMOTE:
        !           119:       return "Object is remote";
        !           120: # if HAVE_WINSOCK2_H
        !           121:       /* WSA_INVALID_HANDLE maps to EBADF */
        !           122:       /* WSA_NOT_ENOUGH_MEMORY maps to ENOMEM */
        !           123:       /* WSA_INVALID_PARAMETER maps to EINVAL */
        !           124:     case WSA_OPERATION_ABORTED:
        !           125:       return "Overlapped operation aborted";
        !           126:     case WSA_IO_INCOMPLETE:
        !           127:       return "Overlapped I/O event object not in signaled state";
        !           128:     case WSA_IO_PENDING:
        !           129:       return "Overlapped operations will complete later";
        !           130:       /* WSAEINTR maps to EINTR */
        !           131:       /* WSAEBADF maps to EBADF */
        !           132:       /* WSAEACCES maps to EACCES */
        !           133:       /* WSAEFAULT maps to EFAULT */
        !           134:       /* WSAEINVAL maps to EINVAL */
        !           135:       /* WSAEMFILE maps to EMFILE */
        !           136:       /* WSAEWOULDBLOCK maps to EWOULDBLOCK */
        !           137:       /* WSAEINPROGRESS is EINPROGRESS */
        !           138:       /* WSAEALREADY is EALREADY */
        !           139:       /* WSAENOTSOCK is ENOTSOCK */
        !           140:       /* WSAEDESTADDRREQ is EDESTADDRREQ */
        !           141:       /* WSAEMSGSIZE is EMSGSIZE */
        !           142:       /* WSAEPROTOTYPE is EPROTOTYPE */
        !           143:       /* WSAENOPROTOOPT is ENOPROTOOPT */
        !           144:       /* WSAEPROTONOSUPPORT is EPROTONOSUPPORT */
        !           145:       /* WSAESOCKTNOSUPPORT is ESOCKTNOSUPPORT */
        !           146:       /* WSAEOPNOTSUPP is EOPNOTSUPP */
        !           147:       /* WSAEPFNOSUPPORT is EPFNOSUPPORT */
        !           148:       /* WSAEAFNOSUPPORT is EAFNOSUPPORT */
        !           149:       /* WSAEADDRINUSE is EADDRINUSE */
        !           150:       /* WSAEADDRNOTAVAIL is EADDRNOTAVAIL */
        !           151:       /* WSAENETDOWN is ENETDOWN */
        !           152:       /* WSAENETUNREACH is ENETUNREACH */
        !           153:       /* WSAENETRESET is ENETRESET */
        !           154:       /* WSAECONNABORTED is ECONNABORTED */
        !           155:       /* WSAECONNRESET is ECONNRESET */
        !           156:       /* WSAENOBUFS is ENOBUFS */
        !           157:       /* WSAEISCONN is EISCONN */
        !           158:       /* WSAENOTCONN is ENOTCONN */
        !           159:       /* WSAESHUTDOWN is ESHUTDOWN */
        !           160:       /* WSAETOOMANYREFS is ETOOMANYREFS */
        !           161:       /* WSAETIMEDOUT is ETIMEDOUT */
        !           162:       /* WSAECONNREFUSED is ECONNREFUSED */
        !           163:       /* WSAELOOP is ELOOP */
        !           164:       /* WSAENAMETOOLONG maps to ENAMETOOLONG */
        !           165:       /* WSAEHOSTDOWN is EHOSTDOWN */
        !           166:       /* WSAEHOSTUNREACH is EHOSTUNREACH */
        !           167:       /* WSAENOTEMPTY maps to ENOTEMPTY */
        !           168:       /* WSAEPROCLIM is EPROCLIM */
        !           169:       /* WSAEUSERS is EUSERS */
        !           170:       /* WSAEDQUOT is EDQUOT */
        !           171:       /* WSAESTALE is ESTALE */
        !           172:       /* WSAEREMOTE is EREMOTE */
        !           173:     case WSASYSNOTREADY:
        !           174:       return "Network subsystem is unavailable";
        !           175:     case WSAVERNOTSUPPORTED:
        !           176:       return "Winsock.dll version out of range";
        !           177:     case WSANOTINITIALISED:
        !           178:       return "Successful WSAStartup not yet performed";
        !           179:     case WSAEDISCON:
        !           180:       return "Graceful shutdown in progress";
        !           181:     case WSAENOMORE: case WSA_E_NO_MORE:
        !           182:       return "No more results";
        !           183:     case WSAECANCELLED: case WSA_E_CANCELLED:
        !           184:       return "Call was canceled";
        !           185:     case WSAEINVALIDPROCTABLE:
        !           186:       return "Procedure call table is invalid";
        !           187:     case WSAEINVALIDPROVIDER:
        !           188:       return "Service provider is invalid";
        !           189:     case WSAEPROVIDERFAILEDINIT:
        !           190:       return "Service provider failed to initialize";
        !           191:     case WSASYSCALLFAILURE:
        !           192:       return "System call failure";
        !           193:     case WSASERVICE_NOT_FOUND:
        !           194:       return "Service not found";
        !           195:     case WSATYPE_NOT_FOUND:
        !           196:       return "Class type not found";
        !           197:     case WSAEREFUSED:
        !           198:       return "Database query was refused";
        !           199:     case WSAHOST_NOT_FOUND:
        !           200:       return "Host not found";
        !           201:     case WSATRY_AGAIN:
        !           202:       return "Nonauthoritative host not found";
        !           203:     case WSANO_RECOVERY:
        !           204:       return "Nonrecoverable error";
        !           205:     case WSANO_DATA:
        !           206:       return "Valid name, no data record of requested type";
        !           207:       /* WSA_QOS_* omitted */
        !           208: # endif
        !           209: #endif
        !           210: 
        !           211: #if GNULIB_defined_ENOMSG
        !           212:     case ENOMSG:
        !           213:       return "No message of desired type";
        !           214: #endif
        !           215: 
        !           216: #if GNULIB_defined_EIDRM
        !           217:     case EIDRM:
        !           218:       return "Identifier removed";
        !           219: #endif
        !           220: 
        !           221: #if GNULIB_defined_ENOLINK
        !           222:     case ENOLINK:
        !           223:       return "Link has been severed";
        !           224: #endif
        !           225: 
        !           226: #if GNULIB_defined_EPROTO
        !           227:     case EPROTO:
        !           228:       return "Protocol error";
        !           229: #endif
        !           230: 
        !           231: #if GNULIB_defined_EMULTIHOP
        !           232:     case EMULTIHOP:
        !           233:       return "Multihop attempted";
        !           234: #endif
        !           235: 
        !           236: #if GNULIB_defined_EBADMSG
        !           237:     case EBADMSG:
        !           238:       return "Bad message";
        !           239: #endif
        !           240: 
        !           241: #if GNULIB_defined_EOVERFLOW
        !           242:     case EOVERFLOW:
        !           243:       return "Value too large for defined data type";
        !           244: #endif
        !           245: 
        !           246: #if GNULIB_defined_ENOTSUP
        !           247:     case ENOTSUP:
        !           248:       return "Not supported";
        !           249: #endif
        !           250: 
        !           251: #if GNULIB_defined_ENETRESET
        !           252:     case ENETRESET:
        !           253:       return "Network dropped connection on reset";
        !           254: #endif
        !           255: 
        !           256: #if GNULIB_defined_ECONNABORTED
        !           257:     case ECONNABORTED:
        !           258:       return "Software caused connection abort";
        !           259: #endif
        !           260: 
        !           261: #if GNULIB_defined_ESTALE
        !           262:     case ESTALE:
        !           263:       return "Stale NFS file handle";
        !           264: #endif
        !           265: 
        !           266: #if GNULIB_defined_EDQUOT
        !           267:     case EDQUOT:
        !           268:       return "Disk quota exceeded";
        !           269: #endif
        !           270: 
        !           271: #if GNULIB_defined_ECANCELED
        !           272:     case ECANCELED:
        !           273:       return "Operation canceled";
        !           274: #endif
        !           275: 
        !           276:     default:
        !           277:       return NULL;
        !           278:     }
        !           279: }

FreeBSD-CVSweb <freebsd-cvsweb@FreeBSD.org>