1398e1d8d2cb1ea4743d65ca29286f7df8e12ad8
[m6w6/libmemcached] / src / p9y / socket.c
1 #include "socket.hpp"
2
3 #if defined _WIN32
4 int get_socket_errno() {
5 int local_errno = WSAGetLastError();
6
7 switch (local_errno) {
8 case WSAEINVAL:
9 local_errno = EINPROGRESS;
10 break;
11 case WSAEALREADY:
12 case WSAEWOULDBLOCK:
13 local_errno = EAGAIN;
14 break;
15
16 case WSAECONNREFUSED:
17 local_errno = ECONNREFUSED;
18 break;
19
20 case WSAENETUNREACH:
21 local_errno = ENETUNREACH;
22 break;
23
24 case WSAETIMEDOUT:
25 local_errno = ETIMEDOUT;
26 break;
27
28 case WSAECONNRESET:
29 local_errno = ECONNRESET;
30 break;
31
32 case WSAEADDRINUSE:
33 local_errno = EADDRINUSE;
34 break;
35
36 case WSAEOPNOTSUPP:
37 local_errno = EOPNOTSUPP;
38 break;
39
40 case WSAENOPROTOOPT:
41 local_errno = ENOPROTOOPT;
42 break;
43
44 default:
45 break;
46 }
47
48 return local_errno;
49 }
50 #endif // _WIN32