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