]> git.sur5r.net Git - openldap/blob - libraries/liblutil/nt_err.c
Needs <ac/stdlib.h> for EXIT_*
[openldap] / libraries / liblutil / nt_err.c
1 #include "portable.h"
2
3 #ifdef HAVE_WINSOCK2
4 #include <winsock2.h>
5
6 #define __RETSTR( x ) case x: return #x;
7
8 char *WSAGetErrorString( int err )
9 {
10         switch( err )
11         {
12                 __RETSTR( WSAEINTR )
13                 __RETSTR( WSAEBADF )
14                 __RETSTR( WSAEACCES )
15                 __RETSTR( WSAEFAULT )
16                 __RETSTR( WSAEINVAL )
17                 __RETSTR( WSAEMFILE )
18                 __RETSTR( WSAEWOULDBLOCK )
19                 __RETSTR( WSAEINPROGRESS )
20                 __RETSTR( WSAEALREADY )
21                 __RETSTR( WSAENOTSOCK )
22                 __RETSTR( WSAEDESTADDRREQ )
23                 __RETSTR( WSAEMSGSIZE )
24                 __RETSTR( WSAEPROTOTYPE )
25                 __RETSTR( WSAENOPROTOOPT )
26                 __RETSTR( WSAEPROTONOSUPPORT )
27                 __RETSTR( WSAESOCKTNOSUPPORT )
28                 __RETSTR( WSAEOPNOTSUPP )
29                 __RETSTR( WSAEPFNOSUPPORT )
30                 __RETSTR( WSAEAFNOSUPPORT )
31                 __RETSTR( WSAEADDRINUSE )
32                 __RETSTR( WSAEADDRNOTAVAIL )
33                 __RETSTR( WSAENETDOWN )
34                 __RETSTR( WSAENETUNREACH )
35                 __RETSTR( WSAENETRESET )
36                 __RETSTR( WSAECONNABORTED )
37                 __RETSTR( WSAECONNRESET )
38                 __RETSTR( WSAENOBUFS )
39                 __RETSTR( WSAEISCONN )
40                 __RETSTR( WSAENOTCONN )
41                 __RETSTR( WSAESHUTDOWN )
42                 __RETSTR( WSAETOOMANYREFS )
43                 __RETSTR( WSAETIMEDOUT )
44                 __RETSTR( WSAECONNREFUSED )
45                 __RETSTR( WSAELOOP )
46                 __RETSTR( WSAENAMETOOLONG )
47                 __RETSTR( WSAEHOSTDOWN )
48                 __RETSTR( WSAEHOSTUNREACH )
49                 __RETSTR( WSAENOTEMPTY )
50                 __RETSTR( WSAEPROCLIM )
51                 __RETSTR( WSAEUSERS )
52                 __RETSTR( WSAEDQUOT )
53                 __RETSTR( WSAESTALE )
54                 __RETSTR( WSAEREMOTE )
55                 __RETSTR( WSASYSNOTREADY )
56                 __RETSTR( WSAVERNOTSUPPORTED )
57                 __RETSTR( WSANOTINITIALISED )
58                 __RETSTR( WSAEDISCON )
59                 __RETSTR( WSAENOMORE )
60                 __RETSTR( WSAECANCELLED )
61                 __RETSTR( WSAEINVALIDPROCTABLE )
62                 __RETSTR( WSAEINVALIDPROVIDER )
63                 __RETSTR( WSASYSCALLFAILURE )
64                 __RETSTR( WSASERVICE_NOT_FOUND )
65                 __RETSTR( WSATYPE_NOT_FOUND )
66                 __RETSTR( WSA_E_NO_MORE )
67                 __RETSTR( WSA_E_CANCELLED )
68                 __RETSTR( WSAEREFUSED )
69
70                 __RETSTR( WSAHOST_NOT_FOUND )
71                 __RETSTR( WSATRY_AGAIN )
72                 __RETSTR( WSANO_RECOVERY )
73                 __RETSTR( WSANO_DATA )
74         }
75         return "unknown";
76 }
77
78 char *WSAGetLastErrorString( void )
79 {
80         return WSAGetErrorString( WSAGetLastError() );
81 }
82
83 #undef __RETSTR
84
85 #endif /* HAVE_WINSOCK2 */
86
87
88 char *GetErrorString( int err )
89 {
90         static char msgBuf[1024];
91
92         FormatMessage(
93                 FORMAT_MESSAGE_FROM_SYSTEM,
94                 NULL,
95                 err, MAKELANGID(LANG_NEUTRAL, SUBLANG_DEFAULT),
96                 msgBuf, 1024, NULL );
97
98         return msgBuf;
99 }
100
101 char *GetLastErrorString( void )
102 {
103         return GetErrorString( GetLastError() );
104 }
105
106
107