root/maint/gnulib/lib/strerror-override.c

/* [previous][next][first][last][top][bottom][index][help] */

DEFINITIONS

This source file includes following definitions.
  1. strerror_override

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

/* [previous][next][first][last][top][bottom][index][help] */