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