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

1.1       misho       1: /* strerror-override.c --- POSIX compatible system error routine
                      2: 
1.1.1.2 ! misho       3:    Copyright (C) 2010-2019 Free Software Foundation, Inc.
1.1       misho       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
1.1.1.2 ! misho      16:    along with this program.  If not, see <https://www.gnu.org/licenses/>.  */
1.1       misho      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: 
1.1.1.2 ! misho      26: #if GNULIB_defined_EWINSOCK /* native Windows platforms */
1.1       misho      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: 
1.1.1.2 ! misho      45: #if GNULIB_defined_ESOCK /* native Windows platforms with older <errno.h> */
1.1       misho      46:     case EINPROGRESS:
                     47:       return "Operation now in progress";
                     48:     case EALREADY:
                     49:       return "Operation already in progress";
                     50:     case ENOTSOCK:
                     51:       return "Socket operation on non-socket";
                     52:     case EDESTADDRREQ:
                     53:       return "Destination address required";
                     54:     case EMSGSIZE:
                     55:       return "Message too long";
                     56:     case EPROTOTYPE:
                     57:       return "Protocol wrong type for socket";
                     58:     case ENOPROTOOPT:
                     59:       return "Protocol not available";
                     60:     case EPROTONOSUPPORT:
                     61:       return "Protocol not supported";
                     62:     case EOPNOTSUPP:
                     63:       return "Operation not supported";
                     64:     case EAFNOSUPPORT:
                     65:       return "Address family not supported by protocol";
                     66:     case EADDRINUSE:
                     67:       return "Address already in use";
                     68:     case EADDRNOTAVAIL:
                     69:       return "Cannot assign requested address";
                     70:     case ENETDOWN:
                     71:       return "Network is down";
                     72:     case ENETUNREACH:
                     73:       return "Network is unreachable";
                     74:     case ECONNRESET:
                     75:       return "Connection reset by peer";
                     76:     case ENOBUFS:
                     77:       return "No buffer space available";
                     78:     case EISCONN:
                     79:       return "Transport endpoint is already connected";
                     80:     case ENOTCONN:
                     81:       return "Transport endpoint is not connected";
                     82:     case ETIMEDOUT:
                     83:       return "Connection timed out";
                     84:     case ECONNREFUSED:
                     85:       return "Connection refused";
                     86:     case ELOOP:
                     87:       return "Too many levels of symbolic links";
                     88:     case EHOSTUNREACH:
                     89:       return "No route to host";
1.1.1.2 ! misho      90:     case EWOULDBLOCK:
        !            91:       return "Operation would block";
        !            92: #endif
        !            93: #if GNULIB_defined_ESTREAMS /* native Windows platforms with older <errno.h> */
        !            94:     case ETXTBSY:
        !            95:       return "Text file busy";
        !            96:     case ENODATA:
        !            97:       return "No data available";
        !            98:     case ENOSR:
        !            99:       return "Out of streams resources";
        !           100:     case ENOSTR:
        !           101:       return "Device not a stream";
        !           102:     case ETIME:
        !           103:       return "Timer expired";
        !           104:     case EOTHER:
        !           105:       return "Other error";
        !           106: #endif
        !           107: #if GNULIB_defined_EWINSOCK /* native Windows platforms */
        !           108:     case ESOCKTNOSUPPORT:
        !           109:       return "Socket type not supported";
        !           110:     case EPFNOSUPPORT:
        !           111:       return "Protocol family not supported";
        !           112:     case ESHUTDOWN:
        !           113:       return "Cannot send after transport endpoint shutdown";
        !           114:     case ETOOMANYREFS:
        !           115:       return "Too many references: cannot splice";
        !           116:     case EHOSTDOWN:
        !           117:       return "Host is down";
1.1       misho     118:     case EPROCLIM:
                    119:       return "Too many processes";
                    120:     case EUSERS:
                    121:       return "Too many users";
                    122:     case EDQUOT:
                    123:       return "Disk quota exceeded";
                    124:     case ESTALE:
                    125:       return "Stale NFS file handle";
                    126:     case EREMOTE:
                    127:       return "Object is remote";
                    128: # if HAVE_WINSOCK2_H
                    129:       /* WSA_INVALID_HANDLE maps to EBADF */
                    130:       /* WSA_NOT_ENOUGH_MEMORY maps to ENOMEM */
                    131:       /* WSA_INVALID_PARAMETER maps to EINVAL */
                    132:     case WSA_OPERATION_ABORTED:
                    133:       return "Overlapped operation aborted";
                    134:     case WSA_IO_INCOMPLETE:
                    135:       return "Overlapped I/O event object not in signaled state";
                    136:     case WSA_IO_PENDING:
                    137:       return "Overlapped operations will complete later";
                    138:       /* WSAEINTR maps to EINTR */
                    139:       /* WSAEBADF maps to EBADF */
                    140:       /* WSAEACCES maps to EACCES */
                    141:       /* WSAEFAULT maps to EFAULT */
                    142:       /* WSAEINVAL maps to EINVAL */
                    143:       /* WSAEMFILE maps to EMFILE */
                    144:       /* WSAEWOULDBLOCK maps to EWOULDBLOCK */
1.1.1.2 ! misho     145:       /* WSAEINPROGRESS maps to EINPROGRESS */
        !           146:       /* WSAEALREADY maps to EALREADY */
        !           147:       /* WSAENOTSOCK maps to ENOTSOCK */
        !           148:       /* WSAEDESTADDRREQ maps to EDESTADDRREQ */
        !           149:       /* WSAEMSGSIZE maps to EMSGSIZE */
        !           150:       /* WSAEPROTOTYPE maps to EPROTOTYPE */
        !           151:       /* WSAENOPROTOOPT maps to ENOPROTOOPT */
        !           152:       /* WSAEPROTONOSUPPORT maps to EPROTONOSUPPORT */
1.1       misho     153:       /* WSAESOCKTNOSUPPORT is ESOCKTNOSUPPORT */
1.1.1.2 ! misho     154:       /* WSAEOPNOTSUPP maps to EOPNOTSUPP */
1.1       misho     155:       /* WSAEPFNOSUPPORT is EPFNOSUPPORT */
1.1.1.2 ! misho     156:       /* WSAEAFNOSUPPORT maps to EAFNOSUPPORT */
        !           157:       /* WSAEADDRINUSE maps to EADDRINUSE */
        !           158:       /* WSAEADDRNOTAVAIL maps to EADDRNOTAVAIL */
        !           159:       /* WSAENETDOWN maps to ENETDOWN */
        !           160:       /* WSAENETUNREACH maps to ENETUNREACH */
        !           161:       /* WSAENETRESET maps to ENETRESET */
        !           162:       /* WSAECONNABORTED maps to ECONNABORTED */
        !           163:       /* WSAECONNRESET maps to ECONNRESET */
        !           164:       /* WSAENOBUFS maps to ENOBUFS */
        !           165:       /* WSAEISCONN maps to EISCONN */
        !           166:       /* WSAENOTCONN maps to ENOTCONN */
1.1       misho     167:       /* WSAESHUTDOWN is ESHUTDOWN */
                    168:       /* WSAETOOMANYREFS is ETOOMANYREFS */
1.1.1.2 ! misho     169:       /* WSAETIMEDOUT maps to ETIMEDOUT */
        !           170:       /* WSAECONNREFUSED maps to ECONNREFUSED */
        !           171:       /* WSAELOOP maps to ELOOP */
1.1       misho     172:       /* WSAENAMETOOLONG maps to ENAMETOOLONG */
                    173:       /* WSAEHOSTDOWN is EHOSTDOWN */
1.1.1.2 ! misho     174:       /* WSAEHOSTUNREACH maps to EHOSTUNREACH */
1.1       misho     175:       /* WSAENOTEMPTY maps to ENOTEMPTY */
                    176:       /* WSAEPROCLIM is EPROCLIM */
                    177:       /* WSAEUSERS is EUSERS */
                    178:       /* WSAEDQUOT is EDQUOT */
                    179:       /* WSAESTALE is ESTALE */
                    180:       /* WSAEREMOTE is EREMOTE */
                    181:     case WSASYSNOTREADY:
                    182:       return "Network subsystem is unavailable";
                    183:     case WSAVERNOTSUPPORTED:
                    184:       return "Winsock.dll version out of range";
                    185:     case WSANOTINITIALISED:
                    186:       return "Successful WSAStartup not yet performed";
                    187:     case WSAEDISCON:
                    188:       return "Graceful shutdown in progress";
                    189:     case WSAENOMORE: case WSA_E_NO_MORE:
                    190:       return "No more results";
                    191:     case WSAECANCELLED: case WSA_E_CANCELLED:
                    192:       return "Call was canceled";
                    193:     case WSAEINVALIDPROCTABLE:
                    194:       return "Procedure call table is invalid";
                    195:     case WSAEINVALIDPROVIDER:
                    196:       return "Service provider is invalid";
                    197:     case WSAEPROVIDERFAILEDINIT:
                    198:       return "Service provider failed to initialize";
                    199:     case WSASYSCALLFAILURE:
                    200:       return "System call failure";
                    201:     case WSASERVICE_NOT_FOUND:
                    202:       return "Service not found";
                    203:     case WSATYPE_NOT_FOUND:
                    204:       return "Class type not found";
                    205:     case WSAEREFUSED:
                    206:       return "Database query was refused";
                    207:     case WSAHOST_NOT_FOUND:
                    208:       return "Host not found";
                    209:     case WSATRY_AGAIN:
                    210:       return "Nonauthoritative host not found";
                    211:     case WSANO_RECOVERY:
                    212:       return "Nonrecoverable error";
                    213:     case WSANO_DATA:
                    214:       return "Valid name, no data record of requested type";
                    215:       /* WSA_QOS_* omitted */
                    216: # endif
                    217: #endif
                    218: 
                    219: #if GNULIB_defined_ENOMSG
                    220:     case ENOMSG:
                    221:       return "No message of desired type";
                    222: #endif
                    223: 
                    224: #if GNULIB_defined_EIDRM
                    225:     case EIDRM:
                    226:       return "Identifier removed";
                    227: #endif
                    228: 
                    229: #if GNULIB_defined_ENOLINK
                    230:     case ENOLINK:
                    231:       return "Link has been severed";
                    232: #endif
                    233: 
                    234: #if GNULIB_defined_EPROTO
                    235:     case EPROTO:
                    236:       return "Protocol error";
                    237: #endif
                    238: 
                    239: #if GNULIB_defined_EMULTIHOP
                    240:     case EMULTIHOP:
                    241:       return "Multihop attempted";
                    242: #endif
                    243: 
                    244: #if GNULIB_defined_EBADMSG
                    245:     case EBADMSG:
                    246:       return "Bad message";
                    247: #endif
                    248: 
                    249: #if GNULIB_defined_EOVERFLOW
                    250:     case EOVERFLOW:
                    251:       return "Value too large for defined data type";
                    252: #endif
                    253: 
                    254: #if GNULIB_defined_ENOTSUP
                    255:     case ENOTSUP:
                    256:       return "Not supported";
                    257: #endif
                    258: 
                    259: #if GNULIB_defined_ENETRESET
                    260:     case ENETRESET:
                    261:       return "Network dropped connection on reset";
                    262: #endif
                    263: 
                    264: #if GNULIB_defined_ECONNABORTED
                    265:     case ECONNABORTED:
                    266:       return "Software caused connection abort";
                    267: #endif
                    268: 
                    269: #if GNULIB_defined_ESTALE
                    270:     case ESTALE:
                    271:       return "Stale NFS file handle";
                    272: #endif
                    273: 
                    274: #if GNULIB_defined_EDQUOT
                    275:     case EDQUOT:
                    276:       return "Disk quota exceeded";
                    277: #endif
                    278: 
                    279: #if GNULIB_defined_ECANCELED
                    280:     case ECANCELED:
                    281:       return "Operation canceled";
                    282: #endif
                    283: 
1.1.1.2 ! misho     284: #if GNULIB_defined_EOWNERDEAD
        !           285:     case EOWNERDEAD:
        !           286:       return "Owner died";
        !           287: #endif
        !           288: 
        !           289: #if GNULIB_defined_ENOTRECOVERABLE
        !           290:     case ENOTRECOVERABLE:
        !           291:       return "State not recoverable";
        !           292: #endif
        !           293: 
        !           294: #if GNULIB_defined_EILSEQ
        !           295:     case EILSEQ:
        !           296:       return "Invalid or incomplete multibyte or wide character";
        !           297: #endif
        !           298: 
1.1       misho     299:     default:
                    300:       return NULL;
                    301:     }
                    302: }

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