xref: /freebsd-src/contrib/libevent/test/print-winsock-errors.c (revision b50261e21f39a6c7249a49e7b60aa878c98512a8)
1*b50261e2SCy Schubert #include <winsock2.h>
2*b50261e2SCy Schubert #include <windows.h>
3*b50261e2SCy Schubert 
4*b50261e2SCy Schubert #include <stdlib.h>
5*b50261e2SCy Schubert #include <stdio.h>
6*b50261e2SCy Schubert 
7*b50261e2SCy Schubert #include "event2/event.h"
8*b50261e2SCy Schubert #include "event2/util.h"
9*b50261e2SCy Schubert #include "event2/thread.h"
10*b50261e2SCy Schubert 
11*b50261e2SCy Schubert #define E(x) printf (#x " -> \"%s\"\n", evutil_socket_error_to_string (x));
12*b50261e2SCy Schubert 
main(int argc,char ** argv)13*b50261e2SCy Schubert int main (int argc, char **argv)
14*b50261e2SCy Schubert {
15*b50261e2SCy Schubert   int i, j;
16*b50261e2SCy Schubert   const char *s1, *s2;
17*b50261e2SCy Schubert 
18*b50261e2SCy Schubert #ifdef EVTHREAD_USE_WINDOWS_THREADS_IMPLEMENTED
19*b50261e2SCy Schubert   evthread_use_windows_threads ();
20*b50261e2SCy Schubert #endif
21*b50261e2SCy Schubert 
22*b50261e2SCy Schubert   s1 = evutil_socket_error_to_string (WSAEINTR);
23*b50261e2SCy Schubert 
24*b50261e2SCy Schubert   for (i = 0; i < 3; i++) {
25*b50261e2SCy Schubert     printf ("\niteration %d:\n\n", i);
26*b50261e2SCy Schubert     E(WSAEINTR);
27*b50261e2SCy Schubert     E(WSAEACCES);
28*b50261e2SCy Schubert     E(WSAEFAULT);
29*b50261e2SCy Schubert     E(WSAEINVAL);
30*b50261e2SCy Schubert     E(WSAEMFILE);
31*b50261e2SCy Schubert     E(WSAEWOULDBLOCK);
32*b50261e2SCy Schubert     E(WSAEINPROGRESS);
33*b50261e2SCy Schubert     E(WSAEALREADY);
34*b50261e2SCy Schubert     E(WSAENOTSOCK);
35*b50261e2SCy Schubert     E(WSAEDESTADDRREQ);
36*b50261e2SCy Schubert     E(WSAEMSGSIZE);
37*b50261e2SCy Schubert     E(WSAEPROTOTYPE);
38*b50261e2SCy Schubert     E(WSAENOPROTOOPT);
39*b50261e2SCy Schubert     E(WSAEPROTONOSUPPORT);
40*b50261e2SCy Schubert     E(WSAESOCKTNOSUPPORT);
41*b50261e2SCy Schubert     E(WSAEOPNOTSUPP);
42*b50261e2SCy Schubert     E(WSAEPFNOSUPPORT);
43*b50261e2SCy Schubert     E(WSAEAFNOSUPPORT);
44*b50261e2SCy Schubert     E(WSAEADDRINUSE);
45*b50261e2SCy Schubert     E(WSAEADDRNOTAVAIL);
46*b50261e2SCy Schubert     E(WSAENETDOWN);
47*b50261e2SCy Schubert     E(WSAENETUNREACH);
48*b50261e2SCy Schubert     E(WSAENETRESET);
49*b50261e2SCy Schubert     E(WSAECONNABORTED);
50*b50261e2SCy Schubert     E(WSAECONNRESET);
51*b50261e2SCy Schubert     E(WSAENOBUFS);
52*b50261e2SCy Schubert     E(WSAEISCONN);
53*b50261e2SCy Schubert     E(WSAENOTCONN);
54*b50261e2SCy Schubert     E(WSAESHUTDOWN);
55*b50261e2SCy Schubert     E(WSAETIMEDOUT);
56*b50261e2SCy Schubert     E(WSAECONNREFUSED);
57*b50261e2SCy Schubert     E(WSAEHOSTDOWN);
58*b50261e2SCy Schubert     E(WSAEHOSTUNREACH);
59*b50261e2SCy Schubert     E(WSAEPROCLIM);
60*b50261e2SCy Schubert     E(WSASYSNOTREADY);
61*b50261e2SCy Schubert     E(WSAVERNOTSUPPORTED);
62*b50261e2SCy Schubert     E(WSANOTINITIALISED);
63*b50261e2SCy Schubert     E(WSAEDISCON);
64*b50261e2SCy Schubert     E(WSATYPE_NOT_FOUND);
65*b50261e2SCy Schubert     E(WSAHOST_NOT_FOUND);
66*b50261e2SCy Schubert     E(WSATRY_AGAIN);
67*b50261e2SCy Schubert     E(WSANO_RECOVERY);
68*b50261e2SCy Schubert     E(WSANO_DATA);
69*b50261e2SCy Schubert     E(0xdeadbeef); /* test the case where no message is available */
70*b50261e2SCy Schubert 
71*b50261e2SCy Schubert     /* fill up the hash table a bit to make sure it grows properly */
72*b50261e2SCy Schubert     for (j = 0; j < 50; j++) {
73*b50261e2SCy Schubert       int err;
74*b50261e2SCy Schubert       evutil_secure_rng_get_bytes(&err, sizeof(err));
75*b50261e2SCy Schubert       evutil_socket_error_to_string(err);
76*b50261e2SCy Schubert     }
77*b50261e2SCy Schubert   }
78*b50261e2SCy Schubert 
79*b50261e2SCy Schubert   s2 = evutil_socket_error_to_string (WSAEINTR);
80*b50261e2SCy Schubert   if (s1 != s2)
81*b50261e2SCy Schubert     printf ("caching failed!\n");
82*b50261e2SCy Schubert 
83*b50261e2SCy Schubert   libevent_global_shutdown ();
84*b50261e2SCy Schubert 
85*b50261e2SCy Schubert   return EXIT_SUCCESS;
86*b50261e2SCy Schubert }
87