xref: /reactos/modules/rostests/tests/dnsapi/dnsapi.c (revision 40462c92)
1 #include <windows.h>
2 #include <stdio.h>
3 #include <winerror.h>
4 #include <windns.h>
5 #include <winsock2.h>
6 #include <assert.h>
7 
8 int main( int argc, char **argv ) {
9   PDNS_RECORD QueryReply, AddrResponse;
10   DWORD Addr;
11 
12   assert (DnsValidateName( "||||", DnsNameDomain ) == DNS_ERROR_INVALID_NAME_CHAR);
13   assert (DnsValidateName( "a.b.c", DnsNameDomainLabel ) == DNS_ERROR_INVALID_NAME);
14   assert (DnsValidateName( "1234", DnsNameDomainLabel ) == ERROR_SUCCESS);
15   assert (DnsValidateName( "fubar", DnsNameDomain ) == ERROR_SUCCESS);
16   assert (DnsQuery ("www.reactos.com", DNS_TYPE_A, DNS_QUERY_STANDARD,
17 		    NULL, &QueryReply, NULL) == ERROR_SUCCESS);
18   AddrResponse = QueryReply;
19   while( AddrResponse ) {
20     if( AddrResponse->wType == DNS_TYPE_A ) {
21       Addr = ntohl( AddrResponse->Data.A.IpAddress );
22       printf( "www.reactos.com == %d.%d.%d.%d\n",
23 	      (int)(Addr >> 24) & 0xff,
24 	      (int)(Addr >> 16) & 0xff,
25 	      (int)(Addr >> 8) & 0xff,
26 	      (int)Addr & 0xff );
27     }
28     AddrResponse = AddrResponse->pNext;
29   }
30   DnsRecordListFree( QueryReply, DnsFreeRecordList );
31 
32   return 0;
33 }
34