summaryrefslogtreecommitdiffstats
path: root/gl/w32sock.h
diff options
context:
space:
mode:
Diffstat (limited to 'gl/w32sock.h')
-rw-r--r--gl/w32sock.h89
1 files changed, 82 insertions, 7 deletions
diff --git a/gl/w32sock.h b/gl/w32sock.h
index b472bd05..44f3a1a0 100644
--- a/gl/w32sock.h
+++ b/gl/w32sock.h
@@ -1,6 +1,6 @@
1/* w32sock.h --- internal auxilliary functions for Windows socket functions 1/* w32sock.h --- internal auxiliary functions for Windows socket functions
2 2
3 Copyright (C) 2008, 2009, 2010 Free Software Foundation, Inc. 3 Copyright (C) 2008-2013 Free Software Foundation, Inc.
4 4
5 This program is free software: you can redistribute it and/or modify 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 6 it under the terms of the GNU General Public License as published by
@@ -22,11 +22,14 @@
22/* Get O_RDWR and O_BINARY. */ 22/* Get O_RDWR and O_BINARY. */
23#include <fcntl.h> 23#include <fcntl.h>
24 24
25/* Get _get_osfhandle() and _open_osfhandle(). */ 25/* Get _open_osfhandle(). */
26#include <io.h> 26#include <io.h>
27 27
28/* Get _get_osfhandle(). */
29#include "msvc-nothrow.h"
30
28#define FD_TO_SOCKET(fd) ((SOCKET) _get_osfhandle ((fd))) 31#define FD_TO_SOCKET(fd) ((SOCKET) _get_osfhandle ((fd)))
29#define SOCKET_TO_FD(fh) (_open_osfhandle ((long) (fh), O_RDWR | O_BINARY)) 32#define SOCKET_TO_FD(fh) (_open_osfhandle ((intptr_t) (fh), O_RDWR | O_BINARY))
30 33
31static inline void 34static inline void
32set_winsock_errno (void) 35set_winsock_errno (void)
@@ -45,15 +48,87 @@ set_winsock_errno (void)
45 case WSA_INVALID_PARAMETER: 48 case WSA_INVALID_PARAMETER:
46 errno = EINVAL; 49 errno = EINVAL;
47 break; 50 break;
48 case WSAEWOULDBLOCK:
49 errno = EWOULDBLOCK;
50 break;
51 case WSAENAMETOOLONG: 51 case WSAENAMETOOLONG:
52 errno = ENAMETOOLONG; 52 errno = ENAMETOOLONG;
53 break; 53 break;
54 case WSAENOTEMPTY: 54 case WSAENOTEMPTY:
55 errno = ENOTEMPTY; 55 errno = ENOTEMPTY;
56 break; 56 break;
57 case WSAEWOULDBLOCK:
58 errno = EWOULDBLOCK;
59 break;
60 case WSAEINPROGRESS:
61 errno = EINPROGRESS;
62 break;
63 case WSAEALREADY:
64 errno = EALREADY;
65 break;
66 case WSAENOTSOCK:
67 errno = ENOTSOCK;
68 break;
69 case WSAEDESTADDRREQ:
70 errno = EDESTADDRREQ;
71 break;
72 case WSAEMSGSIZE:
73 errno = EMSGSIZE;
74 break;
75 case WSAEPROTOTYPE:
76 errno = EPROTOTYPE;
77 break;
78 case WSAENOPROTOOPT:
79 errno = ENOPROTOOPT;
80 break;
81 case WSAEPROTONOSUPPORT:
82 errno = EPROTONOSUPPORT;
83 break;
84 case WSAEOPNOTSUPP:
85 errno = EOPNOTSUPP;
86 break;
87 case WSAEAFNOSUPPORT:
88 errno = EAFNOSUPPORT;
89 break;
90 case WSAEADDRINUSE:
91 errno = EADDRINUSE;
92 break;
93 case WSAEADDRNOTAVAIL:
94 errno = EADDRNOTAVAIL;
95 break;
96 case WSAENETDOWN:
97 errno = ENETDOWN;
98 break;
99 case WSAENETUNREACH:
100 errno = ENETUNREACH;
101 break;
102 case WSAENETRESET:
103 errno = ENETRESET;
104 break;
105 case WSAECONNABORTED:
106 errno = ECONNABORTED;
107 break;
108 case WSAECONNRESET:
109 errno = ECONNRESET;
110 break;
111 case WSAENOBUFS:
112 errno = ENOBUFS;
113 break;
114 case WSAEISCONN:
115 errno = EISCONN;
116 break;
117 case WSAENOTCONN:
118 errno = ENOTCONN;
119 break;
120 case WSAETIMEDOUT:
121 errno = ETIMEDOUT;
122 break;
123 case WSAECONNREFUSED:
124 errno = ECONNREFUSED;
125 break;
126 case WSAELOOP:
127 errno = ELOOP;
128 break;
129 case WSAEHOSTUNREACH:
130 errno = EHOSTUNREACH;
131 break;
57 default: 132 default:
58 errno = (err > 10000 && err < 10025) ? err - 10000 : err; 133 errno = (err > 10000 && err < 10025) ? err - 10000 : err;
59 break; 134 break;