Annotation of embedaddon/libiconv/srclib/strerror-override.c, revision 1.1.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>