annotate lib/w32sock.h @ 17249:e542fd46ad6f

maint: update all copyright year number ranges Run "make update-copyright". Compare to commit 1602f0a from last year. Signed-off-by: Eric Blake <eblake@redhat.com>
author Eric Blake <eblake@redhat.com>
date Tue, 01 Jan 2013 00:50:58 +0000
parents a712776b11ce
children
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
rev   line source
16358
a712776b11ce maint: spelling fixes
Paul Eggert <eggert@cs.ucla.edu>
parents: 16326
diff changeset
1 /* w32sock.h --- internal auxiliary functions for Windows socket functions
10690
01f3623813da Split winsock.c into many smaller files.
Simon Josefsson <simon@josefsson.org>
parents:
diff changeset
2
17249
e542fd46ad6f maint: update all copyright year number ranges
Eric Blake <eblake@redhat.com>
parents: 16358
diff changeset
3 Copyright (C) 2008-2013 Free Software Foundation, Inc.
10690
01f3623813da Split winsock.c into many smaller files.
Simon Josefsson <simon@josefsson.org>
parents:
diff changeset
4
01f3623813da Split winsock.c into many smaller files.
Simon Josefsson <simon@josefsson.org>
parents:
diff changeset
5 This program is free software: you can redistribute it and/or modify
01f3623813da Split winsock.c into many smaller files.
Simon Josefsson <simon@josefsson.org>
parents:
diff changeset
6 it under the terms of the GNU General Public License as published by
01f3623813da Split winsock.c into many smaller files.
Simon Josefsson <simon@josefsson.org>
parents:
diff changeset
7 the Free Software Foundation; either version 3 of the License, or
01f3623813da Split winsock.c into many smaller files.
Simon Josefsson <simon@josefsson.org>
parents:
diff changeset
8 (at your option) any later version.
01f3623813da Split winsock.c into many smaller files.
Simon Josefsson <simon@josefsson.org>
parents:
diff changeset
9
01f3623813da Split winsock.c into many smaller files.
Simon Josefsson <simon@josefsson.org>
parents:
diff changeset
10 This program is distributed in the hope that it will be useful,
01f3623813da Split winsock.c into many smaller files.
Simon Josefsson <simon@josefsson.org>
parents:
diff changeset
11 but WITHOUT ANY WARRANTY; without even the implied warranty of
01f3623813da Split winsock.c into many smaller files.
Simon Josefsson <simon@josefsson.org>
parents:
diff changeset
12 MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
01f3623813da Split winsock.c into many smaller files.
Simon Josefsson <simon@josefsson.org>
parents:
diff changeset
13 GNU General Public License for more details.
01f3623813da Split winsock.c into many smaller files.
Simon Josefsson <simon@josefsson.org>
parents:
diff changeset
14
01f3623813da Split winsock.c into many smaller files.
Simon Josefsson <simon@josefsson.org>
parents:
diff changeset
15 You should have received a copy of the GNU General Public License
01f3623813da Split winsock.c into many smaller files.
Simon Josefsson <simon@josefsson.org>
parents:
diff changeset
16 along with this program. If not, see <http://www.gnu.org/licenses/>. */
01f3623813da Split winsock.c into many smaller files.
Simon Josefsson <simon@josefsson.org>
parents:
diff changeset
17
01f3623813da Split winsock.c into many smaller files.
Simon Josefsson <simon@josefsson.org>
parents:
diff changeset
18 /* Written by Paolo Bonzini */
01f3623813da Split winsock.c into many smaller files.
Simon Josefsson <simon@josefsson.org>
parents:
diff changeset
19
01f3623813da Split winsock.c into many smaller files.
Simon Josefsson <simon@josefsson.org>
parents:
diff changeset
20 #include <errno.h>
01f3623813da Split winsock.c into many smaller files.
Simon Josefsson <simon@josefsson.org>
parents:
diff changeset
21
01f3623813da Split winsock.c into many smaller files.
Simon Josefsson <simon@josefsson.org>
parents:
diff changeset
22 /* Get O_RDWR and O_BINARY. */
01f3623813da Split winsock.c into many smaller files.
Simon Josefsson <simon@josefsson.org>
parents:
diff changeset
23 #include <fcntl.h>
01f3623813da Split winsock.c into many smaller files.
Simon Josefsson <simon@josefsson.org>
parents:
diff changeset
24
15752
b86e9061a6d0 New module 'msvc-nothrow'. Makes _get_osfhandle safe on MSVC 9.
Bruno Haible <bruno@clisp.org>
parents: 14079
diff changeset
25 /* Get _open_osfhandle(). */
10690
01f3623813da Split winsock.c into many smaller files.
Simon Josefsson <simon@josefsson.org>
parents:
diff changeset
26 #include <io.h>
01f3623813da Split winsock.c into many smaller files.
Simon Josefsson <simon@josefsson.org>
parents:
diff changeset
27
15752
b86e9061a6d0 New module 'msvc-nothrow'. Makes _get_osfhandle safe on MSVC 9.
Bruno Haible <bruno@clisp.org>
parents: 14079
diff changeset
28 /* Get _get_osfhandle(). */
b86e9061a6d0 New module 'msvc-nothrow'. Makes _get_osfhandle safe on MSVC 9.
Bruno Haible <bruno@clisp.org>
parents: 14079
diff changeset
29 #include "msvc-nothrow.h"
b86e9061a6d0 New module 'msvc-nothrow'. Makes _get_osfhandle safe on MSVC 9.
Bruno Haible <bruno@clisp.org>
parents: 14079
diff changeset
30
10690
01f3623813da Split winsock.c into many smaller files.
Simon Josefsson <simon@josefsson.org>
parents:
diff changeset
31 #define FD_TO_SOCKET(fd) ((SOCKET) _get_osfhandle ((fd)))
16326
067aa8df247a accept4, fcntl, socket modules: Avoid warnings on x86_64 mingw64.
Marc-André Lureau <marcandre.lureau@redhat.com>
parents: 16201
diff changeset
32 #define SOCKET_TO_FD(fh) (_open_osfhandle ((intptr_t) (fh), O_RDWR | O_BINARY))
10690
01f3623813da Split winsock.c into many smaller files.
Simon Josefsson <simon@josefsson.org>
parents:
diff changeset
33
01f3623813da Split winsock.c into many smaller files.
Simon Josefsson <simon@josefsson.org>
parents:
diff changeset
34 static inline void
01f3623813da Split winsock.c into many smaller files.
Simon Josefsson <simon@josefsson.org>
parents:
diff changeset
35 set_winsock_errno (void)
01f3623813da Split winsock.c into many smaller files.
Simon Josefsson <simon@josefsson.org>
parents:
diff changeset
36 {
01f3623813da Split winsock.c into many smaller files.
Simon Josefsson <simon@josefsson.org>
parents:
diff changeset
37 int err = WSAGetLastError ();
01f3623813da Split winsock.c into many smaller files.
Simon Josefsson <simon@josefsson.org>
parents:
diff changeset
38
01f3623813da Split winsock.c into many smaller files.
Simon Josefsson <simon@josefsson.org>
parents:
diff changeset
39 /* Map some WSAE* errors to the runtime library's error codes. */
01f3623813da Split winsock.c into many smaller files.
Simon Josefsson <simon@josefsson.org>
parents:
diff changeset
40 switch (err)
01f3623813da Split winsock.c into many smaller files.
Simon Josefsson <simon@josefsson.org>
parents:
diff changeset
41 {
01f3623813da Split winsock.c into many smaller files.
Simon Josefsson <simon@josefsson.org>
parents:
diff changeset
42 case WSA_INVALID_HANDLE:
01f3623813da Split winsock.c into many smaller files.
Simon Josefsson <simon@josefsson.org>
parents:
diff changeset
43 errno = EBADF;
01f3623813da Split winsock.c into many smaller files.
Simon Josefsson <simon@josefsson.org>
parents:
diff changeset
44 break;
01f3623813da Split winsock.c into many smaller files.
Simon Josefsson <simon@josefsson.org>
parents:
diff changeset
45 case WSA_NOT_ENOUGH_MEMORY:
01f3623813da Split winsock.c into many smaller files.
Simon Josefsson <simon@josefsson.org>
parents:
diff changeset
46 errno = ENOMEM;
01f3623813da Split winsock.c into many smaller files.
Simon Josefsson <simon@josefsson.org>
parents:
diff changeset
47 break;
01f3623813da Split winsock.c into many smaller files.
Simon Josefsson <simon@josefsson.org>
parents:
diff changeset
48 case WSA_INVALID_PARAMETER:
01f3623813da Split winsock.c into many smaller files.
Simon Josefsson <simon@josefsson.org>
parents:
diff changeset
49 errno = EINVAL;
01f3623813da Split winsock.c into many smaller files.
Simon Josefsson <simon@josefsson.org>
parents:
diff changeset
50 break;
01f3623813da Split winsock.c into many smaller files.
Simon Josefsson <simon@josefsson.org>
parents:
diff changeset
51 case WSAENAMETOOLONG:
01f3623813da Split winsock.c into many smaller files.
Simon Josefsson <simon@josefsson.org>
parents:
diff changeset
52 errno = ENAMETOOLONG;
01f3623813da Split winsock.c into many smaller files.
Simon Josefsson <simon@josefsson.org>
parents:
diff changeset
53 break;
01f3623813da Split winsock.c into many smaller files.
Simon Josefsson <simon@josefsson.org>
parents:
diff changeset
54 case WSAENOTEMPTY:
01f3623813da Split winsock.c into many smaller files.
Simon Josefsson <simon@josefsson.org>
parents:
diff changeset
55 errno = ENOTEMPTY;
01f3623813da Split winsock.c into many smaller files.
Simon Josefsson <simon@josefsson.org>
parents:
diff changeset
56 break;
15985
42b40ee9f878 errno, strerror-override: Support for MSVC 10.
Bruno Haible <bruno@clisp.org>
parents: 15752
diff changeset
57 case WSAEWOULDBLOCK:
42b40ee9f878 errno, strerror-override: Support for MSVC 10.
Bruno Haible <bruno@clisp.org>
parents: 15752
diff changeset
58 errno = EWOULDBLOCK;
42b40ee9f878 errno, strerror-override: Support for MSVC 10.
Bruno Haible <bruno@clisp.org>
parents: 15752
diff changeset
59 break;
42b40ee9f878 errno, strerror-override: Support for MSVC 10.
Bruno Haible <bruno@clisp.org>
parents: 15752
diff changeset
60 case WSAEINPROGRESS:
42b40ee9f878 errno, strerror-override: Support for MSVC 10.
Bruno Haible <bruno@clisp.org>
parents: 15752
diff changeset
61 errno = EINPROGRESS;
42b40ee9f878 errno, strerror-override: Support for MSVC 10.
Bruno Haible <bruno@clisp.org>
parents: 15752
diff changeset
62 break;
42b40ee9f878 errno, strerror-override: Support for MSVC 10.
Bruno Haible <bruno@clisp.org>
parents: 15752
diff changeset
63 case WSAEALREADY:
42b40ee9f878 errno, strerror-override: Support for MSVC 10.
Bruno Haible <bruno@clisp.org>
parents: 15752
diff changeset
64 errno = EALREADY;
42b40ee9f878 errno, strerror-override: Support for MSVC 10.
Bruno Haible <bruno@clisp.org>
parents: 15752
diff changeset
65 break;
42b40ee9f878 errno, strerror-override: Support for MSVC 10.
Bruno Haible <bruno@clisp.org>
parents: 15752
diff changeset
66 case WSAENOTSOCK:
42b40ee9f878 errno, strerror-override: Support for MSVC 10.
Bruno Haible <bruno@clisp.org>
parents: 15752
diff changeset
67 errno = ENOTSOCK;
42b40ee9f878 errno, strerror-override: Support for MSVC 10.
Bruno Haible <bruno@clisp.org>
parents: 15752
diff changeset
68 break;
42b40ee9f878 errno, strerror-override: Support for MSVC 10.
Bruno Haible <bruno@clisp.org>
parents: 15752
diff changeset
69 case WSAEDESTADDRREQ:
42b40ee9f878 errno, strerror-override: Support for MSVC 10.
Bruno Haible <bruno@clisp.org>
parents: 15752
diff changeset
70 errno = EDESTADDRREQ;
42b40ee9f878 errno, strerror-override: Support for MSVC 10.
Bruno Haible <bruno@clisp.org>
parents: 15752
diff changeset
71 break;
42b40ee9f878 errno, strerror-override: Support for MSVC 10.
Bruno Haible <bruno@clisp.org>
parents: 15752
diff changeset
72 case WSAEMSGSIZE:
42b40ee9f878 errno, strerror-override: Support for MSVC 10.
Bruno Haible <bruno@clisp.org>
parents: 15752
diff changeset
73 errno = EMSGSIZE;
42b40ee9f878 errno, strerror-override: Support for MSVC 10.
Bruno Haible <bruno@clisp.org>
parents: 15752
diff changeset
74 break;
42b40ee9f878 errno, strerror-override: Support for MSVC 10.
Bruno Haible <bruno@clisp.org>
parents: 15752
diff changeset
75 case WSAEPROTOTYPE:
42b40ee9f878 errno, strerror-override: Support for MSVC 10.
Bruno Haible <bruno@clisp.org>
parents: 15752
diff changeset
76 errno = EPROTOTYPE;
42b40ee9f878 errno, strerror-override: Support for MSVC 10.
Bruno Haible <bruno@clisp.org>
parents: 15752
diff changeset
77 break;
42b40ee9f878 errno, strerror-override: Support for MSVC 10.
Bruno Haible <bruno@clisp.org>
parents: 15752
diff changeset
78 case WSAENOPROTOOPT:
42b40ee9f878 errno, strerror-override: Support for MSVC 10.
Bruno Haible <bruno@clisp.org>
parents: 15752
diff changeset
79 errno = ENOPROTOOPT;
42b40ee9f878 errno, strerror-override: Support for MSVC 10.
Bruno Haible <bruno@clisp.org>
parents: 15752
diff changeset
80 break;
42b40ee9f878 errno, strerror-override: Support for MSVC 10.
Bruno Haible <bruno@clisp.org>
parents: 15752
diff changeset
81 case WSAEPROTONOSUPPORT:
42b40ee9f878 errno, strerror-override: Support for MSVC 10.
Bruno Haible <bruno@clisp.org>
parents: 15752
diff changeset
82 errno = EPROTONOSUPPORT;
42b40ee9f878 errno, strerror-override: Support for MSVC 10.
Bruno Haible <bruno@clisp.org>
parents: 15752
diff changeset
83 break;
42b40ee9f878 errno, strerror-override: Support for MSVC 10.
Bruno Haible <bruno@clisp.org>
parents: 15752
diff changeset
84 case WSAEOPNOTSUPP:
42b40ee9f878 errno, strerror-override: Support for MSVC 10.
Bruno Haible <bruno@clisp.org>
parents: 15752
diff changeset
85 errno = EOPNOTSUPP;
42b40ee9f878 errno, strerror-override: Support for MSVC 10.
Bruno Haible <bruno@clisp.org>
parents: 15752
diff changeset
86 break;
42b40ee9f878 errno, strerror-override: Support for MSVC 10.
Bruno Haible <bruno@clisp.org>
parents: 15752
diff changeset
87 case WSAEAFNOSUPPORT:
42b40ee9f878 errno, strerror-override: Support for MSVC 10.
Bruno Haible <bruno@clisp.org>
parents: 15752
diff changeset
88 errno = EAFNOSUPPORT;
42b40ee9f878 errno, strerror-override: Support for MSVC 10.
Bruno Haible <bruno@clisp.org>
parents: 15752
diff changeset
89 break;
42b40ee9f878 errno, strerror-override: Support for MSVC 10.
Bruno Haible <bruno@clisp.org>
parents: 15752
diff changeset
90 case WSAEADDRINUSE:
42b40ee9f878 errno, strerror-override: Support for MSVC 10.
Bruno Haible <bruno@clisp.org>
parents: 15752
diff changeset
91 errno = EADDRINUSE;
42b40ee9f878 errno, strerror-override: Support for MSVC 10.
Bruno Haible <bruno@clisp.org>
parents: 15752
diff changeset
92 break;
42b40ee9f878 errno, strerror-override: Support for MSVC 10.
Bruno Haible <bruno@clisp.org>
parents: 15752
diff changeset
93 case WSAEADDRNOTAVAIL:
42b40ee9f878 errno, strerror-override: Support for MSVC 10.
Bruno Haible <bruno@clisp.org>
parents: 15752
diff changeset
94 errno = EADDRNOTAVAIL;
42b40ee9f878 errno, strerror-override: Support for MSVC 10.
Bruno Haible <bruno@clisp.org>
parents: 15752
diff changeset
95 break;
42b40ee9f878 errno, strerror-override: Support for MSVC 10.
Bruno Haible <bruno@clisp.org>
parents: 15752
diff changeset
96 case WSAENETDOWN:
42b40ee9f878 errno, strerror-override: Support for MSVC 10.
Bruno Haible <bruno@clisp.org>
parents: 15752
diff changeset
97 errno = ENETDOWN;
42b40ee9f878 errno, strerror-override: Support for MSVC 10.
Bruno Haible <bruno@clisp.org>
parents: 15752
diff changeset
98 break;
42b40ee9f878 errno, strerror-override: Support for MSVC 10.
Bruno Haible <bruno@clisp.org>
parents: 15752
diff changeset
99 case WSAENETUNREACH:
42b40ee9f878 errno, strerror-override: Support for MSVC 10.
Bruno Haible <bruno@clisp.org>
parents: 15752
diff changeset
100 errno = ENETUNREACH;
42b40ee9f878 errno, strerror-override: Support for MSVC 10.
Bruno Haible <bruno@clisp.org>
parents: 15752
diff changeset
101 break;
42b40ee9f878 errno, strerror-override: Support for MSVC 10.
Bruno Haible <bruno@clisp.org>
parents: 15752
diff changeset
102 case WSAENETRESET:
42b40ee9f878 errno, strerror-override: Support for MSVC 10.
Bruno Haible <bruno@clisp.org>
parents: 15752
diff changeset
103 errno = ENETRESET;
42b40ee9f878 errno, strerror-override: Support for MSVC 10.
Bruno Haible <bruno@clisp.org>
parents: 15752
diff changeset
104 break;
42b40ee9f878 errno, strerror-override: Support for MSVC 10.
Bruno Haible <bruno@clisp.org>
parents: 15752
diff changeset
105 case WSAECONNABORTED:
42b40ee9f878 errno, strerror-override: Support for MSVC 10.
Bruno Haible <bruno@clisp.org>
parents: 15752
diff changeset
106 errno = ECONNABORTED;
42b40ee9f878 errno, strerror-override: Support for MSVC 10.
Bruno Haible <bruno@clisp.org>
parents: 15752
diff changeset
107 break;
42b40ee9f878 errno, strerror-override: Support for MSVC 10.
Bruno Haible <bruno@clisp.org>
parents: 15752
diff changeset
108 case WSAECONNRESET:
42b40ee9f878 errno, strerror-override: Support for MSVC 10.
Bruno Haible <bruno@clisp.org>
parents: 15752
diff changeset
109 errno = ECONNRESET;
42b40ee9f878 errno, strerror-override: Support for MSVC 10.
Bruno Haible <bruno@clisp.org>
parents: 15752
diff changeset
110 break;
42b40ee9f878 errno, strerror-override: Support for MSVC 10.
Bruno Haible <bruno@clisp.org>
parents: 15752
diff changeset
111 case WSAENOBUFS:
42b40ee9f878 errno, strerror-override: Support for MSVC 10.
Bruno Haible <bruno@clisp.org>
parents: 15752
diff changeset
112 errno = ENOBUFS;
42b40ee9f878 errno, strerror-override: Support for MSVC 10.
Bruno Haible <bruno@clisp.org>
parents: 15752
diff changeset
113 break;
42b40ee9f878 errno, strerror-override: Support for MSVC 10.
Bruno Haible <bruno@clisp.org>
parents: 15752
diff changeset
114 case WSAEISCONN:
42b40ee9f878 errno, strerror-override: Support for MSVC 10.
Bruno Haible <bruno@clisp.org>
parents: 15752
diff changeset
115 errno = EISCONN;
42b40ee9f878 errno, strerror-override: Support for MSVC 10.
Bruno Haible <bruno@clisp.org>
parents: 15752
diff changeset
116 break;
42b40ee9f878 errno, strerror-override: Support for MSVC 10.
Bruno Haible <bruno@clisp.org>
parents: 15752
diff changeset
117 case WSAENOTCONN:
42b40ee9f878 errno, strerror-override: Support for MSVC 10.
Bruno Haible <bruno@clisp.org>
parents: 15752
diff changeset
118 errno = ENOTCONN;
42b40ee9f878 errno, strerror-override: Support for MSVC 10.
Bruno Haible <bruno@clisp.org>
parents: 15752
diff changeset
119 break;
42b40ee9f878 errno, strerror-override: Support for MSVC 10.
Bruno Haible <bruno@clisp.org>
parents: 15752
diff changeset
120 case WSAETIMEDOUT:
42b40ee9f878 errno, strerror-override: Support for MSVC 10.
Bruno Haible <bruno@clisp.org>
parents: 15752
diff changeset
121 errno = ETIMEDOUT;
42b40ee9f878 errno, strerror-override: Support for MSVC 10.
Bruno Haible <bruno@clisp.org>
parents: 15752
diff changeset
122 break;
42b40ee9f878 errno, strerror-override: Support for MSVC 10.
Bruno Haible <bruno@clisp.org>
parents: 15752
diff changeset
123 case WSAECONNREFUSED:
42b40ee9f878 errno, strerror-override: Support for MSVC 10.
Bruno Haible <bruno@clisp.org>
parents: 15752
diff changeset
124 errno = ECONNREFUSED;
42b40ee9f878 errno, strerror-override: Support for MSVC 10.
Bruno Haible <bruno@clisp.org>
parents: 15752
diff changeset
125 break;
42b40ee9f878 errno, strerror-override: Support for MSVC 10.
Bruno Haible <bruno@clisp.org>
parents: 15752
diff changeset
126 case WSAELOOP:
42b40ee9f878 errno, strerror-override: Support for MSVC 10.
Bruno Haible <bruno@clisp.org>
parents: 15752
diff changeset
127 errno = ELOOP;
42b40ee9f878 errno, strerror-override: Support for MSVC 10.
Bruno Haible <bruno@clisp.org>
parents: 15752
diff changeset
128 break;
42b40ee9f878 errno, strerror-override: Support for MSVC 10.
Bruno Haible <bruno@clisp.org>
parents: 15752
diff changeset
129 case WSAEHOSTUNREACH:
42b40ee9f878 errno, strerror-override: Support for MSVC 10.
Bruno Haible <bruno@clisp.org>
parents: 15752
diff changeset
130 errno = EHOSTUNREACH;
42b40ee9f878 errno, strerror-override: Support for MSVC 10.
Bruno Haible <bruno@clisp.org>
parents: 15752
diff changeset
131 break;
10690
01f3623813da Split winsock.c into many smaller files.
Simon Josefsson <simon@josefsson.org>
parents:
diff changeset
132 default:
01f3623813da Split winsock.c into many smaller files.
Simon Josefsson <simon@josefsson.org>
parents:
diff changeset
133 errno = (err > 10000 && err < 10025) ? err - 10000 : err;
01f3623813da Split winsock.c into many smaller files.
Simon Josefsson <simon@josefsson.org>
parents:
diff changeset
134 break;
01f3623813da Split winsock.c into many smaller files.
Simon Josefsson <simon@josefsson.org>
parents:
diff changeset
135 }
01f3623813da Split winsock.c into many smaller files.
Simon Josefsson <simon@josefsson.org>
parents:
diff changeset
136 }