1 # Winsock error to errno code mapping.
4 # Redistribution and use in source and binary forms, with or without
5 # modification, are permitted provided that the following conditions are
8 # * Redistributions of source code must retain the above copyright
9 # notice, this list of conditions and the following disclaimer.
11 # * Redistributions in binary form must reproduce the above copyright
12 # notice, this list of conditions and the following disclaimer in the
13 # documentation and/or other materials provided with the distribution.
15 # * Neither the name of Red Hat nor the names of its contributors may be
16 # used to endorse or promote products derived from this software without
17 # specific prior written permission.
19 # THIS SOFTWARE IS PROVIDED BY RED HAT AND CONTRIBUTORS ''AS IS'' AND
20 # ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO,
21 # THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A
22 # PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL RED HAT OR
23 # CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
24 # SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
25 # LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF
26 # USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND
27 # ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
28 # OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT
29 # OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
32 # The main reference is:
33 # https://docs.microsoft.com/en-us/windows/win32/winsock/windows-sockets-error-codes-2
34 # This was originally written by hand, but I also referenced libvirt's
35 # and Gnulib's choices of mappings.
37 WSA_INVALID_HANDLE EBADF
38 WSA_NOT_ENOUGH_MEMORY ENOMEM
39 WSA_INVALID_PARAMETER EINVAL
40 WSA_OPERATION_ABORTED ECONNABORTED
42 # These two are only kind of correct.
43 WSA_IO_INCOMPLETE EWOULDBLOCK
44 WSA_IO_PENDING EWOULDBLOCK
52 WSAEWOULDBLOCK EWOULDBLOCK
53 WSAEINPROGRESS EINPROGRESS
56 WSAEDESTADDRREQ EDESTADDRREQ
58 WSAEPROTOTYPE EPROTOTYPE
59 WSAENOPROTOOPT ENOPROTOOPT
60 WSAEPROTONOSUPPORT EPROTONOSUPPORT
61 WSAESOCKTNOSUPPORT ESOCKTNOSUPPORT
62 WSAEOPNOTSUPP EOPNOTSUPP
63 WSAEPFNOSUPPORT EPFNOSUPPORT
64 WSAEAFNOSUPPORT EAFNOSUPPORT
65 WSAEADDRINUSE EADDRINUSE
66 WSAEADDRNOTAVAIL EADDRNOTAVAIL
68 WSAENETUNREACH ENETUNREACH
69 WSAENETRESET ENETRESET
70 WSAECONNABORTED ECONNABORTED
71 WSAECONNRESET ECONNRESET
75 WSAESHUTDOWN ESHUTDOWN
76 WSAETOOMANYREFS ETOOMANYREFS
77 WSAETIMEDOUT ETIMEDOUT
78 WSAECONNREFUSED ECONNREFUSED
80 WSAENAMETOOLONG ENAMETOOLONG
81 WSAEHOSTDOWN EHOSTDOWN
82 WSAEHOSTUNREACH EHOSTUNREACH
83 WSAENOTEMPTY ENOTEMPTY
85 # This really means "too many processes" but this is the closest I could find.
93 # The next three are respectively: Didn't call WSAStartup, Winsock
94 # version is unsupported, and WSAStartup failed.
96 WSAVERNOTSUPPORTED EINVAL
97 WSANOTINITIALISED EINVAL
101 WSAECANCELLED ECANCELED
103 # There are a bunch more after this but they all seem pretty obscure.
104 # Unknown errors are mapped to EIO and a debug message is printed so
105 # we have the original error.