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>