vgdb: Handle EAGAIN in read_buf
[valgrind.git] / none / tests / res_search.c
blobb4ac82bd1b45b4ab24a974c72499fcb0ae0ad298
1 #include <stdio.h>
2 #include <string.h>
3 #include <netinet/in.h>
4 #include <arpa/nameser.h>
5 #include <resolv.h>
6 #include <pthread.h>
8 void* fn(void* arg)
10 char* dn = (char*)arg;
12 unsigned char buff[8000];
14 if(-1 == res_search(dn, 1, 1, buff, 8000))
16 printf("Error: res_search()\n");
18 else
20 printf("Success!\n");
22 return 0;
25 int main(int argc, char** argv)
27 pthread_t pid;
28 if(2 != argc)
30 printf("Usage: %s <domain>\n", argv[0]);
31 return 1;
34 _res.options |= RES_DEBUG;
35 if(0 != res_init())
37 printf("Error: res_init()\n");
38 return(1);
40 #if 1
41 /* Test it in a different thread -- the failure case */
42 if(0 != pthread_create(&pid, 0, fn, (void*)argv[1]))
44 printf("Failed to create thread.\n");
45 return 1;
48 pthread_join(pid, 0);
49 #else
51 unsigned char buff[8000];
53 if(-1 == res_search(argv[1], 1, 1, buff, 8000))
55 printf("Error: res_search()\n");
57 else
59 printf("Success!\n");
62 #endif
63 return 0;