WvStreams
|
00001 /* 00002 * A WvResolver example. 00003 * 00004 * Tries to look up two host names given on the command line. 00005 * The expected output: 00006 * resolver<Err>: 1 not in DNS. 00007 * resolver<Err>: 2 not in DNS. 00008 * resolver<Err>: 1 not in DNS. 00009 * resolver<Err>: 2 not in DNS. 00010 * resolver<Err>: 1 not in DNS. 00011 * resolver<Err>: 2 not in DNS. 00012 * 00013 */ 00014 00015 #include "wvresolver.h" 00016 #include "wvlog.h" 00017 00018 void test(WvResolver &dns, int argc, char **argv) 00019 { 00020 WvLog log("resolver", WvLog::Info); 00021 const WvIPAddr *addr; 00022 int res1, res2; 00023 00024 res1 = res2 = -1; 00025 00026 while (res1 < 0 || res2 < 0) 00027 { 00028 if (res1 < 0) 00029 { 00030 res1 = dns.findaddr(100, argc > 1 ? argv[1] : "abyss.cnss.ca", 00031 &addr); 00032 if (res1 > 0) 00033 log.print("Found address for 1: %s\n", (WvString)(*addr)); 00034 else if (res1 < 0) 00035 log.print("[1] "); 00036 else 00037 log(WvLog::Error, "1 not in DNS.\n"); 00038 } 00039 00040 if (res2 < 0) 00041 { 00042 res2 = dns.findaddr(100, argc > 2 ? argv[2] : "frank.foxnet.net", 00043 &addr); 00044 if (res2 > 0) 00045 log.print("Found address for 2: %s\n", (WvString)(*addr)); 00046 else if (res2 < 0) 00047 log.print("[2] "); 00048 else 00049 log(WvLog::Error, "2 not in DNS.\n"); 00050 } 00051 } 00052 00053 } 00054 00055 int main(int argc, char **argv) 00056 { 00057 { 00058 WvResolver dns; 00059 test(dns, argc, argv); 00060 test(dns, argc, argv); 00061 } 00062 00063 { 00064 WvResolver dns; 00065 test(dns, argc, argv); 00066 } 00067 00068 return 0; 00069 }